【问题标题】:Serverless or SAM and local development with SQS, SNS, and APIGW使用 SQS、SNS 和 APIGW 进行无服务器或 SAM 和本地开发
【发布时间】:2018-10-21 18:19:18
【问题描述】:

我正在评估无服务器 v AWS SAM CLI。 我正在尝试了解如何在使用以下内容进行开发时促进本地开发工作流程:-

  • Lambda 用 python 编写
  • 由带有 SES 的 SNS 通知触发 邮件负载
  • 读取 S3 对象
  • 读写dynamodb
  • 写入 SQS
  • 写入 SNS 主题

我可以从文档中看到,无服务器具有以下本地选项:-

  • S3
  • DynamoDB
  • SNS 事件入站

如果有解决方案不明显:-

  • API 网关本地支持 python lambdas
  • 写入 SQS
  • 写入 SNS

我可以从 SAM 文档中看到,可以针对本地 DynamoDB 测试 python Lambda。不清楚还有什么可能,或者您是否必须将其指向实际的 AWS 实例以供其余部分使用(S3、SQS 等)

任何指针?

【问题讨论】:

    标签: amazon-web-services serverless aws-sam-cli


    【解决方案1】:

    我会考虑利用 https://github.com/localstack/localstack 之类的东西来实现 SQS 和 SNS。

    对于 APIGW 端点,它使用函数资源上的事件参数或使用 API 资源内置到 SAM 模板中的 sam-cli 中。请参阅以下链接中的 API 部分 https://docs.aws.amazon.com/lambda/latest/dg/serverless_app.html

    虽然它还没有完整的功能,所以它可能没有你需要的一切,比如请求正文验证。我通常发现我可以在本地进行大部分应用测试,然后再在真实环境中部署和进行更多集成测试。

    【讨论】:

    • 您的评论暗示本地运行的 AWS SAM 本身并不支持 SQS,是这样吗? “支持 SQS”是指提供与 AWS 托管/提供的基础设施分开的本地环境,它模拟 SQS 并允许 lambda 在 AWS SAM 中本地执行以使用本地 SQS 仿真/实现。
    • docs.aws.amazon.com/serverless-application-model/latest/… 是 sam 参考,我在这里看不到任何暗示它本机支持 SQS 的内容,从我自己的测试中可以看出(以及让我想到这个问题的原因)是它没有。看起来您可以在本地触发事件到您的 lambdas,但是将函数写入 sqs 将需要一个已部署的队列,就像本地写入 dynamo 将写入您部署的 dynamo。
    猜你喜欢
    • 1970-01-01
    • 2018-04-06
    • 2015-10-06
    • 2017-01-29
    • 2013-01-08
    • 2011-07-21
    • 2012-07-01
    • 2019-01-11
    • 1970-01-01
    相关资源
    最近更新 更多