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

0

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

profile picture
EXPERTE
gefragt vor 6 Monaten42 Aufrufe
1 Antwort
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
EXPERTE
beantwortet vor 6 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen