在单独的存储库中使用 terraform 创建 lambda

0

【以下的问题经过翻译处理】 我需要创建一个 lambda 函数而不添加任何源,以便 terraform 脚本只会创建一个 lambda。 这将在基础设施仓库中,你可以说我只是在其中提供服务。 然后在开发人员将使用的另一个存储库中,我们将有一个需要部署在该 lambda 中的应用程序代码。 因此,当我在 Infra 存储库中使用 terraform 创建 lambda 时,source_path 似乎是强制性的......请建议我如何实现这一点。

profile picture
专家
已提问 5 个月前36 查看次数
1 回答
0

【以下的回答经过翻译处理】 您可以使用filename参数为函数指定一个虚拟的源文件,例如:

resource "aws_lambda_function" "my_lambda" {
  function_name = "my-lambda-function"
  role         = aws_iam_role.lambda_role.arn
  handler      = "index.handler"
  runtime      = "nodejs14.x"
  filename     = "/dev/null"
  source_code_hash = "0" # 当未指定源代码时,需要绕过source_code_hash验证
}

在将Lambda函数创建到基础设施仓库中后,您可以使用函数ARN来引用它。您可以使用数据源通过函数名称查找ARN:

data "aws_lambda_function" "my_lambda" {
  function_name = "my-lambda-function"
}

resource "aws_lambda_alias" "my_alias" {
  name             = "my-lambda-alias"
  function_name    = data.aws_lambda_function.my_lambda.arn
  function_version = "$LATEST"
}

希望对您有所帮助

profile picture
专家
已回答 5 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则