sam sync
このページでは、AWS Serverless Application Model コマンドラインインタフェイス (AWS SAM CLI) の sam sync コマンドのリファレンス情報を提供します。
-
AWS SAM CLI の概要については、「AWS SAMCLI とは?」を参照してください。
-
AWS SAM CLI の使用に関するドキュメントについては、「AWS SAM CLI」を参照してください。
sam sync コマンドは、ローカル アプリケーションの変更を AWS クラウド に同期します。
使用
$sam sync<options>
オプション
--base-dir, -sDIRECTORY-
関数またはレイヤーのソースコードへの相対パスを、このディレクトリを基準にして解決します。このオプションは、ソースコードフォルダの相対パスの解決方法を変更する場合に使用します。デフォルトで、相対パスは AWS SAM テンプレートの場所を基準にして解決されます。
このオプションは、構築しているルートアプリケーションまたはスタックのリソースに加えて、ネストされたアプリケーションまたはスタックにも適用されます。このオプションは、以下のリソースタイプとプロパティにも適用されます。
-
リソースタイプ:
AWS::Serverless::Functionプロパティ:CodeUri -
リソースタイプ:
AWS::Serverless::Functionリソース属性:Metadataエントリ:DockerContext -
リソースタイプ:
AWS::Serverless::LayerVersionプロパティ:ContentUri -
リソースタイプ:
AWS::Lambda::Functionプロパティ:Code -
リソースタイプ:
AWS::Lambda::LayerVersionプロパティ:Content
-
--build-imageTEXT-
アプリケーションの構築時に使用するコンテナイメージの URI です。デフォルトでは、AWS SAM は Amazon Elastic Container Registry (Amazon ECR) Public のコンテナイメージリポジトリ の URI を使用します。別の画像を使用するには、このオプションを指定します。
このオプションは、1 つのコマンドで複数回使用できます。各オプションには、文字列またはキーと値のペアを指定できます。
-
文字列 – アプリケーション内のすべてのリソースに使用するコンテナイメージ URI を指定します。以下に例を示します。
$sam sync --build-imageamazon/aws-sam-cli-build-image-python3.8 -
キーと値のペア — リソース名をキーとして、そのリソースで使用するコンテナイメージ URI を値として指定します。この形式を使用して、アプリケーション内のリソースごとに異なるコンテナイメージ URI を指定します。以下に例を示します。
$sam sync --build-imageFunction1=amazon/aws-sam-cli-build-image-python3.8
このオプションは、
--use-containerオプションが指定されている場合のみに適用され、指定されていない場合はエラーが発生します。 -
--build-in-source | --no-build-in-source-
ソースフォルダにプロジェクトを直接構築するには
--build-in-sourceを指定します。--build-in-sourceオプションは、次のランタイムとビルドメソッドをサポートします:-
ランタイム –
sam init --runtimeオプションでサポートされている Node.js ランタイム。 -
ビルドメソッド –
Makefile、esbuild。
--build-in-sourceオプションは、次のオプションとは互換性がありません:-
--use-container
[Default] (デフォルト):
--no-build-in-source -
--capabilitiesLIST-
CloudFormation が特定のスタックを作成できるように指定する必要がある機能のリスト。一部のスタックテンプレートには、AWS アカウント のアクセス許可に影響するリソースが含まれる場合があります。例えば、新しい AWS Identity and Access Management (IAM) ユーザーの作成による場合などです。デフォルト値を上書きするには、このオプションを指定します。有効な値には次のようなものがあります。
-
CAPABILITY_IAM
-
CAPABILITY_NAMED_IAM
-
CAPABILITY_RESOURCE_POLICY
-
CAPABILITY_AUTO_EXPAND
デフォルト:
CAPABILITY_NAMED_IAMおよびCAPABILITY_AUTO_EXPAND -
--code-
デフォルトでは、AWS SAM はアプリケーション内のすべてのリソースを同期します。以下を含むコードリソースのみを同期するには、このオプションを指定します。
-
AWS::Serverless::Function -
AWS::Lambda::Function -
AWS::Serverless::LayerVersion -
AWS::Lambda::LayerVersion -
AWS::Serverless::Api -
AWS::ApiGateway::RestApi -
AWS::Serverless::HttpApi -
AWS::ApiGatewayV2::Api -
AWS::Serverless::StateMachine -
AWS::StepFunctions::StateMachine
コードリソースを同期するために、AWS SAM は、AWS CloudFormation を介してデプロイするのではなく、AWS サービス API を直接使用します。CloudFormation スタックを更新するには、sam sync --watch または sam deploy を実行します。
-
--config-envTEXT-
使用する設定ファイル内のデフォルトパラメータ値を指定する環境名です。デフォルト値は「default」です。設定ファイルの詳細については、「AWS SAM CLI 設定ファイル」を参照してください。
--config-filePATH-
使用するデフォルトのパラメータ値が含まれる設定ファイルのパスとファイル名です。デフォルト値は、プロジェクトディレクトリのルートにある「
samconfig.toml」です。設定ファイルの詳細については、「AWS SAM CLI 設定ファイル」を参照してください。 --dependency-layer | --no-dependency-layer-
同期処理を高速化するために個々の関数の依存関係を別のレイヤーに分離するかどうかを指定します。
[Default] (デフォルト):
--dependency-layer --image-repositoryTEXT-
このコマンドが関数のイメージをアップロードする Amazon Elastic Container Registry (Amazon ECR) リポジトリの名前です。
Imageパッケージタイプで宣言された関数に必要です。 --image-repositoriesTEXT-
関数の Amazon ECR リポジトリ URI へのマッピングです。論理 ID で関数を参照します。以下に例を示します。
$sam sync --image-repositoriesFunction1=123456789012.dkr.ecr.us-east-1.amazonaws.com/my-repoこのオプションは 1 つのコマンドで複数回指定できます。
--kms-key-idTEXT-
Amazon S3 バケットに保管されているアーティファクトの暗号化に使用される AWS Key Management Service (AWS KMS) キーの ID です。このオプションを指定しない場合、AWS SAM は Amazon S3 マネージド暗号化キーを使用します。
--metadata-
テンプレートで参照するすべてのアーティファクトにアタッチするメタデータのマップです。
--notification-arnsLIST-
CloudFormation がスタックに関連付ける Amazon Simple Notification Service (Amazon SNS) トピック ARN のリストです。
--no-use-container-
IDE ツールキットを使用してデフォルトの動作を設定できるオプション。
--parameter-overrides-
キーバリューペアとしてエンコードされた CloudFormation パラメータオーバーライドが含まれる文字列です。AWS Command Line Interface (AWS CLI) と同じ形式を使用します。AWS SAM CLI 形式は明示的なキーと値のキーワードで構成され、各オーバーライドはスペースで区切られます。ここでは、以下の 2 つの例を示します。
--parameter-overrides ParameterKey=hello,ParameterValue=world--parameter-overrides ParameterKey=hello,ParameterValue=world ParameterKey=example1,ParameterValue=example2 ParameterKey=apple,ParameterValue=banana
--resourceTEXT-
同期するリソースタイプを指定します。複数のリソースを同期する場合、このオプションを複数回指定できます。このオプションは、
--codeでサポートされています。値は、--codeにリストされたリソースの 1 つである必要があります。例えば、--resource AWS::Serverless::Function --resource AWS::Serverless::LayerVersion。 --resource-idTEXT-
同期するリソース ID を指定します。複数のリソースを同期する場合、このオプションを複数回指定できます。このオプションは、
--codeでサポートされています。例えば、--resource-id Function1 --resource-id Function2。 --role-arnTEXT-
変更セットの適用時に CloudFormation が引き受ける IAM ロールの Amazon リソースネーム (ARN) です。
--s3-bucketTEXT-
このコマンドが CloudFormation テンプレートをアップロードする Amazon Simple Storage Service (Amazon S3) バケットの名前です。テンプレートが 51,200 バイトより大きい場合は、
--s3-bucketまたは--resolve-s3オプションは必須です。--s3-bucketと--resolve-s3の両方のオプションを指定するとエラーが発生します。 --s3-prefixTEXT-
Amazon S3 バケットにアップロードするアーティファクト名に追加されたプレフィックスです。プレフィックス名は、Amazon S3 バケットのパス名 (フォルダ名) です。これは、
Zipパッケージタイプで宣言された関数にのみ適用されます。 --save-params-
コマンドラインで指定したパラメータを AWS SAM 設定ファイルに保存します。
--skip-deploy-sync | --no-skip-deploy-sync-
必要がない場合は、初期インフラストラクチャ同期をスキップするように
--skip-deploy-syncを指定します。AWS SAM CLI は、ローカル AWS SAM テンプレートとデプロイされた CloudFormation テンプレートを比較し、変更が検出された場合にのみデプロイを実行します。sam syncを実行するたびに CloudFormation デプロイを実行するように--no-skip-deploy-syncを指定します。詳細については初期の CloudFormation デプロイをスキップするを参照してください。
[Default] (デフォルト):
--skip-deploy-sync --stack-nameTEXT-
アプリケーションの CloudFormation スタックの名前です。
このオプションは必須です。
-
作成または更新されたスタックに関連付けるタグのリストです。CloudFormation は、このリストをサポートするスタック内のリソースにもこれらのタグを伝播します。
--template-file, --template, -tPATH-
AWS SAM テンプレートが置かれているパスとファイルの名前です。
注記
このオプションを指定すると、AWS SAM は、テンプレートと、それがポイントするローカルリソースのみをデプロイします。
--use-container, -u-
関数がネイティブにコンパイルされた依存関係を持つパッケージに依存する場合は、このオプションを使用して、AWS Lambda に似た Docker コンテナ内で関数を構築します。
注記
現在、このオプションには
--dependency-layerとの互換性がありません。--use-containerを--dependency-layerと共に使用すると AWS SAM CLI にメッセージが表示され、--no-dependency-layerで処理が続行されます。 --watch-
ローカルアプリケーションの変更を監視し、その変更を AWS クラウドに自動的に同期するプロセスを開始します。デフォルトでは、このオプションを指定すると、更新時に、AWS SAM はアプリケーション内のすべてのリソースを同期します。このオプションを指定すると、AWS SAM は CloudFormation の初期デプロイを実行します。次に、AWS SAM は AWS サービス API を使用してコードリソースを更新します。AWS SAM テンプレートを更新すると、AWS SAM は CloudFormation を使用してインフラストラクチャリソースを更新します。
--watch-excludeTEXT-
ファイルに変更がないかどうかを確認するための監視対象からファイルまたはフォルダを除外します。このオプションを使用するには、
--watchも指定する必要があります。このオプションは key-value ペアを受け取ります。
-
キー – アプリケーション内の Lambda 関数の論理 ID。
-
値 – 除外する関連付けられたファイル名またはフォルダ。
--watch-excludeオプションで指定されたファイルまたはフォルダを更新しても、AWS SAM CLI は同期を開始しません。ただし、他のファイルまたはフォルダの更新によって同期が開始されると、これらのファイルまたはフォルダはその同期に含まれます。このオプションは、1 つのコマンドで複数回指定できます。
-
例
このコマンドの使用例については、「sam sync コマンドのオプション」を参照してください。