本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
sam 中繼資料資源
此頁面包含與 搭配使用之sam metadata resource資源類型的參考資訊 Terraform 專案。
-
如需使用 AWS Serverless Application Model 命令列介面的簡介 (AWS SAM CLI) 搭配 Terraform,請參閱什麼是 AWS SAM CLI 的 支援 Terraform?。
-
若要使用 AWS SAM CLI 取代為 Terraform,請參閱使用 AWS SAM CLI 取代為 Terraform 用於本機偵錯和測試。
引數
引數 | 描述 |
---|---|
built_output_path |
AWS Lambda 函數建置成品的路徑。 |
docker_build_args |
Docker 建置引數JSON物件的解碼字串。此為選用引數。 |
docker_context |
包含 Docker 映像建置內容的目錄路徑。 |
docker_file |
Docker 檔案的路徑。此路徑與 此為選用引數。預設值為 |
docker_tag |
建立的 Docker 映像標籤的值。此值是選用的。 |
depends_on |
Lambda 函數或層的建置資源路徑。若要進一步了解,請參閱 中的depends_on引數 |
original_source_code |
定義 Lambda 函數的路徑。此值可以是字串、字串陣列或解碼的JSON物件作為字串。
|
resource_name |
Lambda 函數名稱。 |
resource_type |
Lambda 函數套件類型的格式。接受的值為:
|
source_code_property |
JSON 物件中 Lambda 資源程式碼的路徑。當 original_source_code 是 JSON 物件時,定義此屬性。 |
範例
使用ZIP套件類型參考 Lambda 函數的 sam 中繼資料資源
# 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] }