Amazon web services AWS-从VPC内的Lambda函数向SQS发送消息

Amazon web services AWS-从VPC内的Lambda函数向SQS发送消息,amazon-web-services,aws-lambda,chalice,Amazon Web Services,Aws Lambda,Chalice,我在VPC中使用AWS Chalice托管了一个Lambda函数,因为我希望它访问一个无服务器的Aurora DB实例。现在,我还希望这个函数将_message()发送到SQS 我跟随并能够从我的EC2内部调用SQS。但即使这样,我也不能使用Lambda函数调用SQS 如果有人能告诉我如何手动完成整个过程而不是使用CloudFormation堆栈,或者至少告诉我如何让SQS端点工作,那将非常有帮助。您需要在VPC中添加一个for SQS,或者将Lambda功能放置在具有NAT网关路由的子网中。您

我在VPC中使用AWS Chalice托管了一个Lambda函数,因为我希望它访问一个无服务器的Aurora DB实例。现在,我还希望这个函数将_message()发送到SQS

我跟随并能够从我的EC2内部调用SQS。但即使这样,我也不能使用Lambda函数调用SQS


如果有人能告诉我如何手动完成整个过程而不是使用CloudFormation堆栈,或者至少告诉我如何让SQS端点工作,那将非常有帮助。

您需要在VPC中添加一个for SQS,或者将Lambda功能放置在具有NAT网关路由的子网中。

您的情况似乎是:

  • 带有Amazon Aurora数据库的Amazon专有网络
  • 希望与Aurora数据库和Amazon SQS队列通信的AWS Lambda函数
AWS Lambda功能可配置为:

  • 连接到VPC中的子网,或
  • 未连接到VPC,这意味着它已连接到Internet
如果您希望AWS Lambda功能与专有网络和互联网内的资源通信,则需要:

  • 连接到专用子网的Lambda函数
  • 公用子网中的NAT网关
  • 连接到公共子网的Internet网关(它很可能已经在您的VPC中)

或者,您可以为SQS使用VPC端点,该端点允许Lambda函数访问SQS,而无需访问Internet。如果您想要连接到多个服务(例如S3、SNS、SQS),那么使用NAT网关可能比为每个服务创建VPC端点更容易。

调用send_message()时是否遇到任何错误?确保您的lambda已附加IAM角色,该角色具有在队列上发送消息的权限。我已添加。SQS的VPC端点。然后,我在Lambda函数中添加了与该端点关联的子网/安全组(以及所有其他组)。没用,你能弄明白吗?配置有什么变化?没有@Abhi,我不明白为什么我不能用SQS而用SNS访问。但既然SNS在起作用,我就开始在这个场景中使用SNS。我配置了一个SNS端点和一个SQS端点。VPC中的lambda可以调用SNS,但不能调用SQS。所以我真的很困惑。你能更新你的问题以显示Lambda函数所连接的子网的路由表配置吗?