Amazon web services AWS Lambda烟雾试验方法

Amazon web services AWS Lambda烟雾试验方法,amazon-web-services,junit,aws-lambda,smoke-testing,Amazon Web Services,Junit,Aws Lambda,Smoke Testing,我有很多AWS Lambda使用Java8。我们对所有具有烟雾/活动别名的Lambda使用蓝色/绿色部署。我们使用Jenkins通过以下步骤部署aws lambda 签出:从git签出lambda源代码 使用Junit构建和单元测试 Jacoco的代码覆盖范围 使用烟雾别名部署它 现在我们要针对烟雾别名对lambda执行烟雾测试 如果烟雾测试用例通过,我们将烟雾别名升级为Live alias 对于第5步,如果我们有办法对lambda执行“烟雾测试”,请您提供建议 我认为我们需要实际执行lambd

我有很多AWS Lambda使用Java8。我们对所有具有烟雾/活动别名的Lambda使用蓝色/绿色部署。我们使用Jenkins通过以下步骤部署aws lambda

  • 签出:从git签出lambda源代码
  • 使用Junit构建和单元测试
  • Jacoco的代码覆盖范围
  • 使用烟雾别名部署它
  • 现在我们要针对烟雾别名对lambda执行烟雾测试
  • 如果烟雾测试用例通过,我们将烟雾别名升级为Live alias
  • 对于第5步,如果我们有办法对lambda执行“烟雾测试”,请您提供建议

    我认为我们需要实际执行lambda本身(而不是junit),但如果是这样的话,运行实际的业务规则,那么它可以生成许多东西输出到目标,比如dynamodb和s3

    因此,请分享您在实际项目中的最佳实践。谢谢


    我在想我应该添加一个特殊的参数,它将通过烟雾测试,然后lambda本身就有一个逻辑来处理这个参数。

    我也一直在努力解决这个概念

    假设您正在通过环境变量或SSM参数等方式将配置(例如DynamoDB表、S3位置等)外部化:理想情况下,您将拥有Lambda point-to-smoke测试的“冒烟”或暂存版本(即非生产)资源

    使用别名的一个问题是您

    有鉴于此,冒烟/集成测试lambda的典型方法是放弃使用别名,将登台资源部署为与生产资源不同/独立的功能

    如果您有一个可以部署lambda及其依赖项的/模板,那么您就可以轻松地设置开发、smoketest和生产堆栈,这样做就更容易了。您需要为前缀/后缀创建一个参数,可以为其提供资源以区分不同的部署


    当您对烟雾测试结果感到满意时,只需将lambda代码的测试版本部署到生产lambda中。

    我也一直在努力解决这个问题

    假设您正在通过环境变量或SSM参数等方式将配置(例如DynamoDB表、S3位置等)外部化:理想情况下,您将拥有Lambda point-to-smoke测试的“冒烟”或暂存版本(即非生产)资源

    使用别名的一个问题是您

    有鉴于此,冒烟/集成测试lambda的典型方法是放弃使用别名,将登台资源部署为与生产资源不同/独立的功能

    如果您有一个可以部署lambda及其依赖项的/模板,那么您就可以轻松地设置开发、smoketest和生产堆栈,这样做就更容易了。您需要为前缀/后缀创建一个参数,可以为其提供资源以区分不同的部署


    当您对烟雾测试结果感到满意时,只需将lambda代码的测试版本部署到生产lambda。

    烟雾测试根据需要调用执行lambda。如果它应该在Dynamo和S3中创建东西,那么这些就是你应该坚持的东西。如果您在一个特殊的“测试模式”下运行它,它实际上不是一个测试。必要时的冒烟测试调用执行lambda。如果它应该在Dynamo和S3中创建东西,那么这些就是你应该坚持的东西。如果您在一个特殊的“测试模式”下运行它,它实际上不是一个测试。