本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
sam 元数据资源
本页包含 Terraform 项目所用 sam metadata resource 资源类型的参考信息。
-
有关将 Amazon Serverless Application Model 命令行界面 (Amazon SAMCLI) 与配合使用的简介Terraform,请参阅Amazon SAM CLI 对于 Terraform 支持什么?。
-
要将 Amazon SAM CLI 与 Terraform 结合使用,请参阅 使用 Amazon SAM CLI 和 Terraform 进行本地调试和测试。
参数
参数 | 描述 |
---|---|
built_output_path |
Amazon Lambda 函数生成工件的路径。 |
docker_build_args |
Docker 构建参数JSON对象的解码字符串。此参数是可选的。 |
docker_context |
包含 Docker 映像构建上下文的目录的路径。 |
docker_file |
Docker 文件的路径。路径相对于 此参数是可选的。默认值为 |
docker_tag |
创建的 Docker 映像标签的值。该值为可选项。 |
depends_on |
您的 Lambda 函数或层的构建资源的路径。要了解更多信息,请参阅 Terraform 注册表中的depends_on 参数 |
original_source_code |
您的 Lambda 函数的定义路径。此值可以是字符串、字符串数组或解码后的字符串JSON对象。
|
resource_name |
Lambda 函数名称。 |
resource_type |
您的 Lambda 函数包类型的格式。接受的值为:
|
source_code_property |
对象中 Lambda 资源代码的JSON路径。当original_source_code 是JSON对象时定义此属性。 |
示例
sam 元数据资源使用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 层的 sam 元数据资源
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] }