我有很多使用Java 8的AWS Lambda,我们对所有的Lambda都使用了Blue/Green部署,它有烟雾/动态别名。我们使用Jenkins部署aws lambda,步骤如下
对于第五步,你能告诉我们是否有方法来执行“烟雾测试”的羔羊?
我认为我们需要实际执行lambda本身(不是junit),但是如果是这样的话,实际的业务规则就会运行,然后它可以生成许多输出到目标,如dynamodb和s3 .
因此,分享您在实际项目中的最佳实践。谢谢。
我在想,我是否应该添加一个特殊的参数,它将通过烟雾测试,然后λ本身就有一个逻辑来处理这个param。
发布于 2019-05-28 01:46:59
我也曾与这个概念作过斗争。
假设您正在通过环境变量或SSM参数等外部化您的配置(例如DynamoDB表、S3位置等):理想情况下,您应该拥有Lambda的“冒烟”或暂放版本指向冒烟测试(即非生产)资源。
使用别名的一个问题是对于不同的别名不能有不同的环境变量。。
考虑到这一点,烟雾/集成测试lambda的典型方法是放弃使用别名,将暂存资源部署为与生产资源不同/分离的功能。
如果您有一个相同的/云层形成模板,可以部署您的lambda及其依赖项,这样您就可以轻松地设置开发、烟雾测试和生产堆栈,就可以更容易地做到这一点。您将希望为前缀/后缀创建一个参数,该参数可以为区分不同部署提供资源。
当您对烟雾测试结果感到满意时,只需将测试版本的lambda代码部署到生产lambda中。
https://stackoverflow.com/questions/56330181
复制相似问题