【问题标题】: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-snsin 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}
    

    示例用法:

    1. 使用 ngrok:ngrok http 4002

    2. 像这样设置配置:

    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}
    

    【讨论】:

      【解决方案2】:

      阅读https://www.npmjs.com/package/serverless-offline-sns#installation 的文档后,我了解到这些值是可选的。它们是用于更高级配置的高级设置。只需将它们从您的配置中删除即可。

      这会很好用:

      custom:
        serverless-offline-sns:
          port: 4002
          debug: false
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-05
        • 1970-01-01
        • 2020-10-24
        • 1970-01-01
        • 2021-10-18
        • 1970-01-01
        相关资源
        最近更新 更多