我在区域EU-CENTRAL-1中有一个运行docker镜像的EC2实例。泊坞窗图像需要能够通过区域EU-WEST-1中的SNS发送短信。
据我所知,该实例默认情况下应该能够通过安全组访问外部的互联网,让所有出站通信都通过。但是我必须设置一些东西以允许实例访问爱尔兰的SNS吗?
我正在使用以下代码,但AWS的响应就好像我在没有SMS的EU-CENTRAL-1区域中使用SNS一样。
// Setup AWS SNS
AWS.config.update({
region: 'eu-west-1',
accessKeyId: process.env.AWS_ACCESS_KEY_ID,
secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY
});
var sns = new AWS.SNS();
var params = {
Message: "SMS message test",
MessageStructure: 'string',
PhoneNumber: '0045xxxxxxxx',
Subject: 'Alarm',
MessageAttributes :{
'AWS.SNS.SMS.SenderID': {
'DataType': 'String',
'StringValue': 'MySender'
},
'AWS.SNS.SMS.SMSType': 'Transactional'
}
};
答案 0 :(得分:1)
实例化变量sns时必须设置区域:
var sns = new AWS.SNS({region:'eu-west-1'});
答案 1 :(得分:1)
我通过查找正在运行docker镜像的实例并编辑IAM角色以允许它访问SNS来解决问题。重新启动实例后,SNS服务工作正常。