Terraformで既存のLambdaをterraform applyのたびに実行する

Terraformで既存のLambdaをterraform applyのたびに実行する

Terraformで既存のLambdaを実行する

こちら↑の実行方法だと引数(input)を変更したりしないと最新のLambdaが実行されないので、terraform destroyコマンドを実行してから再度terraform applyコマンドを実行したりする必要があります。

dataブロックを使用したaws_lambda_invocationだとLambdaが修正されてもterraform applyする度に最新のLambdaが実行されます。

main.tf

data "aws_lambda_invocation" "example" {
  function_name = "v18"

  input = <<JSON
{
  "key1": "value1",
  "key2": "value2"
}
JSON
}

output "result_entry" {
  value = jsondecode(data.aws_lambda_invocation.example.result)
}

適用します。

$ terraform apply

Lambdaの結果が返ってきました。次にLambdaを修正しデプロイします。

再度、適用します。

$ terraform apply

修正されたLambdaの結果が返ってくることが確認できます。

Terraform Registry

コメント

タイトルとURLをコピーしました