首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在VPC中从Lambda发布到SNS

问在VPC中从Lambda发布到SNS
EN

Stack Overflow用户
提问于 2020-03-02 02:36:01
回答 1查看 1.5K关注 0票数 2

我正试图从VPC中的Lambda发布到SNS,但我的Lambda挂起,并在大约一分钟后超时。

基于用AWS PrivateLink \ AWS安全博客保护发布到Amazon的消息和类似的文章,我创建了一个VPC端点,如下所示:

代码语言:javascript
复制
      Type: AWS::EC2::VPCEndpoint
      Properties:
        PrivateDnsEnabled: true
        SecurityGroupIds:
          - security-group-id
        ServiceName: com.amazonaws.ap-southeast-2.sns
        SubnetIds:
          - subnet1-id
          - subnet2-id
        VpcEndpointType: Interface
        VpcId: vpc-blahblah

这仍然导致我的Lambda挂在发布到SNS。如何使用VPC端点从VPC中的Lambda发布到SNS?推荐一个AWS::EC2::SecurityGroupIngress,它也允许来自VPC的CIDR的所有TCP流量,但这也不起作用。

我的Lambda和VPC端点在同一个安全组中,并且有入口规则只允许来自某些地方的MySQL连接和来自VPC的所有通信量(如前所述)。

我错过了什么让我的Lambda能够发布到一个SNS的主题?

EN

回答 1

Stack Overflow用户

发布于 2020-03-02 03:40:52

为了重现你的处境,我创造了:

  • Amazon (有一个子网和没有互联网网关)
  • 一个用于Amazon 的VPC端点,具有:
    • 允许所有入站通信量的访问策略
    • 允许从VPC的CIDR访问所有入站访问的安全组

​

  • 一个亚马逊SNS主题,它订阅了我的手机
  • 允许使用Amazon的Lambda函数使用的IAM角色
  • 一个AWS函数:
    • 具有上述IAM角色
    • 安全组允许所有出站通信量。
    • 附加到VPC中的私有子网。

​

我的Lambda功能是:

代码语言:javascript
复制
def lambda_handler(event, context):
    # Send message to SNS
    MY_SNS_TOPIC_ARN = 'arn:aws:sns:ap-southeast-2:111111111111:foo'
    sns_client = boto3.client('sns')
    sns_client.publish(
        TopicArn = MY_SNS_TOPIC_ARN,
        Subject = 'From lambda',
        Message = 'Hello'
    )

然后,通过从Lambda控制台手动运行Lambda函数来测试它。

我successfully在我的手机上收到了测试信息。

因此,我建议您将您的配置与上面的配置进行比较,并尝试发现任何差异。

我注意到您正在通过通过CloudFormation进行部署,因此您可以启动堆栈,然后将您的资源与所描述的资源进行比较,或者您可以尝试手动创建上面的内容以确认它是否适合您,然后将这些资源与您的CloudFormation模板进行比较。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60481830

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档