当前位置: 首页 > 知识库问答 >
问题:

如何使用VPCendpoint从VPC内的Lambda发布到SNS?

邵阳辉
2023-03-14
Service name: com.amazonaws.eu-west-1.sns
VPC: same as Lambda functions and other services
Subnets: all included in my VPC (have also tested toggling them individually)
Security Groups: all VPC security groups selected

所有服务都在欧盟西部1区。我知道发布到SNS的代码是正确的,因为它在非VPC环境中运行时可以工作。我要发布到的ARN保持不变:ARN:aws:sns:eu-west-1:962446592636:whatever

我知道可以设置NAT服务器来避免这个问题,但如果可能的话,我更愿意使用VPCendpoint来降低成本。

共有1个答案

桂智志
2023-03-14

对我有用!

我做了以下工作:

  • 创建了一个亚马逊SNS主题并订阅了该主题
  • 创建了没有VPC配置的AWS Lambda函数,该函数向SNS主题发送消息
  • 测试了Lambda函数--收到消息
  • 创建了具有两个子网的VPC
  • 为专用子网中的SNS创建了一个服务endpoint,其中有一个安全组允许来自0.0.0.0/0的所有TCP(出于测试目的)
  • 修改了Lambda函数以使用专用子网
  • 测试了Lambda函数--收到消息
def lambda_handler(event, context):
    import boto3

    client = boto3.client('sns', region_name='ap-southeast-2')
    response = client.publish(
        TopicArn='arn:aws:sns:ap-southeast-2:123456789012:stack',
        Message='From Lambda'
        )

    return
 类似资料:
  • 我在VPC中使用AWS Chalice托管了一个Lambda函数,因为我希望它访问一个无服务器的Aurora DB实例。现在,我还希望这个函数将send_message()转换为SQS。

  • 我所做的: 我在这些帐户之间创建了VPC对等连接 还连接到每个VPC的Internet网关 路由表也已配置(允许来自两侧的流量) 案例1: “ErrorMessage”:“调用Invoke操作时发生错误(AccessDeniedException):User:arn:aws:sts::Account-a:Assumed-Role/Role-for-VPC-peering-test/lambda1_

  • 在过去的几个小时里,我一直在调试、配置和命名它,我似乎不明白为什么会发生这种情况。 我正在尝试调用一个 lambda 函数,该函数只是从 ec2 中检索基本信息。当我在aws控制台中测试此lambda函数时,它似乎工作正常。但是,使用以下代码在另一个lambda中调用它; 它只是超时了。没有任何反应…两个Lambda都连接到VPC和所有子网 我认为是我的新VPC导致了这个问题。我的VPC包括: 1

  • 甚至,API网关资源策略是这样写的: 和VPCendpoint策略进行完全访问。

  • 在此之后,我将Lambda、RDS实例和DocumentDb集群附加到VPC。但是,从那时起,我就无法使用NodeJS AWS-SDK从我的lambda中与我的SQS队列进行对话。 我想补充的是,我已经阅读并实现了以下几点:AWS Lambda:无法从具有VPC访问的Lambda函数访问SQS队列,但是我仍然无法连接。 以下是我所拥有的: null null λ: 我将Lambda附加到VPC,如

  • 问题内容: 我们有许多应用程序使用一个位于VPC外部(经典实例)的ElasticCache实例(Redis)。一些应用程序位于VPC中,而某些应用程序位于VPC外部(经典实例)。我们如何将所有应用程序连接到缓存? 我们将VPC外部的应用程序连接到缓存没有问题,因为缓存也位于VPC外部。VPC内部的应用程序数量较少,无法连接到缓存。 谢谢。 问题答案: 无法从VPC实例直接访问经典群集。解决方法是在