Попытка вызвать PutRecord службы AWS Firehose с помощью AWS SDK из функции Lambda, расположенной в другом регионе, с использованием среды NodeJS. Это работает, когда Lambda Function и Firehose находятся в одном регионе, и не работает, когда Function находится в другом регионе. Прикреплена ли к нему настройка роли Firehose или IAM, которая может разрешать эти межрегиональные звонки?
Как вызвать сервис в другом регионе с помощью лямбда и AWS SDK
Ответы (2)
Вы просто указываете название региона в своем sdk. Например, в Python должно быть достаточно следующего:
import boto3
client = boto3.client('firehose', region_name='us-west-2')
client.put_record(...)
Никаких других специальных настроек не требуется.
В nodejs это будет:
var fh = new AWS.Firehose({region: 'us-west-2'});
person
Marcin
schedule
30.10.2020
Спасибо за ваш ответ. На самом деле я использую его сейчас, как вы описали. Проблема на самом деле в том, что вызовы SDK не достигают Firehose.
- person Anatoly Leonov; 30.10.2020
@AnatolyLeonov Это должно быть вызвано чем-то другим. Без более подробной информации в ваших вопросах трудно рассуждать.
- person Marcin; 31.10.2020
Спасибо за внимание. Похоже, этот случай нужно настроить по-другому
- person Anatoly Leonov; 13.11.2020
Проблема была в том, что я неправильно указал регион. Вместо того, чтобы указывать регион только для Firehose, нужно указать регион для SDK:
Вместо:
const AWS = require('aws-sdk');
const firehose = new AWS.Firehose({ region: 'us-east-1' });
С использованием:
const AWS = require('aws-sdk');
AWS.config.update({ region: 'us-east-1' });
const firehose = new AWS.Firehose();
person
Anatoly Leonov
schedule
13.11.2020