

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Terraform リファレンス付きのAWS SAM CLI
<a name="terraform-reference"></a>

このセクションは、ローカルデバッグとテストのために AWS Serverless Application Model で コマンドラインインターフェイス (AWS SAM CLI) を使用するTerraformためのリファレンスです。

フィードバックや機能に関する要望を送るには、[GitHub Issue](https://github.com/aws/aws-sam-cli/issues/new?labels=area%2Fterraform) を作成してください。

## AWS SAM サポートされている機能リファレンス
<a name="terraform-reference-sam"></a>

Terraform での使用がサポートされている AWS SAM CLI の機能に関するリファレンスは、次の場所にあります。
+ [sam build](sam-cli-command-reference-sam-build.md)
+ [sam local invoke](sam-cli-command-reference-sam-local-invoke.md)
+ [sam local start-api](sam-cli-command-reference-sam-local-start-api.md)
+ [sam local start-lambda](sam-cli-command-reference-sam-local-start-lambda.md)

## Terraform 特有のリファレンス
<a name="terraform-reference-specific"></a>

Terraform で AWS SAM CLI を使用する際のリファレンスドキュメントは、次の場所にあります。
+ [sam metadata resource](terraform-sam-metadata.md)

# sam metadata resource
<a name="terraform-sam-metadata"></a>

このページには、Terraform プロジェクトで使用する **sam metadata resource** リソースタイプに関するリファレンスが含まれています。
+ で AWS Serverless Application Model コマンドラインインターフェイス (AWS SAM CLI) を使用する方法の概要についてはTerraform、「」を参照してください[Terraform の AWS SAM CLI サポートの概要](terraform-support.md#what-is-terraform-support)。
+ Terraform と連携させた AWS SAM CLI を使用するには、「[Terraform と連携させた AWS SAM CLI をローカルでのデバッグおよびテストに使用する方法](using-samcli-terraform.md)」を参照してください。

**Topics**
+ [引数](#terraform-sam-metadata-arguments)
+ [例](#terraform-sam-metadata-examples)

## 引数
<a name="terraform-sam-metadata-arguments"></a>


****  

| 引数 | 説明 | 
| --- | --- | 
| built\$1output\$1path |  AWS Lambda 関数のビルドされたアーティファクトへのパス。 | 
| docker\$1build\$1args | Docker ビルド引数 JSON オブジェクトのデコードされた文字列。この引数はオプションです。 | 
| docker\$1context | Docker イメージのビルドコンテキストを含むディレクトリへのパス。 | 
| docker\$1file |  Docker ファイルへのパス。このパスは、`docker_context` パスを起点とした相対パスです。 この引数はオプションです。デフォルト値は `Dockerfile` です。  | 
| docker\$1tag | 作成された Docker イメージタグの値。この値はオプションです。 | 
| depends\$1on | Lambda 関数またはレイヤーのビルディングリソースへのパス。詳細については、Terraform レジストリで「[**depends\$1on** argument](https://developer.hashicorp.com/terraform/language/meta-arguments/depends_on)」を参照してください。 | 
| original\$1source\$1code |  Lambda 関数が定義されている場所へのパス。この値には文字列、文字列の配列、または文字列としてデコードされた JSON オブジェクトを使用できます。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/serverless-application-model/latest/developerguide/terraform-sam-metadata.html)  | 
| resource\$1name | Lambda 関数の名前。 | 
| resource\$1type |  Lambda 関数のパッケージタイプの形式。次の値が許容されます。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/serverless-application-model/latest/developerguide/terraform-sam-metadata.html)  | 
| source\$1code\$1property | JSON オブジェクト内の Lambda リソースコードへのパス。original\$1source\$1code が JSON オブジェクトの場合にこのプロパティを定義します。 | 

## 例
<a name="terraform-sam-metadata-examples"></a>

### パッケージタイプが ZIP の Lambda 関数 を参照する sam metadata resource
<a name="terraform-sam-metadata-examples-example1"></a>

```
# 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 metadata resource
<a name="terraform-sam-metadata-examples-example2"></a>

```
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 metadata resource
<a name="terraform-sam-metadata-examples-example3"></a>

```
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]
}
```