Amazon web services 我可以从法兰克福的EC2实例使用AWS SNS SMS服务(爱尔兰)吗

Amazon web services 我可以从法兰克福的EC2实例使用AWS SNS SMS服务(爱尔兰)吗,amazon-web-services,amazon-ec2,Amazon Web Services,Amazon Ec2,我在区域EU-CENTRAL-1中有一个EC2实例,它运行docker映像。docker镜像需要能够通过EU-WEST-1地区的SNS发送短信 据我所知,默认情况下,该实例应该能够通过一个安全组访问外部internet,该安全组允许所有出站通信。但是我必须设置一些东西来允许实例访问爱尔兰的SNS吗 我使用的代码如下,但是AWS的响应就像我在EU-CENTRAL-1地区使用SNS一样,那里没有SMS // Setup AWS SNS AWS.config.update({

我在区域EU-CENTRAL-1中有一个EC2实例,它运行docker映像。docker镜像需要能够通过EU-WEST-1地区的SNS发送短信

据我所知,默认情况下,该实例应该能够通过一个安全组访问外部internet,该安全组允许所有出站通信。但是我必须设置一些东西来允许实例访问爱尔兰的SNS吗

我使用的代码如下,但是AWS的响应就像我在EU-CENTRAL-1地区使用SNS一样,那里没有SMS

// 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'
          }
        }; 

实例化变量sns时,必须设置区域:

var sns = new AWS.SNS({region:'eu-west-1'});

实例化变量sns时,必须设置区域:

var sns = new AWS.SNS({region:'eu-west-1'});

我通过查找docker映像运行的实例并编辑IAM角色以允许其访问SNS来解决问题。重新启动实例后,SNS服务工作正常

我找到docker映像运行的实例并编辑IAM角色以允许其访问SNS,从而解决了这个问题。重新启动实例后,SNS服务工作正常

对我来说,更好的方法是调用将执行lambda函数的API网关端点。它更干净,更便于维护。如果你喜欢这个想法,请告诉我,我会把步骤写在答案中。@EleazarEnrique我想看看这个解决方案。thanks@RodrigoM让我看一看,更好的方法是调用将执行lambda函数的API网关端点。它更干净,更便于维护。如果你喜欢这个想法,请告诉我,我会把步骤写在答案中。@EleazarEnrique我想看看这个解决方案。thanks@RodrigoM看一看,我实际上尝试了这种方法来比较AWS更新配置中的区域设置。没有区别。但是我想如果我必须在同一个nodejs脚本中跨地区使用来自AWS的多个服务,那么你的答案是正确的,只有SNS服务使用EU-WEST-1。@PeterSavnik是的,通过在对象创建中设置区域,您可以更好地控制所使用的区域。实际上,我尝试了这种方法,将设置与AWS更新配置中的区域进行比较。没有区别。但是我想,如果我必须在同一个nodejs脚本中跨区域使用来自AWS的多个服务,那么您的答案是正确的,可以让SNS服务只使用EU-WEST-1。@PeterSavnik是的,在对象创建中设置区域可以让您更好地控制您使用的区域