【问题标题】:Invoke serverless-offline Lambda function by SNS message from Hosted AWS SNS using serverless-offline-sns使用 serverless-offline-sns 通过来自托管 AWS SNS 的 SNS 消息调用 serverless-offline Lambda 函数
【发布时间】:2020-03-27 07:32:25
【问题描述】:
serverless-offline-sns 说 in its docs 要收听 AWS 上托管的 SNS,您需要以下内容:
custom:
serverless-offline-sns:
localPort: ${env:LOCAL_PORT}
remotePort: ${env:SNS_SUBSCRIBE_REMOTE_PORT}
host: 0.0.0.0
sns-subscribe-endpoint: ${env:SNS_SUBSCRIBE_ENDPOINT}
sns-endpoint: ${env:SNS_ENDPOINT}
但我不知道从哪里获得所需的环境值:
${env:SNS_SUBSCRIBE_REMOTE_PORT}
${env:SNS_SUBSCRIBE_ENDPOINT}
${env:SNS_ENDPOINT}
【问题讨论】:
标签:
amazon-web-services
aws-lambda
amazon-sns
serverless-framework
【解决方案1】:
在阅读完源代码后,我能够在 AWS 中托管一个 SNS 来触发我的本地功能,因为文档不是很清楚
这是我使用的配置:
serverless-offline-sns:
sns-endpoint: sns.${self:provider.region}.amazonaws.com
sns-subscribe-endpoint: <ngrok_url>
remotePort: 80
localPort: <ngrok_port>
accountId: ${self:provider.accountId}
示例用法:
使用 ngrok:ngrok http 4002
像这样设置配置:
serverless-offline-sns:
sns-endpoint: sns.${self:provider.region}.amazonaws.com
sns-subscribe-endpoint: xxxxxxxx.ngrok.io
remotePort: 80
localPort: 4002
accountId: ${self:provider.accountId}