AWS SAM CLI 設定ファイル - AWS Serverless Application Model

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

AWS SAM CLI 設定ファイル

AWS SAM CLI は、コマンドのデフォルトパラメータを格納するプロジェクトレベルの設定をサポートしています。この設定ファイルは、TOML ファイル形式デフォルトのファイル名はsamconfig.toml。ファイルのデフォルトの場所は、プロジェクトの AWS SAM テンプレートファイルを含むプロジェクトのルートディレクトリです。

このファイルを手動で編集して、AWS SAM CLI コマンドのデフォルトパラメータを設定できます。また、sam deploy --guidedコマンドは、パラメーターのサブセットを設定ファイルに書き込みます。このコマンドの詳細については、」による設定の書き込みsam deploy --guidedこのトピックで後述する「」を参照してください。

Example

以下に、3 つのパラメーターセットを含む設定ファイルの例を示します。default環境。1 つのセットはすべてのコマンドで、もう 1 つはdeployコマンドであり、1つはbuildコマンド。

 version=0.1
 [default.global.parameters]
 stack_name = "common-stack"
 
 [default.deploy.parameters]
 stack_name = "my-app-stack"
 s3_bucket = "my-source-bucket"
 s3_prefix = "my-s3-prefix"
 image_repositories = ["my-function-1=image-repo-1", "my-function-2=image-repo-2"]
 region = "us-west-2"
 confirm_changeset = true
 capabilities = "CAPABILITY_IAM"
 tags = "project=\"my-application\" stage=\"production\""

 [default.build.parameters]
 container_env_var = ["Function1.GITHUB_TOKEN=TOKEN1", "Function2.GITHUB_TOKEN=TOKEN2"]
 container_env_var_file = "env.json"

設定ファイルのルール

AWS SAM CLI では、設定ファイルに次のルールが適用されます。

ファイル名と場所

  • デフォルトの設定ファイルの名前はsamconfig.tomlまた、プロジェクトのルートディレクトリにあります。

  • デフォルトのファイル名と場所を変更することができます。--config-fileパラメータ。

Tables

  • AWS SAM CLI は、TOML テーブルを使用して、環境およびコマンドによって設定エントリをグループ化します。1 つの設定ファイルには、複数の環境、コマンド、およびサブコマンドのテーブルを含めることができます。

  • デフォルトの環境名はdefault。デフォルトの環境名は、--config-envパラメータ。

  • コマンドの場合、テーブルヘッダーの形式は[environment.command.parameters]。たとえば、sam deployのコマンドdefault環境の場合、構成テーブルのヘッダーは[default.deploy.parameters]

  • サブコマンドの場合、テーブルヘッダーの形式は[environment.command_subcommand.parameters]。つまり、コマンドとサブコマンドを_(下線) と指定します。たとえば、sam local invokeのコマンドdefault環境の場合、構成テーブルのヘッダーは[default.local_invoke.parameters]

  • コマンドまたはサブコマンドに-(ハイフン) 文字の場合は、_(下線) と指定します。たとえば、sam local start-apiコマンドの場合、構成テーブルのヘッダーは[default.local_start_api.parameters]

  • すべてのコマンドのパラメーターを指定するには、globalキーワードをコマンドとしてテーブルヘッダー([environment.global.parameters]). たとえば、default環境は[default.global.parameters]

設定エントリ

  • 各設定エントリは、TOML キーと値のペアです。

  • 設定キーは、長い形式のパラメーター名で、-(ハイフン) 文字を_(下線) と指定します。各コマンドで使用できるパラメーターの一覧については、AWS SAM CLI コマンドリファレンスまたはsam command --help

  • 設定値は以下の形式を使用できます。

    • トグルパラメータの場合、値はtrueまたはfalse(引用符なし)。例:confirm_changeset = true

    • 単一の引数を取るパラメータの場合、値は" "(引用符) を使用します。例:region = "us-west-2"

    • 引数のリストを取るパラメータの場合、引数は" "(引用符) を使用します。例:capabilities = "CAPABILITY_IAM CAPABILITY_NAMED_IAM"

      • キーと値のペアのリストを指定するには、ペアはスペースで区切られ、各ペアの値はエンコードされた" "(引用符) を使用します。例:tags = "project=\"my-application\" stage=\"production\""

    • 複数回指定できるパラメータの場合、値は引数の配列です。例:image_repositories = ["my-function-1=image-repo-1", "my-function-2=image-repo-2"]

Precedence

  • コマンドラインで指定するパラメータ値は、設定ファイルの対応するエントリよりも優先されます。たとえば、設定ファイルにstack_name = "DefaultStack"コマンドを実行します。sam deploy --stack-name MyCustomStackの場合、デプロイされたスタック名はMyCustomStack

  • parameter_overridesエントリでは、コマンドラインで指定するパラメータ値と、設定ファイルのエントリの両方がParametersセクション。

  • 特定のコマンドテーブルで指定するエントリは、globalコマンドセクションを参照してください。たとえば、設定ファイルに以下のテーブルとエントリが含まれるとします。

    [default.global.parameters] stack_name = "common-stack" [default.deploy.parameters] stack_name = "my-app-stack"

    この場合は、sam deployコマンドは、スタック名my-app-stack、およびその他のコマンド (たとえば、sam logs) は、スタック名を使用します。common-stack

による設定の書き込みsam deploy --guided

実行すると、sam deploy --guidedコマンドを実行すると、AWS SAM CLI は一連のプロンプトとともにデプロイをガイドします。

これらのプロンプトには、"Save arguments to samconfig.toml [Y/n]:"。あなたが応答した場合Yをこのプロンプトに追加すると、AWS SAM CLI は設定ファイルをdeployコマンド。たとえば、default環境の場合、AWS SAM は[default.deploy.parameters]テーブル。

エントリの一覧は、deployAWS SAM が更新できるコマンドテーブルには、以下のものがあります。

  • stack_name

  • s3_bucket

  • s3_prefix

  • image_repository

  • region

  • confirm_changeset

  • capabilities

  • signing_profiles

  • parameter_overrides

    注記

    設定ファイルには、同じパラメータのエントリを含む特別なケースがあります。deployおよびglobalコマンドテーブル。この場合は、sam deploy --guidedと同じ値を指定し、そのパラメータにglobalコマンドテーブルエントリがある場合、deployコマンドテーブルエントリが削除されます。

    でを指定することにより、sam deploy --guidedで既に指定されている値と同じ値をプロンプトglobalコマンドテーブルでは、AWS SAM はデフォルトでglobalコマンドテーブルです。

ガイド付きプロンプトのデフォルト値のルール

を実行したときに AWS SAM CLI に表示されるプロンプトのデフォルト値を制御するにはsam deploy --guidedでは、コマンドラインでパラメータを指定したり、既存の設定ファイルのエントリを指定したりできます。

これらのプロンプトの規則は次のとおりです。

  • コマンドラインで値を指定した場合、AWS SAM CLI はこれらのコマンドライン値を対応するプロンプトのデフォルトとして使用します。

  • 既存の設定ファイルがある場合、AWS SAM CLI は、対応するプロンプトのデフォルト値として、そのファイル内の一致するテーブルのエントリを使用します。

コマンドラインと設定ファイルの間の優先順位ルールは、優先順位このトピックの前半のセクション「」を参照してください。