使用Terraform/CloudFormation/Something有效地部署lambda(仅部署那些已更改的)

Jie*_*eng 10 lambda continuous-integration aws-cloudformation terraform

到目前为止,我一直在使用CloudFormation来部署我的lambda.我发现这个过程非常缓慢且效率低下 - 例如.它可能需要几分钟但如果只是部署那个1功能它应该只需几秒钟?大多数功能都没有改变,但我相信CloudFormation无法区分,无论如何都会部署一切.有没有办法可以更有效地做到这一点?比如查看已更改的内容并仅部署更改?

另一个好处是我可能会有更少的版本?

yda*_*coR 5

您可以使用source_code_hash的的aws_lambda_function资源,如果lambda函数变为有Terraform检查。如果没有任何变化,那么它将不会上传新版本,并且您的计划不会显示任何更改。

这是在docs中作为示例给出

resource "aws_lambda_function" "test_lambda" {
  filename         = "lambda_function_payload.zip"
  function_name    = "lambda_function_name"
  role             = "${aws_iam_role.iam_for_lambda.arn}"
  handler          = "exports.test"
  source_code_hash = "${base64sha256(file("lambda_function_payload.zip"))}"
  runtime          = "nodejs8.10"

  environment {
    variables = {
      foo = "bar"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)