sam package - AWS Serverless Application Model

sam package

AWS Serverless Application Model コマンドラインインターフェイス (AWS SAMCLI) は、AWS SAM アプリケーションをパッケージ化します。

このコマンドは、コードと依存関係の .zip ファイルを作成し、そのファイルを Amazon Simple Storage Service (Amazon S3) にアップロードします。AWS SAM はAmazon S3 に保存されているすべてのファイルの暗号化を有効にします。次に、AWS SAM テンプレートのコピーを返し、ローカルのアーティファクトへの参照を、コマンドがアーティファクトをアップロードした Amazon S3 の場所に置き換えます。

このコマンドを使用する場合、AWS SAM CLI はデフォルトで、現在の作業ディレクトリがプロジェクトのルートディレクトリであると想定します。AWS SAM CLI はまず、sam build コマンドを使用して構築されたテンプレートファイルを見つけようとします。これは .aws-sam サブフォルダにあり、template.yaml と命名されています。AWS SAM CLI は次に、現在の作業ディレクトリで、template.yaml または template.yml と命名されているテンプレートファイルを見つけようとします。--template オプション指定すると、AWS SAM CLI のデフォルト動作が上書きされ、その AWS SAM テンプレートと、それがポイントするローカルリソースだけがパッケージ化されます。

注記

sam deploy が の機能を暗黙的に実行するようになりました。sam packagesam deploy コマンドを直接使用して、アプリケーションをパッケージ化およびデプロイできます。

使用

$ sam package <arguments> <options>

引数

リソース ID

パッケージ化する Lambda 関数の ID です。

この引数はオプションです。アプリケーションに Lambda 関数が 1 つ含まれている場合、AWS SAM CLI によりそれがパッケージ化されます。アプリケーションに複数の関数が含まれている場合は、関数の ID を 1 つ指定してパッケージ化します。

有効な値: リソースの論理 ID またはリソース ARN。

オプション

--config-env TEXT

使用する設定ファイル内のデフォルトパラメータ値を指定する環境名です。デフォルト値は「default」です。設定ファイルの詳細については、「AWS SAM CLI 設定ファイル」を参照してください。

--config-file PATH

使用するデフォルトのパラメータ値が含まれる設定ファイルのパスとファイル名です。デフォルト値は、プロジェクトディレクトリのルートにある「samconfig.toml」です。設定ファイルの詳細については、「AWS SAM CLI 設定ファイル」を参照してください。

--debug

デバッグロギングをオンにして、AWS SAM CLI が生成するデバッグメッセージを出力表示し、タイムスタンプを表示します。

--force-upload

Amazon S3 バケット内の既存のファイルを上書きします。このフラグを指定して、アーティファクトが Amazon S3 バケット内の既存のアーティファクトと一致する場合でも、それらをアップロードします。

--help

このメッセージを表示して終了します。

--image-repository TEXT

このコマンドが関数のイメージをアップロードする Amazon Elastic Container Registry (Amazon ECR) リポジトリの URI です。Image パッケージタイプで宣言された関数に必要です。

--kms-key-id TEXT

Amazon S3 バケットに保管されているアーティファクトの暗号化に使用される AWS Key Management Service (AWS KMS) キーの ID です。このオプションを指定しない場合、AWS SAM は Amazon S3 マネージド暗号化キーを使用します。

--metadata

(オプション) テンプレートで参照されるすべてのアーティファクトにアタッチするメタデータのマップです。

--no-progressbar

Amazon S3 へのアーティファクトのアップロード時に、進行状況バーを表示しません。

--output-template-file PATH

コマンドがパッケージ化されたテンプレートを書き込むファイルへのパス。パスを指定しない場合、コマンドはテンプレートを標準出力に書き込みます。

--profile TEXT

AWS 認証情報を取得する、認証情報ファイルから特定のプロファイルです。

--region TEXT

デプロイ先の AWS リージョンです。例えば、us-east-1 などです。

--resolve-s3

パッケージ化に使用する Amazon S3 バケットを自動的に作成します。--s3-bucket および --resolve-s3 オプションの両方を指定すると、エラーが発生します。

--s3-bucket TEXT

このコマンドがアーティファクトをアップロードする Amazon S3 バケットの名前です。アーティファクトが 51,200 バイトより大きい場合には、--s3-bucket または --resolve-s3 オプションは必須です。--s3-bucket および --resolve-s3 オプションの両方を指定すると、エラーが発生します。

--s3-prefix TEXT

Amazon S3 バケットにアップロードされるアーティファクト名に追加されたプレフィックスです。プレフィックス名は、Amazon S3 バケットのパス名 (フォルダ名) です。これは、Zip パッケージタイプで宣言された関数のみに適用されます。

--save-params

コマンドラインで指定したパラメータを AWS SAM 設定ファイルに保存します。

--signing-profiles LIST

(オプション) デプロイパッケージに署名するための署名プロファイルのリストです。このパラメータはキーバリューペアのリストを使用します。このペアのキーは署名する関数またはレイヤーの名前、値は署名プロファイルで、オプションのプロファイル所有者は : で区切られます。例えば、FunctionNameToSign=SigningProfileName1 LayerNameToSign=SigningProfileName2:SigningProfileOwner

--template-file, --template, -t PATH

AWS SAM テンプレートが置かれているパスとファイルの名前です。

注記

このオプションを指定すると、 AWS SAM テンプレートとそれがポイントするローカルリソースのみをパッケージ化します。

--use-json

CloudFormation テンプレートの JSON を出力します。デフォルトでは、YAML が使用されます。

次の例では、Lambda 関数と CodeDeploy アプリケーションのために、アーティファクトを作成しパッケージ化します。アーティファクトは Amazon S3 バケットにアップロードされます。コマンドの出力は、package.yml という新しいファイルです。

$ sam package \ --template-file template.yml \ --output-template-file package.yml \ --s3-bucket amzn-s3-demo-bucket