相同的元数据资源 - Amazon Serverless Application Model
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

相同的元数据资源

Terraform 支持是Amazon SAM CLI 的预览版,可能会发生变化。要提供反馈和提交功能请求,请创建GitHub问题

本页包含 Terraform 项目所用sam metadata resource资源类型的参考信息。

Arguments

参数 描述
built_output_path 通往Amazon Lambda函数内置工件的路径。
docker_build_args Docker 构建参数 JSON 对象的解码字符串。此参数是可选的。
docker_context 包含 Docker 镜像构建上下文的目录路径。
docker_file

Docker 文件的路径。此路径与路docker_context径是相对的。

此参数是可选的。默认值为 Dockerfile

docker_tag 创建的 Docker 镜像标签的值。该值为可选项。
depends_on 您的 Lambda 函数或层的建筑资源路径。要了解更多信息,请参阅 Terraform 文档中的depends_on论点
original_source_code

定义 Lambda 函数的路径。此值可以是字符串、字符串数组或解码为字符串的 JSON 对象。

  • 对于字符串数组,由于不支持多个代码路径,因此仅使用第一个值。

  • 对于 JSON 对象,还source_code_property必须定义。

resource_name Lambda 函数名称。
resource_type

您的 Lambda 函数包类型的格式。可接受的值是:

  • IMAGE_LAMBDA_FUNCTION

  • LAMBDA_LAYER

  • ZIP_LAMBDA_FUNCTION

source_code_property JSON 对象中 Lambda 资源代码的路径。当original_source_code是 JSON 对象时定义此属性。

示例

使用 ZIP 软件包类型引用 Lambda 函数的元数据元数据资源

# Lambda function resource resource "aws_lambda_function" "tf_lambda_func" { filename = "${path.module}/python/hello-world.zip" handler = "index.lambda_handler" runtime = "python3.8" function_name = "function_example" role = aws_iam_role.iam_for_lambda.arn depends_on = [ null_resource.build_lambda_function # function build logic ] } # sam metadata resource resource "null_resource" "sam_metadata_function_example" { triggers = { resource_name = "aws_lambda_function.function_example" resource_type = "ZIP_LAMBDA_FUNCTION" original_source_code = "${path.module}/python" built_output_path = "${path.module}/building/function_example" } depends_on = [ null_resource.build_lambda_function # function build logic ] }

使用图像软件包类型引用 Lambda 函数的 sam 元数据资源

resource "null_resource" "sam_metadata_function { triggers = { resource_name = "aws_lambda_function.image_function" resource_type = "IMAGE_LAMBDA_FUNCTION" docker_context = local.lambda_src_path docker_file = "Dockerfile" docker_build_args = jsonencode(var.build_args) docker_tag = "latest" } }

引用 Lambda 图层的垃圾元数据资源

resource "null_resource" "sam_metadata_layer1" { triggers = { resource_name = "aws_lambda_layer_version.layer" resource_type = "LAMBDA_LAYER" original_source_code = local.layer_src built_output_path = "${path.module}/${layer_build_path}" } depends_on = [null_resource.layer_build] }