如何在 Terraform 中使用 AWS 提供的 lambda 层?

mel*_*ous 15 amazon-web-services aws-lambda terraform terraform-provider-aws

我正在尝试在 AWS Lambda 层上运行 python 函数,但我没有找到有关 terraform 的任何文档来使用 AWS 提供的 lambda 层。如何使用 AWS 提供的 lambda 层 AWSLambda-Python27-SciPy1x和运行时Python 2.7

#----compute/lambda.tf----
data "archive_file" "lambda_zip" {
    type          = "zip"
    source_file   = "index.py"
    output_path   = "check_foo.zip"
}

resource "aws_lambda_function" "check_foo" {
  filename         = "check_foo.zip"
  function_name    = "checkFoo"
  role             = "${aws_iam_role.iam_for_lambda_tf.arn}"
  handler          = "index.handler"
  source_code_hash = "${data.archive_file.lambda_zip.output_base64sha256}"

  # i want to use lambda layer - AWSLambda-Python27-SciPy1x and run this function on it
  runtime          = "python2.7"
}
Run Code Online (Sandbox Code Playgroud)

Mar*_*cin 13

您必须使用Layers参数将 lambda 层指定为 terraform 中的 ARN:

层 - (可选)附加到 Lambda 函数的Lambda 层版本ARN列表(最多 5 个)。

在 terraform 中使用以下语法

层= [“层-arn”]

例如,区域中AWSLambda-Python27-SciPy1xus-east-1的 ARN为:

arn:aws:lambda:us-east-1:668099181075:层:AWSLambda-Python27-SciPy1x:24

如果您不确定您的 ARN 是什么,您可以创建一个虚拟的 Python 2.7 lambda 函数,添加 AWS 层AWSLambda-Python27-SciPy1x,控制台将为您提供其 ARN。