Terraform 在创建 lambda 之前执行脚本 [英] Terraform execute script before lambda creation

查看:33
本文介绍了Terraform 在创建 lambda 之前执行脚本的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个 terraform 配置,可以在 aws 上正确创建一个 lambda 函数,并提供一个 zip 文件.

I have a terraform configuration that correctly creates a lambda function on aws with a zip file provided.

我的问题是我总是必须先打包 lambda(为此我使用无服务器打包方法),所以我想在 terraform 创建 lambda 之前执行一个脚本来打包我的函数并将 zip 移动到正确的目录功能.

My problem is that I always have to package the lambda first (I use serverless package method for this), so I would like to execute a script that package my function and move the zip to the right directory before terraform creates the lambda function.

这可能吗?也许使用 null_resource 和 local-exec 的组合?

Is that possible? Maybe using a combination of null_resource and local-exec?

推荐答案

你已经提出了最佳答案:)

You already proposed the best answer :)

当您将 depends_on = ["null_resource.serverless_execution"] 添加到您的 lambda 资源时,您可以确保在上传 zip 文件之前完成打包.

When you add a depends_on = ["null_resource.serverless_execution"] to your lambda resource, you can ensure, that packaging will be done before uploading the zip file.

例子:

resource "null_resource" "serverless_execution" {
  provisioner "local-exec" {
    command = "serverless package ..."
  }
}

resource "aws_lambda_function" "update_lambda" {
  depends_on = ["null_resource.serverless_execution"]
  filename   = "${path.module}/path/to/package.zip"
  [...]
}

https://www.terraform.io/docs/provisioners/local-exec.html

这篇关于Terraform 在创建 lambda 之前执行脚本的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆