

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

# の開始方法 AWS SAM
<a name="serverless-getting-started"></a>

このセクションのトピックを確認して完了 AWS SAM し、 の使用を開始します。 [AWS SAM 前提条件](prerequisites.md)には、 AWS アカウントの設定、IAM ユーザーの作成、キーアクセスの作成、 のインストールと設定に関する詳細な手順が記載されています AWS SAM CLI。前提条件を満たしたら、開発アプローチを選択できます。
+ [AWS SAM CLI のインストール](install-sam-cli.md)。これは、Linux、Windows、macOS オペレーティングシステムで実行できます。
+ [VS Code Toolkit を使用した AWS SAM の開始方法](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/sam-get-started.html)。統合されたデバッグとテスト機能を備えたビジュアル開発エクスペリエンスを提供します。

インストールが完了したら、オプションで AWS SAM Hello World チュートリアルを試すことができます。このチュートリアルでは、 AWS SAMで基本的なサーバーレスアプリケーションを作成するプロセスについて説明します。チュートリアルを完了すると、[( AWS Serverless Application Model AWS SAM) の使用方法](chapter-using-sam.md) で詳しく説明されている概念を確認する準備が整います。

**Topics**
+ [

# AWS SAM 前提条件
](prerequisites.md)
+ [

# AWS SAM CLI のインストール
](install-sam-cli.md)
+ [

# チュートリアル: を使用して Hello World アプリケーションをデプロイする AWS SAM
](serverless-getting-started-hello-world.md)
+ [

# Lambda 関数の AWS SAM アプリケーションへの変換
](convert-lambda-to-sam.md)

# AWS SAM 前提条件
<a name="prerequisites"></a>

 AWS Serverless Application Model コマンドラインインターフェイス () をインストールして使用する前に、以下の前提条件を満たしてくださいAWS SAM CLI。

を使用するには AWS SAM CLI、以下が必要です。
+  AWS アカウント、 AWS Identity and Access Management (IAM) 認証情報、IAM アクセスキーペア。
+  AWS 認証情報を設定する AWS Command Line Interface (AWS CLI)。

**Topics**
+ [

## ステップ 1: AWS アカウントにサインアップする
](#prerequisites-sign-up)
+ [

## ステップ 2: IAM ユーザーを作成します
](#prerequisites-create-user)
+ [

## ステップ 3: アクセスキー ID とシークレットアクセスキーを作成します
](#prerequisites-create-keys)
+ [

## ステップ 4: をインストールする AWS CLI
](#prerequisites-install-cli)
+ [

## ステップ 5: AWS CLI を使用して AWS 認証情報を設定する
](#prerequisites-configure-credentials)
+ [

## ステップ 6: (オプション) AWS Toolkit for VS Code をインストールする
](#prerequisites-install-vscode)
+ [

## 次の手順
](#prerequisites-next-steps)

## ステップ 1: AWS アカウントにサインアップする
<a name="prerequisites-sign-up"></a>

がない場合は AWS アカウント、次の手順を実行して作成します。

**にサインアップするには AWS アカウント**

1. [https://portal.aws.amazon.com/billing/signup](https://portal.aws.amazon.com/billing/signup) を開きます。

1. オンラインの手順に従います。

   サインアップ手順の一環として、電話またはテキストメッセージを受け取り、電話キーパッドで検証コードを入力します。

   にサインアップすると AWS アカウント、 *AWS アカウントのルートユーザー* が作成されます。ルートユーザーには、アカウントのすべての AWS のサービス とリソースへのアクセス権があります。セキュリティベストプラクティスとして、ユーザーに管理アクセス権を割り当て、[ルートユーザーアクセスが必要なタスク](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks)の実行にはルートユーザーのみを使用するようにしてください。

## ステップ 2: IAM ユーザーを作成します
<a name="prerequisites-create-user"></a>

管理者ユーザーを作成するには、以下のいずれかのオプションを選択します。


****  

| 管理者を管理する方法を 1 つ選択します | 目的 | 方法 | 以下の操作も可能 | 
| --- | --- | --- | --- | 
| IAM アイデンティティセンター内 (推奨) | 短期の認証情報を使用して AWSにアクセスします。これはセキュリティのベストプラクティスと一致しています。ベストプラクティスの詳細については、「*IAM ユーザーガイド*」の「[IAM でのセキュリティのベストプラクティス](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#bp-users-federation-idp)」を参照してください。 | AWS IAM アイデンティティセンター ユーザーガイドの「[開始方法](https://docs.aws.amazon.com//singlesignon/latest/userguide/getting-started.html)」の手順に従います。 | AWS Command Line Interface ユーザーガイドの [を使用する AWS CLI ように を設定 AWS IAM アイデンティティセンター](https://docs.aws.amazon.com//cli/latest/userguide/cli-configure-sso.html)して、プログラムによるアクセスを設定します。 | 
| IAM 内 (非推奨) | 長期認証情報を使用して AWSにアクセスします。 | IAM ユーザーガイドの「[緊急アクセス用の IAM ユーザーを作成する](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started-emergency-iam-user.html)」の手順に従います。 | IAM ユーザーガイドの「[IAM ユーザーのアクセスキーを管理する](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_credentials_access-keys.html)」の手順に従って、プログラムによるアクセスを設定します。 | 

## ステップ 3: アクセスキー ID とシークレットアクセスキーを作成します
<a name="prerequisites-create-keys"></a>

CLI アクセスには、アクセスキー ID とシークレットアクセスキーが必要です。長期のアクセスキーの代わりに一時的な認証情報をできるだけ使用します。一時的な認証情報には、アクセスキー ID、シークレットアクセスキー、および認証情報の失効を示すセキュリティトークンが含まれています。詳細については、*IAM* [ ユーザーガイドの「 AWS リソースでの一時的な認証情報](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html)の使用」を参照してください。

ユーザーが の AWS 外部で を操作する場合は、プログラムによるアクセスが必要です AWS マネジメントコンソール。プログラムによるアクセスを許可する方法は、 がアクセスするユーザーのタイプによって異なります AWS。

ユーザーにプログラムによるアクセス権を付与するには、以下のいずれかのオプションを選択します。


****  

| プログラムによるアクセス権を必要とするユーザー | 目的 | 方法 | 
| --- | --- | --- | 
| IAM | (推奨) コンソール認証情報を一時的な認証情報として使用して AWS CLI、、 AWS SDKs、または AWS APIs。 |  使用するインターフェイスの指示に従ってください。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/serverless-application-model/latest/developerguide/prerequisites.html)  | 
|  ワークフォースアイデンティティ (IAM アイデンティティセンターで管理されているユーザー)  | 一時的な認証情報を使用して AWS CLI、、 AWS SDKs、または AWS APIs。 |  使用するインターフェイスの指示に従ってください。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/serverless-application-model/latest/developerguide/prerequisites.html)  | 
| IAM | 一時的な認証情報を使用して AWS CLI、、 AWS SDKs、または AWS APIs。 | 「IAM [ユーザーガイド」の「 AWS リソースでの一時的な認証情報](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html)の使用」の手順に従います。 | 
| IAM | (非推奨)長期認証情報を使用して、 AWS CLI、 AWS SDKs、または AWS APIs。 |  使用するインターフェイスの指示に従ってください。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/serverless-application-model/latest/developerguide/prerequisites.html)  | 

## ステップ 4: をインストールする AWS CLI
<a name="prerequisites-install-cli"></a>

 AWS CLI は、コマンドラインシェルでコマンド AWS のサービス を使用して を操作できるオープンソースツールです。では、認証情報の設定などのアクティビティ AWS CLI に AWS SAM CLIが必要です。の詳細については AWS CLI、 *AWS Command Line Interface ユーザーガイド*[の「 とは AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html)」を参照してください。

をインストールするには AWS CLI、[「 ユーザーガイド」の「 の最新バージョンのインストールまたは更新 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)」を参照してください。 *AWS Command Line Interface *

## ステップ 5: AWS CLI を使用して AWS 認証情報を設定する
<a name="prerequisites-configure-credentials"></a>

**IAM Identity Center で認証情報を設定する**
+ IAM Identity Center で認証情報を設定するには、[AWS 「Configure your profile with the configure sso Wizard](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html#cli-configure-sso-configure)」を参照してください。

**を使用して認証情報を設定するには AWS CLI**

1. コマンドラインから `aws configure` コマンドを実行します。

1. 次を設定します。詳細については、各リンクを選択してください。

   1. [アクセスキー ID](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html#cli-configure-quickstart-creds)

   1. [シークレットアクセスキー](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html#cli-configure-quickstart-creds)

   1. [AWS リージョン](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html#cli-configure-quickstart-region)

   1. [出力形式](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html#cli-configure-quickstart-format)

   次の例は、サンプル値を示しています。

   ```
   $ aws configure
   AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE
   AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
   Default region name [None]: us-west-2
   Default output format [None]: json
   ```

は、この情報を `credentials`および `config` ファイル内の という名前の*プロファイル* (設定のコレクション) `default` に AWS CLI 保存します。これらのファイルは、ホームディレクトリ内の `.aws` ファイルにあります。デフォルトでは、このプロファイルの情報は、使用するプロファイルを明示的に指定しない AWS CLI コマンドを実行するときに使用されます。`credentials` ファイルの詳細については、「AWS Command Line Interface ユーザーガイド」の「[設定ファイルと認証情報ファイルの設定](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html)」を参照してください。

既存の設定や認証情報ファイルの使用など、認証情報の設定の詳細については、「AWS Command Line Interface ユーザーガイド」の「[クイック設定](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-quickstart.html)」を参照してください。

## ステップ 6: (オプション) AWS Toolkit for VS Code をインストールする
<a name="prerequisites-install-vscode"></a>

Toolkit AWS for VS Code は、統合された開発環境を好むデベロッパー向けに、ビジュアルデバッグ、CodeLens 統合、効率的なデプロイワークフローなど、サーバーレス開発のための強力な機能を提供します。

**VS Code 開発の前提条件**
+ システムにインストール済みの Visual Studio Code (バージョン 1.73.0 以降)
+ VS Code の YAML 言語サポート拡張機能

**AWS Toolkit for VS Code をインストールするには**

1. Visual Studio Code を開きます。

1. [拡張機能] ビューを開きます (Ctrl\$1Shift\$1X または Cmd\$1Shift\$1X)

1. AWS 「ツールキット」を検索する

1. Amazon Web Services によるAWS 「ツールキット」拡張機能のインストール

1. Red Hat 提供の「YAML」拡張機能をインストールします (SAM テンプレート CodeLens 機能に必要)

**SAM で VS Code AWS を使用する利点**
+ ビジュアルデバッグ: ブレークポイントを設定し、Lambda 関数のステップスルーをローカルで実行
+ CodeLens 統合: SAM テンプレートから関数の構築、デプロイ、呼び出しを直接実行
+ 統合ターミナル: エディタを離れずに AWS SAM AWS CLI コマンドにアクセスする
+ テンプレート検証: SAM テンプレートのリアルタイム検証と IntelliSense

VS Code で AWS 認証情報を設定する方法については、 AWS 「 Toolkit for VS Code ユーザーガイド」の[「認証情報の設定](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/setup-credentials.html)」を参照してください。

## 次の手順
<a name="prerequisites-next-steps"></a>
+ これで、 AWS SAM CLIをインストールして の使用を開始する準備ができました AWS SAM。をインストールするには AWS SAM CLI、「」を参照してください[AWS SAM CLI のインストール](install-sam-cli.md)。
+ サーバーレス開発用の Visual Studio コードをセットアップするには、「[AWS Toolkit for VS Code のセットアップ](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/setting-up.html)」を参照してください。

# AWS SAM CLI のインストール
<a name="install-sam-cli"></a>

「」の手順に従って、サポートされているオペレーティングシステムに AWS Serverless Application Model コマンドラインインターフェイス (AWS SAM CLI) の最新リリースをインストールします[ステップ 4: をインストールする AWS CLI](prerequisites.md#prerequisites-install-cli)。

ナイトリービルドのアップグレード AWS SAM CLI、アンインストール、管理の方法など、現在インストールされているバージョンの の管理については、「」を参照してください[AWS SAM CLI バージョンの管理](manage-sam-cli-versions.md)。

**AWS SAM CLI CLI を初めてインストールする場合:**  
次に進む前に、前のセクションの[前提条件](prerequisites.md)をすべて満たします。これには、以下が含まれます。  
 AWS アカウントにサインアップする。
への安全なアクセスをセットアップします AWS。
アクセスキー ID とシークレットアクセスキーを作成する。
のインストール AWS CLI。
 AWS 認証情報の設定。

**Topics**
+ [

## AWS SAM CLIのインストール
](#install-sam-cli-instructions)
+ [

## インストールエラーのトラブルシューティング
](#sam-cli-troubleshoot-install)
+ [

## 次の手順
](#install-sam-cli-next-steps)
+ [

# オプション: AWS SAM CLI インストーラの整合性を検証する
](reference-sam-cli-install-verify.md)

## AWS SAM CLIのインストール
<a name="install-sam-cli-instructions"></a>

**注記**  
2023 年 9 月以降、 AWS は AWS SAM CLI () の AWS マネージドHomebrewインストーラーを維持しなくなります`aws/tap/aws-sam-cli`。Homebrew を使用して をインストールおよび管理する場合は AWS SAM CLI、次のオプションを参照してください。  
Homebrew を引き続き使用するには、コミュニティ管理のインストーラーを使用します。詳細については、「[Homebrew で  AWS SAM CLI を管理する](manage-sam-cli-versions.md#manage-sam-cli-versions-homebrew)」を参照してください。
このページに記載されているファーストパーティ製のインストール方法のいずれかを使用することをお勧めします。これらの方法のいずれかを使用する前に、[Homebrew から移行する](manage-sam-cli-versions.md#manage-sam-cli-versions-switch) を参照してください。
さらなる詳細については、「[リリースバージョン: 1.121.0](https://github.com/aws/aws-sam-cli/releases) 」を参照してください。

 をインストールするには AWS SAM CLI、オペレーティングシステムの手順に従います。

### Linux
<a name="install-sam-cli-instructions-linux"></a>

------
#### [ x86\$164 - command line installer ]

1. [AWS SAM CLI .zip ファイル](https://github.com/aws/aws-sam-cli/releases/latest/download/aws-sam-cli-linux-x86_64.zip)を任意のディレクトリにダウンロードします。

1. **(オプション)** インストール前にインストーラーの整合性を確認できます。手順については、「[オプション: AWS SAM CLI インストーラの整合性を検証する](reference-sam-cli-install-verify.md)」を参照してください。

1. インストールファイルを任意のディレクトリに解凍します。`sam-installation` サブディレクトリを使用した例を次に示します。
**注記**  
オペレーティングシステムに組み込み **unzip** コマンドがない場合は、同等のコマンドを使用します。

   ```
   $ unzip aws-sam-cli-linux-x86_64.zip -d sam-installation
   ```

1. `install` 実行可能ファイルを実行して AWS SAM CLI をインストールします。この実行可能ファイルは、前のステップで使用したディレクトリにあります。`sam-installation` サブディレクトリを使用した例を次に示します。

   ```
   $ sudo ./sam-installation/install
   ```

1. インストールを確認します。

   ```
   $ sam --version
   ```

   表示される次のような出力で、正常にインストールされていることを確認します。角括弧で囲まれたテキストは、利用可能な最新バージョンに置き換わります。

   ```
    SAM CLI, <latest version>
   ```

------
#### [ arm64 - command line installer ]

1. [AWS SAM CLI .zip ファイル](https://github.com/aws/aws-sam-cli/releases/latest/download/aws-sam-cli-linux-arm64.zip)を任意のディレクトリにダウンロードします。

1. **(オプション)** インストール前にインストーラーの整合性を確認できます。手順については、「[オプション: AWS SAM CLI インストーラの整合性を検証する](reference-sam-cli-install-verify.md)」を参照してください。

1. インストールファイルを任意のディレクトリに解凍します。`sam-installation` サブディレクトリを使用した例を次に示します。
**注記**  
オペレーティングシステムに組み込み **unzip** コマンドがない場合は、同等のコマンドを使用します。

   ```
   $ unzip aws-sam-cli-linux-arm64.zip -d sam-installation
   ```

1. `install` 実行可能ファイルを実行して AWS SAM CLI をインストールします。この実行可能ファイルは、前のステップで使用したディレクトリにあります。`sam-installation` サブディレクトリを使用した例を次に示します。

   ```
   $ sudo ./sam-installation/install
   ```

1. インストールを確認します。

   ```
   $ sam --version
   ```

   表示される次のような出力で、インストールが成功したことを確認します。角括弧付きのテキストは、最新の SAM CLI バージョンに置き換わります。

   ```
    SAM CLI, <latest version>
   ```

------

### macOS
<a name="install-sam-cli-instructions-macos"></a>

#### インストール手順
<a name="install-sam-cli-instructions-macos-steps"></a>

パッケージインストーラを使用して をインストールします AWS SAM CLI。さらに、このパッケージインストーラには、**GUI** と**コマンドライン**の 2 つのインストール方法があります。インストールの対象は、**すべてのユーザー**にすることも、**現在のユーザー**のみにすることもできます。すべてのユーザーにインストールするには、スーパーユーザー承認が必要です。

**注記**  
AWS SAM CLI はMacOS 13.x より古いバージョンの MacOS をサポートしていません。サポートされているバージョンの MacOS にアップグレードするか、 で AWS SAM CLI をインストールしますHomebrew。

------
#### [ GUI - All users ]

**パッケージインストーラをダウンロードして AWS SAM CLI をインストールするには**
**注記**  
 以前に Homebrew または pip を使用して AWS SAM CLI をインストールした場合は、まずその CLI をアンインストールする必要があります。手順については、「[AWS SAM CLI のアンインストール](manage-sam-cli-versions.md#manage-sam-cli-versions-uninstall)」を参照してください。

1.  macOS `pkg` を好みのディレクトリにダウンロードします。
   +  **Intel プロセッサーを実行している Mac の場合は、[x86\$164]** – [[aws-sam-cli-macos-x86\$164.pkg]](https://github.com/aws/aws-sam-cli/releases/latest/download/aws-sam-cli-macos-x86_64.pkg) を選択します。
   +  **Apple シリコンを実行している Mac の場合は、[arm64]** – [[aws-sam-cli-macos-arm64.pkg]](https://github.com/aws/aws-sam-cli/releases/latest/download/aws-sam-cli-macos-arm64.pkg) を選択します。
**注記**  
オプションで、インストール前にインストーラーの整合性を確認することができます。手順については、「[オプション: AWS SAM CLI インストーラの整合性を検証する](reference-sam-cli-install-verify.md)」を参照してください。

1.  ダウンロードしたファイルを実行し、画面の指示に従って、「**はじめに**」、「**Read me**」、「**ライセンス**」の手順を続けてください。

1.  **[Destination Select]** (インストール先の選択) で、**[Install for all users of this computer]** (このコンピュータのすべてのユーザーにインストール) を選択します。

1.  **[Installation Type]** (インストールタイプ) で、 AWS SAM CLI をインストールする場所を選択し、**[Install]** (インストール) を押します。推奨されるデフォルトの場所は `/usr/local/aws-sam-cli` です。
**注記**  
 **sam** コマンドで AWS SAM CLI を呼び出すために、インストーラは `/usr/local/bin/sam` と `/usr/local/aws-sam-cli/sam` または選択したインストールフォルダのいずれかとの間のシンボリックリンクを自動的に作成します。

1.  AWS SAM CLI がインストールされ、「The installation was successful」(インストールは成功しました) というメッセージが表示されます。**[Close]** (閉じる) を押します。

**正常にインストールされたことを確認するには**
+  AWS SAM CLI が正しくインストールされ、シンボリックリンクが設定されていることを確認するには、次のコマンドを実行します。

  ```
  $ which sam
  /usr/local/bin/sam
  $ sam --version
  SAM CLI, <latest version>
  ```

------
#### [ GUI - Current user ]

**AWS SAM CLI をダウンロードしてインストールするには**
**注記**  
 以前に Homebrew または pip を使用して AWS SAM CLI をインストールした場合は、まずその CLI をアンインストールする必要があります。手順については、「[AWS SAM CLI のアンインストール](manage-sam-cli-versions.md#manage-sam-cli-versions-uninstall)」を参照してください。

1.  macOS `pkg` を好みのディレクトリにダウンロードします。
   +  **Intel プロセッサーを実行している Mac の場合は、[x86\$164]** – [[aws-sam-cli-macos-x86\$164.pkg]](https://github.com/aws/aws-sam-cli/releases/latest/download/aws-sam-cli-macos-x86_64.pkg) を選択します。
   +  **Apple シリコンを実行している Mac の場合は、[arm64]** – [[aws-sam-cli-macos-arm64.pkg]](https://github.com/aws/aws-sam-cli/releases/latest/download/aws-sam-cli-macos-arm64.pkg) を選択します。
**注記**  
オプションで、インストール前にインストーラーの整合性を確認することができます。手順については、「[オプション: AWS SAM CLI インストーラの整合性を検証する](reference-sam-cli-install-verify.md)」を参照してください。

1.  ダウンロードしたファイルを実行し、画面の指示に従って、「**はじめに**」、「**Read me**」、「**ライセンス**」の手順を続けてください。

1.  **[Destination Select]** (インストール先の選択) で、**[Install for me only]** (現在のユーザーのみにインストール) を選択します。このオプションが表示されない場合は、次の手順に進みます。

1.  **[Installation Type]** (インストールタイプ) で、以下を実行します。

   1.  AWS SAM CLI をインストールする場所を選択します。デフォルトの場所は `/usr/local/aws-sam-cli` です。書き込み権限が付与されている場所を選択してください。インストール場所を変更するには、**[local]** (ローカル) を選択し、場所を選択します。完了したら、**[Continue]** (続行) を押します。

   1.  前のステップで **[Install for me only]** (現在のユーザーのみにインストール) を選択するオプションが表示されない場合は、**[Change Install Location]** (インストール場所を変更) > **[Install for me only]** (現在のユーザーのみにインストール) を選択し、**[Continue]** (続行) を押します。

   1.  **[Install]** (インストール) を押します。

1.  AWS SAM CLI がインストールされ、**「The installation was successful」**(インストールは成功しました) というメッセージが表示されます。**[Close]** (閉じる) を押します。

**シンボリックリンクを作成するには**
+  **sam** コマンドで AWS SAM CLI を呼び出すには、 AWS SAM CLI プログラムと `$PATH` との間のシンボリックリンクを手動で作成する必要があります。次のコマンドを変更および実行して、シンボリックリンクを作成します。

  ```
  $ sudo ln -s /path-to/aws-sam-cli/sam /path-to-symlink-directory/sam
  ```
  +  *sudo* — ユーザーが `$PATH` への書き込み権限を持っている場合、**sudo** は必須ではありません。それ以外の場合、**sudo** が必要です。
  +  *path-to* — AWS SAM CLI プログラムをインストールした場所へのパス。例えば、`/Users/myUser/Desktop`。
  +  *path-to-symlink-directory* — `$PATH` の環境変数。デフォルトの場所は `/usr/local/bin` です。

**正常にインストールされたことを確認するには**
+  AWS SAM CLI が正しくインストールされ、シンボリックリンクが設定されていることを確認するには、次のコマンドを実行します。

  ```
  $ which sam
  /usr/local/bin/sam
  $ sam --version
  SAM CLI, <latest version>
  ```

------
#### [ Command line - All users ]

**AWS SAM CLI をダウンロードしてインストールするには**
**注記**  
 以前に Homebrew または pip を使用して AWS SAM CLI をインストールした場合は、まずその CLI をアンインストールする必要があります。手順については、「[AWS SAM CLI のアンインストール](manage-sam-cli-versions.md#manage-sam-cli-versions-uninstall)」を参照してください。

1.  macOS `pkg` を好みのディレクトリにダウンロードします。
   +  **Intel プロセッサーを実行している Mac の場合は、[x86\$164]** – [[aws-sam-cli-macos-x86\$164.pkg]](https://github.com/aws/aws-sam-cli/releases/latest/download/aws-sam-cli-macos-x86_64.pkg) を選択します。
   +  **Apple シリコンを実行している Mac の場合は、[arm64]** – [[aws-sam-cli-macos-arm64.pkg]](https://github.com/aws/aws-sam-cli/releases/latest/download/aws-sam-cli-macos-arm64.pkg) を選択します。
**注記**  
オプションで、インストール前にインストーラーの整合性を確認することができます。手順については、「[オプション: AWS SAM CLI インストーラの整合性を検証する](reference-sam-cli-install-verify.md)」を参照してください。

1.  インストールスクリプトを変更および実行します。

   ```
   $ sudo installer -pkg path-to-pkg-installer/name-of-pkg-installer -target /
   installer: Package name is AWS SAM CLI
   installer: Upgrading at base path /
   installer: The upgrade was successful.
   ```
**注記**  
 **sam** コマンドで AWS SAM CLI を呼び出すため、インストーラは、`/usr/local/bin/sam` と `/usr/local/aws-sam-cli/sam` の間のシンボリックリンクを自動的に作成します。

**正常にインストールされたことを確認するには**
+  AWS SAM CLI が正しくインストールされ、シンボリックリンクが設定されていることを確認するには、次のコマンドを実行します。

  ```
  $ which sam
  /usr/local/bin/sam
  $ sam --version
  SAM CLI, <latest version>
  ```

------
#### [ Command line - Current user ]

**AWS SAM CLI をダウンロードしてインストールするには**
**注記**  
 以前に Homebrew または pip を使用して AWS SAM CLI をインストールした場合は、まずその CLI をアンインストールする必要があります。手順については、「[AWS SAM CLI のアンインストール](manage-sam-cli-versions.md#manage-sam-cli-versions-uninstall)」を参照してください。

1.  macOS `pkg` を好みのディレクトリにダウンロードします。
   +  **Intel プロセッサーを実行している Mac の場合は、[x86\$164]** – [[aws-sam-cli-macos-x86\$164.pkg]](https://github.com/aws/aws-sam-cli/releases/latest/download/aws-sam-cli-macos-x86_64.pkg) を選択します。
   +  **Apple シリコンを実行している Mac の場合は、[arm64]** – [[aws-sam-cli-macos-arm64.pkg]](https://github.com/aws/aws-sam-cli/releases/latest/download/aws-sam-cli-macos-arm64.pkg) を選択します。
**注記**  
オプションで、インストール前にインストーラーの整合性を確認することができます。手順については、「[オプション: AWS SAM CLI インストーラの整合性を検証する](reference-sam-cli-install-verify.md)」を参照してください。

1.  書き込み権限のあるインストールディレクトリを決定します。次に、テンプレートを使用して `xml` ファイルを作成し、インストールディレクトリを反映するようにファイルを変更します。ディレクトリは既に存在している必要があります。

    例えば、*path-to-my-directory* を `/Users/myUser/Desktop` に置き換えると、`aws-sam-cli` プログラムフォルダがそこにインストールされます。

   ```
   <?xml version="1.0" encoding="UTF-8"?>
   <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
   <plist version="1.0">
     <array>
       <dict>
         <key>choiceAttribute</key>
         <string>customLocation</string>
         <key>attributeSetting</key>
         <string>path-to-my-directory</string>
         <key>choiceIdentifier</key>
         <string>default</string>
       </dict>
     </array>
   </plist>
   ```

1.  `xml` ファイルを保存し、以下を実行して有効であることを確認します。

   ```
   $ installer -pkg path-to-pkg-installer \
   -target CurrentUserHomeDirectory \
   -showChoicesAfterApplyingChangesXML path-to-your-xml-file
   ```

    出力には、 AWS SAM CLI プログラムに適用される設定が表示されるはずです。

1.  をインストールするには、以下を実行します AWS SAM CLI。

   ```
   $ installer -pkg path-to-pkg-installer \
   -target CurrentUserHomeDirectory \
   -applyChoiceChangesXML path-to-your-xml-file
   
   # Example output
   installer: Package name is AWS SAM CLI
   installer: choices changes file 'path-to-your-xml-file' applied
   installer: Upgrading at base path base-path-of-xml-file
   installer: The upgrade was successful.
   ```

**シンボリックリンクを作成するには**
+  **sam** コマンドで AWS SAM CLI を呼び出すには、 AWS SAM CLI プログラムと `$PATH` との間のシンボリックリンクを手動で作成する必要があります。次のコマンドを変更および実行して、シンボリックリンクを作成します。

  ```
  $ sudo ln -s /path-to/aws-sam-cli/sam /path-to-symlink-directory/sam
  ```
  +  *sudo* — ユーザーが `$PATH` への書き込み権限を持っている場合、**sudo** は必須ではありません。それ以外の場合、**sudo** が必要です。
  +  *path-to* — AWS SAM CLI プログラムをインストールした場所へのパス。例えば、`/Users/myUser/Desktop`。
  +  *path-to-symlink-directory* — `$PATH` の環境変数。デフォルトの場所は `/usr/local/bin` です。

**正常にインストールされたことを確認するには**
+  AWS SAM CLI が正しくインストールされ、シンボリックリンクが設定されていることを確認するには、次のコマンドを実行します。

  ```
  $ which sam
  /usr/local/bin/sam
  $ sam --version
  SAM CLI, <latest version>
  ```

------

### Server
<a name="install-sam-cli-instructions-windows"></a>

Windows インストーラ (MSI) ファイルは、Windows オペレーティングシステムのパッケージインストーラファイルです。

これらの手順に従って、MSI ファイルを使用して AWS SAM CLI をインストールします。

1.  AWS SAM CLI [64 ビット](https://github.com/aws/aws-sam-cli/releases/latest/download/AWS_SAM_CLI_64_PY3.msi)をダウンロードします。

1. **(オプション)** インストール前にインストーラーの整合性を確認できます。手順については、「[オプション: AWS SAM CLI インストーラの整合性を検証する](reference-sam-cli-install-verify.md)」を参照してください。

1. インストールを確認します。

   インストールが完了したら、新しいコマンドプロンプトまたは PowerShell プロンプトを開いて確認します。コマンドラインから `sam` を呼び出すことができるはずです。

   ```
   sam --version
   ```

   が正常にインストールされると AWS SAM CLI、次のような出力が表示されます。

   ```
   SAM CLI, <latest version>
   ```

1. ロングパスを有効にします (Windows 10 以降のみ)。
**重要**  
は、Windows の最大パス制限を超えるファイルパスとやり取り AWS SAM CLIする場合があります。これにより、Windows 10 **MAX\$1PATH** の制限が原因で、`sam init` の実行時にエラーが発生することがあります。この問題を解決するには、新しい長いパスの動作を設定する必要があります。

   長いパスを有効にするには、Microsoft の「*Windows アプリの開発に関するドキュメント*」で「[Windows 10 バージョン 1607 以降で長いパスを有効にする](https://learn.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation?tabs=powershell#enable-long-paths-in-windows-10-version-1607-and-later)」を参照してください。

1. Git のインストール

   `sam init` コマンドを使用してサンプルアプリケーションをダウンロードするには、Git をインストールする必要があります。手順については、「[Git のインストール](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git)」を参照してください。

## インストールエラーのトラブルシューティング
<a name="sam-cli-troubleshoot-install"></a>

### Linux
<a name="sam-cli-troubleshoot-install-linux"></a>

#### Docker エラー: 「Cannot connect to the Docker daemon。Is the docker daemon running on this host?」
<a name="serverless-sam-cli-install-linux-troubleshooting-docker-deamon"></a>

`ec2-user` が Docker デーモンにアクセスするための許可の提供には、インスタンスの再起動が必要になる場合があります。このエラーが表示された場合は、インスタンスを再起動してみてください。

#### シェルエラー: 「command not found」
<a name="serverless-sam-cli-install-linux-troubleshooting-sam-cli-not-found"></a>

このエラーが表示された場合は、シェルがパス内の AWS SAM CLI 実行可能ファイルを見つけられません。 AWS SAM CLI 実行可能ファイルをインストールしたディレクトリの場所を確認してから、ディレクトリがパス上にあることを確認します。

#### AWS SAM CLI エラー: 「/lib64/libc.so.6: version `GLIBC\$12.14' not found (required by /usr/local/aws-sam-cli/dist/libz.so.1)」
<a name="serverless-sam-cli-install-linux-troubleshooting-sam-cli-missing-lib"></a>

このエラーが表示された場合は、サポートされていないバージョンの Linux を使用しており、組み込みの glibc バージョンが古くなっています。以下のいずれかを実行してみてください。
+ Linux ホストを CentOS、Fedora、Ubuntu、または Amazon Linux 2 の最新ディストリビューションの 64 ビット版にアップグレードする。
+ 「[AWS SAM CLI のインストール](#install-sam-cli)」の手順を実行する。

### macOS
<a name="sam-cli-troubleshoot-install-macos"></a>

#### インストールが失敗しました
<a name="sam-cli-troubleshoot-install-macos-install-failed"></a>

![\[インストール失敗のメッセージを表示している AWS SAM CLI インストーラの画像\]](http://docs.aws.amazon.com/ja_jp/serverless-application-model/latest/developerguide/images/sam-cli-troubleshoot-install-macos-install-failed.jpg)


 ユーザー用に AWS SAM CLI をインストールするときに、書き込み権限のないインストールディレクトリを選択した場合、このエラーが発生する可能性があります。以下のいずれかを実行してみてください。

1.  書き込み権限のある別のインストールディレクトリを選択してください。

1.  インストーラを削除します。次に、再度インストーラをダウンロードして実行します。

## 次の手順
<a name="install-sam-cli-next-steps"></a>

 AWS SAM CLIと、独自のサーバーレスアプリケーションの構築に関する詳細については、以下を参照してください。
+ [チュートリアル: を使用して Hello World アプリケーションをデプロイする AWS SAM](serverless-getting-started-hello-world.md) - 基本的なサーバーレスアプリケーションをダウンロード、構築、およびデプロイするためのステップバイステップの手順です。
+ [完全な AWS SAM ワークショップ](https://catalog.workshops.aws/complete-aws-sam/en-US) – AWS SAM が提供する主要な機能の多くを学習するために設計されたワークショップ。
+ [AWS SAM サンプルアプリケーションとパターン](https://serverlessland.com/patterns?framework=AWS+SAM) – さらに実験できるコミュニティ作成者からのサンプルアプリケーションとパターン。

# オプション: AWS SAM CLI インストーラの整合性を検証する
<a name="reference-sam-cli-install-verify"></a>

パッケージインストーラを使用して AWS Serverless Application Model コマンドラインインターフェイス (AWS SAM CLI) をインストールする場合、インストール前にその整合性を確認できます。このステップはオプションですが強く推奨されます。

確認には次の 2 つのオプションがあります。
+ パッケージインストーラーの署名ファイルを確認します。
+ パッケージインストーラーのハッシュ値を確認します。

プラットフォームで両方のオプションで確認できる場合、署名ファイルを確認するオプションの方をお勧めします。このオプションでは、キー値がここで公開され、GitHub リポジトリとは別に管理されるため、セキュリティがさらに強化されます。

**Topics**
+ [

## インストーラの署名ファイルを確認
](#reference-sam-cli-install-verify-signature)
+ [

## ハッシュ値を確認
](#reference-sam-cli-install-verify-hash)

## インストーラの署名ファイルを確認
<a name="reference-sam-cli-install-verify-signature"></a>

### Linux
<a name="reference-sam-cli-install-verify-signature-linux"></a>

#### arm64 - コマンドラインインストーラー
<a name="reference-sam-cli-install-verify-signature-linux-arm64"></a>

AWS SAM は [GnuPG](https://www.gnupg.org/) を使用して .zip インストーラに署名します AWS SAM CLI。以下の手順で確認が実行されます。

1. プライマリパブリックキーを使用して、署名者のパブリックキーを確認します。

1. 署名者パブリックキーを使用して AWS SAM CLI パッケージインストーラを確認します。

**署名者のパブリックキーの整合性を確認するには**

1. プライマリパブリックキーをコピーし、ローカルマシンに `.txt` ファイルとして保存します。例えば、*`primary-public-key.txt`*。

   ```
   -----BEGIN PGP PUBLIC KEY BLOCK-----
   Version: GnuPG v2.0.22 (GNU/Linux)
   
   mQINBGRuSzMBEADsqiwOy78w7F4+sshaMFRIwRGNRm94p5Qey2KMZBxekFtoryVD
   D9jEOnvupx4tvhfBHz5EcUHCEOdl4MTqdBy6vVAshozgxVb9RE8JpECn5lw7XC69
   4Y7Gy1TKKQMEWtDXElkGxIFdUWvWjSnPlzfnoXwQYGeE93CUS3h5dImP22Yk1Ct6
   eGGhlcbg1X4L8EpFMj7GvcsU8f7ziVI/PyC1Xwy39Q8/I67ip5eU5ddxO/xHqrbL
   YC7+8pJPbRMej2twT2LrcpWWYAbprMtRoa6WfE0/thoo3xhHpIMHdPfAA86ZNGIN
   kRLjGUg7jnPTRW4Oin3pCc8nT4Tfc1QERkHm641gTC/jUvpmQsM6h/FUVP2i5iE/
   JHpJcMuL2Mg6zDo3x+3gTCf+Wqz3rZzxB+wQT3yryZs6efcQy7nROiRxYBxCSXX0
   2cNYzsYLb/bYaW8yqWIHD5IqKhw269gp2E5Khs60zgS3CorMb5/xHgXjUCVgcu8a
   a8ncdf9fjl3WS5p0ohetPbO2ZjWv+MaqrZOmUIgKbA4RpWZ/fU97P5BW9ylwmIDB
   sWy0cMxg8MlvSdLytPieogaM0qMg3u5qXRGBr6Wmevkty0qgnmpGGc5zPiUbtOE8
   CnFFqyxBpj5IOnG0KZGVihvn+iRxrv6GO7WWO92+Dc6m94U0EEiBR7QiOwARAQAB
   tDRBV1MgU0FNIENMSSBQcmltYXJ5IDxhd3Mtc2FtLWNsaS1wcmltYXJ5QGFtYXpv
   bi5jb20+iQI/BBMBCQApBQJkbkszAhsvBQkHhM4ABwsJCAcDAgEGFQgCCQoLBBYC
   AwECHgECF4AACgkQQv1fenOtiFqTuhAAzi5+ju5UVOWqHKevOJSO08T4QB8HcqAE
   SVO3mY6/j29knkcL8ubZP/DbpV7QpHPI2PB5qSXsiDTP3IYPbeY78zHSDjljaIK3
   njJLMScFeGPyfPpwMsuY4nzrRIgAtXShPA8N/k4ZJcafnpNqKj7QnPxiC1KaIQWm
   pOtvb8msUF3/s0UTa5Ys/lNRhVC0eGg32ogXGdojZA2kHZWdm9udLo4CDrDcrQT7
   NtDcJASapXSQL63XfAS3snEc4e1941YxcjfYZ33rel8K9juyDZfi1slWR/L3AviI
   QFIaqSHzyOtP1oinUkoVwL8ThevKD3Ag9CZflZLzNCV7yqlF8RlhEZ4zcE/3s9El
   WzCFsozb5HfE1AZonmrDh3SyOEIBMcS6vG5dWnvJrAuSYv2rX38++K5Pr/MIAfOX
   DOI1rtA+XDsHNv9lSwSy0lt+iClawZANO9IXCiN1rOYcVQlwzDFwCNWDgkwdOqS0
   gOA2f8NF9lE5nBbeEuYquoOl1Vy8+ICbgOFs9LoWZlnVh7/RyY6ssowiU9vGUnHI
   L8f9jqRspIz/Fm3JD86ntZxLVGkeZUz62FqErdohYfkFIVcv7GONTEyrz5HLlnpv
   FJ0MR0HjrMrZrnOVZnwBKhpbLocTsH+3t5It4ReYEX0f1DIOL/KRwPvjMvBVkXY5
   hblRVDQoOWc=
   =d9oG
   -----END PGP PUBLIC KEY BLOCK-----
   ```

1. プライマリパブリックキーをキーリングにインポートします。

   ```
   $ gpg --import primary-public-key.txt
   							
   gpg: directory `/home/.../.gnupg' created
   gpg: new configuration file `/home/.../.gnupg/gpg.conf' created
   gpg: WARNING: options in `/home/.../.gnupg/gpg.conf' are not yet active during this run
   gpg: keyring `/home/.../.gnupg/secring.gpg' created
   gpg: keyring `/home/.../.gnupg/pubring.gpg' created
   gpg: /home/.../.gnupg/trustdb.gpg: trustdb created
   gpg: key 73AD885A: public key "AWS SAM CLI Primary <aws-sam-cli-primary@amazon.com>" imported
   gpg: Total number processed: 1
   gpg:               imported: 1  (RSA: 1)
   ```

1. 署名者のパブリックキーをコピーし、ローカルマシンに `.txt` ファイルとして保存します。例えば、*`signer-public-key.txt`*。

   ```
   -----BEGIN PGP PUBLIC KEY BLOCK-----
   Version: GnuPG v2.0.22 (GNU/Linux)
   
   mQINBGgrxIgBEADGCTudveeeVbWpZDGX9Ni57mBRMVSJwQJ6F/PC34jw0DozxTtd
   H+ZPsXLvLwerN/DVXbK8E1qNZ5RGptak8j7MPz+MC3n4txibEJpB61vpjJJM+9cC
   7whaMLDT/SbykHYXdrnHqa8KsUJl7rPLJcaRN722NSxvYVMIOA9ffVXV7cfEyZi5
   MbYF2Gc9LNbKaknImIva7EKeeh2/wI6YCqC5yytyfWU5dL6oHXsgTnFL9mhziMxv
   WhyzawyJG6EJZsJ3WLlbIKApN6XZSXyCxOvlBrebYZjD5v0nA+TJaQ7is8atjtOI
   DGe0AViw7kO8ChTpjA7YG/Uu7n/Fy7qLF/3Nz0b6cBNjemjBazQ3A3KNCpi5hqFM
   Uo1WpoVLr5CXQnc0B3fBUnTIoxi0Sk5MKjH9AbYxfgqEX0ZJB9hAlc6LIEy0Yru6
   MMBrIHE86IMl1NfE/DeLnCdPG23+1PttwyOt3+9z5QwmPe3VPpEfCySPcdxHKZSP
   rLile8qDznEvlPDvQ0qkBxdMtVa2yct5VJkdqy6UrN2xa0dpspHjRUjHh/EY/xMt
   fwMUjOKohaZ/1pjotCcksAsZWUxCNcFvLYxuxeytVk4F09Es1hj4ihhLUI+43/ic
   3DHSEiext7Q8/UccNArkhSCT7UOvvL7QTuP+pjYTyiC8Vx6g/Y5Ht5+qywARAQAB
   tDBBV1MgU0FNIENMSSBUZWFtIDxhd3Mtc2FtLWNsaS1zaWduZXJAYW1hem9uLmNv
   bT6JAj8EEwEJACkFAmgrxIgCGy8FCQPCZwAHCwkIBwMCAQYVCAIJCgsEFgIDAQIe
   AQIXgAAKCRBAlKuxvt/atJo6EAC/5C8uJs76W5f5V5XNAMzwBFiZuYpop3DRReCo
   P68ZZylokAC9ShRZnIOujpDJtlNS7T/G00BzmcpspkYYE531ALaXcHWmb9XV0Ajg
   J8iboAVBLY0C7mhL/cbJ3v9QlpXXjyTuhexkJCV8rdHVX/0H8WqTZplEaRuZ7p8q
   PMxddg4ClwstYuH3O/dmNdlGqfb4Fqy8MnV1yGSXRs5Jf+sDlN2UO4mbpyk/mr1c
   f/jFxmx86IkCWJVvdXWCVTe2AFy3NHCdLtdnEvFhokCOQd9wibUWX0j9vq4cVRZT
   qamnpAQaOlH3lXOwrjqo8b1AIPoRWSfMtCYvh6kA8MAJv4cAznzXILSLtOE0mzaU
   qp5qoy37wNIjeztX6c/q4wss05qTlJhnNu4s3nh5VHultooaYpmDxp+ala5TWeuM
   KZDI4KdAGF4z0Raif+N53ndOYIiXkY0goUbsPCnVrCwoK9PjjyoJncq7c14wNl5O
   IQUZEjyYAQDGZqs5XSfY4zW2cCXatrfozKF7R1kSU14DfJwPUyksoNAQEQezfXyq
   kr0gfIWK1r2nMdqS7WgSx/ypS5kdyrHuPZdaYfEVtuezpoT2lQQxOSZqqlp5hI4R
   nqmPte53WXJhbC0tgTIJWn+Uy/d5Q/aSIfD6o8gNLS1BDs1j1ku0XKu1sFCHUcZG
   aerdsIkCHAQQAQkABgUCaCvFeAAKCRBC/V96c62IWt3/D/9gOLzWtz62lqJRCsri
   wcA/yz88ayKb/GUv3FCT5Nd9JZt8y1tW+AE3SPTdcpfZmt5UN2sRzljO61mpKJzp
   eBvYQ9og/34ZrRQqeg8bz02u34LKYl1gD0xY0bWtB7TGIxIZZYqZECoPR0Dp6ZzB
   abzkRSsJkEk0vbZzJhfWFYs98qfp/G0suFSBE79O8Am33DB2jQ/Sollh1VmNE6Sv
   EOgR6+2yEkS2D0+msJMa/V82v9gBTPnxSlNV1d8Dduvt9rbM3LoxiNXUgx/s52yY
   U6H3bwUcQ3UY6uRe1UWo5QnMFcDwfg43+q5rmjB4xQyX/BaQyF5K0hZyG+42/pH1
   EMwl8qN617FTxo3hvQUi/cBahlhQ8EVYsGnHDVxLCisbq5iZvp7+XtmMy1Q417gT
   EQRo8feJh31elGWlccVR2pZgIm1PQ69dzzseHnnKkGhifik0bDGo5/IH2EgI1KFn
   SG399RMU/qRzOPLVP3i+zSJmhMqG8cnZaUwE5V4P21vQSclhhd2Hv/C4SVKNqA2i
   +oZbHj2vAkuzTTL075AoANebEjPGqwsKZi5mWUE5Pa931JeiXxWZlEB7rkgQ1PAB
   fsDBhYLt4MxCWAhifLMA6uQ4BhXu2RuXOqNfSbqa8jVF6DB6cD8eAHGpPKfJOl30
   LtZnq+n4SfeNbZjD2FQWZR4CrA==
   =lHfs
   -----END PGP PUBLIC KEY BLOCK-----
   ```

1. 署名者のパブリックキーをキーリングにインポートします。

   ```
   $ gpg --import signer-public-key.txt
   							
   gpg: key 4094ABB1BEDFDAB4: public key "AWS SAM CLI Team <aws-sam-cli-signer@amazon.com>" imported
   gpg: Total number processed: 1
   gpg:               imported: 1  (RSA: 1)
   gpg: no ultimately trusted keys found
   ```

   出力のキー値を書き留めておきます。例えば、*`4094ABB1BEDFDAB4`*。

1. キー値を使用して、署名者のパブリックキーフィンガープリントを取得して確認します。

   ```
   $ gpg --fingerprint 4094ABB1BEDFDAB4
   							
   pub   rsa4096 2025-05-19 [SCEA] [expires: 2027-05-19]
         EF46 3E86 CA31 933B B688  CC1A 4094 ABB1 BEDF DAB4
   uid           [ unknown] AWS SAM CLI Team <aws-sam-cli-signer@amazon.com>
   ```

   フィンガープリントは、次のものと一致する必要があります。

   ```
   EF46 3E86 CA31 933B B688  CC1A 4094 ABB1 BEDF DAB4
   ```

   フィンガープリント文字列が一致しない場合は、 AWS SAM CLI インストーラを使用しないでください。*aws-sam-cli GitHub リポジトリ*で[問題を作成して](https://github.com/aws/aws-sam-cli/issues/new?assignees=&labels=stage%2Fneeds-triage&projects=&template=Bug_report.md&title=Bug%3A+TITLE)、 AWS SAM チームにエスカレーションします。

1. 署名者のパブリックキーの署名を確認してください。

   ```
   $ gpg --check-sigs 4094ABB1BEDFDAB4
   						  
   pub   rsa4096 2025-05-19 [SCEA] [expires: 2027-05-19]
         EF463E86CA31933BB688CC1A4094ABB1BEDFDAB4
   uid           [ unknown] AWS SAM CLI Team <aws-sam-cli-signer@amazon.com>
   sig!3        4094ABB1BEDFDAB4 2025-05-19  [self-signature]
   sig!         42FD5F7A73AD885A 2025-05-19 AWS SAM CLI Primary <aws-sam-cli-primary@amazon.com>
   ```

   `1 signature not checked due to a missing key` が表示された場合は、前の手順を繰り返して、プライマリパブリックキーと署名者パブリックキーをキーリングにインポートします。

   プライマリパブリックキーと署名者パブリックキーの両方のキー値が一覧表示されます。

署名者パブリックキーの整合性が確認できたので、署名者パブリックキーを使用して AWS SAM CLI パッケージインストーラを確認できます。

**AWS SAM CLI パッケージインストーラの整合性を確認するには**

1. ** AWS SAM CLI パッケージ署名ファイルを取得する** — 次のコマンドを使用して AWS SAM CLI パッケージインストーラの署名ファイルをダウンロードします。

   ```
   $ wget https://github.com/aws/aws-sam-cli/releases/latest/download/aws-sam-cli-linux-arm64.zip.sig
   ```

1. **署名ファイルを確認** – ダウンロードした `.sig` と `.zip` の両方のファイルをパラメータとして `gpg` コマンドに渡します。以下に例を示します。

   ```
   $ gpg --verify aws-sam-cli-linux-arm64.zip.sig aws-sam-cli-linux-arm64.zip
   ```

   出力は次の例に類似したものになります:

   ```
   gpg: Signature made Mon 19 May 2025 01:21:57 AM UTC using RSA key ID 4094ABB1BEDFDAB4
   gpg: Good signature from "AWS SAM CLI Team <aws-sam-cli-signer@amazon.com>"
   gpg: WARNING: This key is not certified with a trusted signature!
   gpg:          There is no indication that the signature belongs to the owner.
   Primary key fingerprint: EF46 3E86 CA31 933B B688  CC1A 4094 ABB1 BEDF DAB4
   ```
   + この `WARNING: This key is not certified with a trusted signature!` メッセージは無視できます。これは、個人用の PGP キー (持っている場合) と AWS SAM CLI PGP キーの間に信頼チェーンがないために発生します。詳細については、「[信用の輪 (Web of Trust)](https://en.wikipedia.org/wiki/Web_of_trust)」を参照してください。
   + 出力に「`BAD signature`」という句が含まれる場合、手順が正しいことを確認してください。この応答が続く場合は、*aws-sam-cli GitHub リポジトリ*に問題[を作成して](https://github.com/aws/aws-sam-cli/issues/new?assignees=&labels=stage%2Fneeds-triage&projects=&template=Bug_report.md&title=Bug%3A+TITLE) AWS SAM チームにエスカレーションし、ダウンロードしたファイルを使用しないようにしてください。

   この `Good signature from "AWS SAM CLI Team <aws-sam-cli-signer@amazon.com>"` メッセージは、署名が検証され、インストールを続行できることを意味します。

#### x86\$164 - コマンドラインインストーラ
<a name="reference-sam-cli-install-verify-signature-linux-x8664"></a>

AWS SAM は [GnuPG](https://www.gnupg.org/) を使用して .zip インストーラに署名します AWS SAM CLI。以下の手順で確認が実行されます。

1. プライマリパブリックキーを使用して、署名者のパブリックキーを確認します。

1. 署名者パブリックキーを使用して AWS SAM CLI パッケージインストーラを確認します。

**署名者のパブリックキーの整合性を確認するには**

1. プライマリパブリックキーをコピーし、ローカルマシンに `.txt` ファイルとして保存します。例えば、*`primary-public-key.txt`*。

   ```
   -----BEGIN PGP PUBLIC KEY BLOCK-----
   Version: GnuPG v2.0.22 (GNU/Linux)
   
   mQINBGRuSzMBEADsqiwOy78w7F4+sshaMFRIwRGNRm94p5Qey2KMZBxekFtoryVD
   D9jEOnvupx4tvhfBHz5EcUHCEOdl4MTqdBy6vVAshozgxVb9RE8JpECn5lw7XC69
   4Y7Gy1TKKQMEWtDXElkGxIFdUWvWjSnPlzfnoXwQYGeE93CUS3h5dImP22Yk1Ct6
   eGGhlcbg1X4L8EpFMj7GvcsU8f7ziVI/PyC1Xwy39Q8/I67ip5eU5ddxO/xHqrbL
   YC7+8pJPbRMej2twT2LrcpWWYAbprMtRoa6WfE0/thoo3xhHpIMHdPfAA86ZNGIN
   kRLjGUg7jnPTRW4Oin3pCc8nT4Tfc1QERkHm641gTC/jUvpmQsM6h/FUVP2i5iE/
   JHpJcMuL2Mg6zDo3x+3gTCf+Wqz3rZzxB+wQT3yryZs6efcQy7nROiRxYBxCSXX0
   2cNYzsYLb/bYaW8yqWIHD5IqKhw269gp2E5Khs60zgS3CorMb5/xHgXjUCVgcu8a
   a8ncdf9fjl3WS5p0ohetPbO2ZjWv+MaqrZOmUIgKbA4RpWZ/fU97P5BW9ylwmIDB
   sWy0cMxg8MlvSdLytPieogaM0qMg3u5qXRGBr6Wmevkty0qgnmpGGc5zPiUbtOE8
   CnFFqyxBpj5IOnG0KZGVihvn+iRxrv6GO7WWO92+Dc6m94U0EEiBR7QiOwARAQAB
   tDRBV1MgU0FNIENMSSBQcmltYXJ5IDxhd3Mtc2FtLWNsaS1wcmltYXJ5QGFtYXpv
   bi5jb20+iQI/BBMBCQApBQJkbkszAhsvBQkHhM4ABwsJCAcDAgEGFQgCCQoLBBYC
   AwECHgECF4AACgkQQv1fenOtiFqTuhAAzi5+ju5UVOWqHKevOJSO08T4QB8HcqAE
   SVO3mY6/j29knkcL8ubZP/DbpV7QpHPI2PB5qSXsiDTP3IYPbeY78zHSDjljaIK3
   njJLMScFeGPyfPpwMsuY4nzrRIgAtXShPA8N/k4ZJcafnpNqKj7QnPxiC1KaIQWm
   pOtvb8msUF3/s0UTa5Ys/lNRhVC0eGg32ogXGdojZA2kHZWdm9udLo4CDrDcrQT7
   NtDcJASapXSQL63XfAS3snEc4e1941YxcjfYZ33rel8K9juyDZfi1slWR/L3AviI
   QFIaqSHzyOtP1oinUkoVwL8ThevKD3Ag9CZflZLzNCV7yqlF8RlhEZ4zcE/3s9El
   WzCFsozb5HfE1AZonmrDh3SyOEIBMcS6vG5dWnvJrAuSYv2rX38++K5Pr/MIAfOX
   DOI1rtA+XDsHNv9lSwSy0lt+iClawZANO9IXCiN1rOYcVQlwzDFwCNWDgkwdOqS0
   gOA2f8NF9lE5nBbeEuYquoOl1Vy8+ICbgOFs9LoWZlnVh7/RyY6ssowiU9vGUnHI
   L8f9jqRspIz/Fm3JD86ntZxLVGkeZUz62FqErdohYfkFIVcv7GONTEyrz5HLlnpv
   FJ0MR0HjrMrZrnOVZnwBKhpbLocTsH+3t5It4ReYEX0f1DIOL/KRwPvjMvBVkXY5
   hblRVDQoOWc=
   =d9oG
   -----END PGP PUBLIC KEY BLOCK-----
   ```

1. プライマリパブリックキーをキーリングにインポートします。

   ```
   $ gpg --import primary-public-key.txt
   							
   gpg: directory `/home/.../.gnupg' created
   gpg: new configuration file `/home/.../.gnupg/gpg.conf' created
   gpg: WARNING: options in `/home/.../.gnupg/gpg.conf' are not yet active during this run
   gpg: keyring `/home/.../.gnupg/secring.gpg' created
   gpg: keyring `/home/.../.gnupg/pubring.gpg' created
   gpg: /home/.../.gnupg/trustdb.gpg: trustdb created
   gpg: key 73AD885A: public key "AWS SAM CLI Primary <aws-sam-cli-primary@amazon.com>" imported
   gpg: Total number processed: 1
   gpg:               imported: 1  (RSA: 1)
   ```

1. 署名者のパブリックキーをコピーし、ローカルマシンに `.txt` ファイルとして保存します。例えば、*`signer-public-key.txt`*。

   ```
   -----BEGIN PGP PUBLIC KEY BLOCK-----
   Version: GnuPG v2.0.22 (GNU/Linux)
   
   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
   LtZnq+n4SfeNbZjD2FQWZR4CrA==
   =lHfs
   -----END PGP PUBLIC KEY BLOCK-----
   ```

1. 署名者のパブリックキーをキーリングにインポートします。

   ```
   $ gpg --import signer-public-key.txt
   							
   gpg: key 4094ABB1BEDFDAB4: public key "AWS SAM CLI Team <aws-sam-cli-signer@amazon.com>" imported
   gpg: Total number processed: 1
   gpg:               imported: 1  (RSA: 1)
   gpg: no ultimately trusted keys found
   ```

   出力のキー値を書き留めておきます。例えば、*`4094ABB1BEDFDAB4`*。

1. キー値を使用して、署名者のパブリックキーフィンガープリントを取得して確認します。

   ```
   $ gpg --fingerprint 4094ABB1BEDFDAB4
   						  
   pub   rsa4096 2025-05-19 [SCEA] [expires: 2027-05-19]
         EF46 3E86 CA31 933B B688  CC1A 4094 ABB1 BEDF DAB4
   uid           [ unknown] AWS SAM CLI Team <aws-sam-cli-signer@amazon.com>
   ```

   フィンガープリントは、次のものと一致する必要があります。

   ```
   EF46 3E86 CA31 933B B688  CC1A 4094 ABB1 BEDF DAB4
   ```

   フィンガープリント文字列が一致しない場合は、 AWS SAM CLI インストーラを使用しないでください。*aws-sam-cli GitHub リポジトリ*で[問題を作成して](https://github.com/aws/aws-sam-cli/issues/new?assignees=&labels=stage%2Fneeds-triage&projects=&template=Bug_report.md&title=Bug%3A+TITLE)、 AWS SAM チームにエスカレーションします。

1. 署名者のパブリックキーの署名を確認してください。

   ```
   $ gpg --check-sigs 4094ABB1BEDFDAB4
   							
   pub   rsa4096 2025-05-19 [SCEA] [expires: 2027-05-19]
         EF463E86CA31933BB688CC1A4094ABB1BEDFDAB4
   uid           [ unknown] AWS SAM CLI Team <aws-sam-cli-signer@amazon.com>
   sig!3        4094ABB1BEDFDAB4 2025-05-19  [self-signature]
   sig!         42FD5F7A73AD885A 2025-05-19 AWS SAM CLI Primary <aws-sam-cli-primary@amazon.com>
   ```

   `1 signature not checked due to a missing key` が表示された場合は、前の手順を繰り返して、プライマリパブリックキーと署名者パブリックキーをキーリングにインポートします。

   プライマリパブリックキーと署名者パブリックキーの両方のキー値が一覧表示されます。

署名者パブリックキーの整合性が確認できたので、署名者パブリックキーを使用して AWS SAM CLI パッケージインストーラを確認できます。

**AWS SAM CLI パッケージインストーラの整合性を確認するには**

1. ** AWS SAM CLI パッケージ署名ファイルを取得する** — 次のコマンドを使用して AWS SAM CLI パッケージインストーラの署名ファイルをダウンロードします。

   ```
   $ wget https://github.com/aws/aws-sam-cli/releases/latest/download/aws-sam-cli-linux-x86_64.zip.sig
   ```

1. **署名ファイルを確認** – ダウンロードした `.sig` と `.zip` の両方のファイルをパラメータとして `gpg` コマンドに渡します。以下に例を示します。

   ```
   $ gpg --verify aws-sam-cli-linux-x86_64.zip.sig aws-sam-cli-linux-x86_64.zip
   ```

   出力は次の例に類似したものになります:

   ```
   gpg: Signature made Mon 19 May 2025 01:21:57 AM UTC using RSA key ID 4094ABB1BEDFDAB4
   gpg: Good signature from "AWS SAM CLI Team <aws-sam-cli-signer@amazon.com>"
   gpg: WARNING: This key is not certified with a trusted signature!
   gpg:          There is no indication that the signature belongs to the owner.
   Primary key fingerprint: EF46 3E86 CA31 933B B688  CC1A 4094 ABB1 BEDF DAB4
   ```
   + この `WARNING: This key is not certified with a trusted signature!` メッセージは無視できます。これは、個人用の PGP キー (持っている場合) と AWS SAM CLI PGP キーの間に信頼チェーンがないために発生します。詳細については、「[信用の輪 (Web of Trust)](https://en.wikipedia.org/wiki/Web_of_trust)」を参照してください。
   + 出力に「`BAD signature`」という句が含まれる場合、手順が正しいことを確認してください。この応答が続く場合は、*aws-sam-cli GitHub リポジトリ*に問題[を作成して](https://github.com/aws/aws-sam-cli/issues/new?assignees=&labels=stage%2Fneeds-triage&projects=&template=Bug_report.md&title=Bug%3A+TITLE) AWS SAM チームにエスカレーションし、ダウンロードしたファイルを使用しないようにしてください。

   この `Good signature from "AWS SAM CLI Team <aws-sam-cli-signer@amazon.com>"` メッセージは、署名が検証され、インストールを続行できることを意味します。

### macOS
<a name="reference-sam-cli-install-verify-signature-macos"></a>

#### GUI とコマンドラインインストーラー
<a name="reference-sam-cli-install-verify-signature-macos-installer"></a>

 AWS SAM CLI パッケージインストーラの署名ファイルの整合性は、`pkgutil` ツールを使用するか手動で確認できます。

**pkgutil 使用して確認するには**

1. ローカルマシンに次のコマンドを実行します。

   ```
   $ pkgutil --check-signature /path/to/aws-sam-cli-installer.pkg
   ```

   以下に例を示します。

   ```
   $ pkgutil --check-signature /Users/user/Downloads/aws-sam-cli-macos-arm64.pkg
   ```

1. 出力から **Developer ID Installer: AMZN Mobile LLC** の **SHA256 fingerprint** を見つけます。以下に例を示します。

   ```
   Package "aws-sam-cli-macos-arm64.pkg":
      Status: signed by a developer certificate issued by Apple for distribution
      Notarization: trusted by the Apple notary service
      Signed with a trusted timestamp on: 2026-01-28 07:39:16 +0000
      Certificate Chain:
       1. Developer ID Installer: AMZN Mobile LLC (94KV3E626L)
          Expires: 2030-09-26 00:18:06 +0000
          SHA256 Fingerprint:
              5C 45 BE 63 FD 52 10 07 2D 66 56 77 5C A9 FF 25 91 6D 3F 01 F7 0E
              9A 8A 05 F6 2D 62 B2 88 8D A9
          ------------------------------------------------------------------------
       2. Developer ID Certification Authority
          Expires: 2031-09-17 00:00:00 +0000
          SHA256 Fingerprint:
              F1 6C D3 C5 4C 7F 83 CE A4 BF 1A 3E 6A 08 19 C8 AA A8 E4 A1 52 8F
              D1 44 71 5F 35 06 43 D2 DF 3A
          ------------------------------------------------------------------------
       3. Apple Root CA
          Expires: 2035-02-09 21:40:36 +0000
          SHA256 Fingerprint:
              B0 B1 73 0E CB C7 FF 45 05 14 2C 49 F1 29 5E 6E DA 6B CA ED 7E 2C
              68 C5 BE 91 B5 A1 10 01 F0 24
   ```

1. **Developer ID Installer: AMZN Mobile LLC SHA256 fingerprint** は次の値と一致する必要があります。

   ```
   5C 45 BE 63 FD 52 10 07 2D 66 56 77 5C A9 FF 25 91 6D 3F 01 F7 0E 9A 8A 05 F6 2D 62 B2 88 8D A9
   ```

   フィンガープリント文字列が一致しない場合は、 AWS SAM CLI インストーラを使用しないでください。*aws-sam-cli GitHub リポジトリ*で[問題を作成して](https://github.com/aws/aws-sam-cli/issues/new?assignees=&labels=stage%2Fneeds-triage&projects=&template=Bug_report.md&title=Bug%3A+TITLE)、 AWS SAM チームにエスカレーションします。フィンガープリントの文字列が一致する場合は、パッケージインストーラーを使用して先に進むことができます。

**パッケージインストーラを手動で確認するには**
+ *Apple サポートウェブサイト*で、「[手動でダウンロードした Apple のソフトウェアアップデートの信頼性を検証する方法](https://support.apple.com/en-us/HT202369)」を参照してください。

### Windows
<a name="reference-sam-cli-install-verify-signature-windows"></a>

 AWS SAM CLI インストーラは、WindowsオペレーティングシステムのMSIファイルとしてパッケージ化されます。

**インストーラが整合性を確認するには**

1. インストーラーを右クリックして、**[プロパティ]** ウィンドウを開きます。

1. **デジタル署名**タブを選択します。

1. **[署名リスト]** で **[Amazon Web Services]** を選択し、**[詳細]** を選択します。

1. すでに選択していない場合は **一般**タブにアクセスし、**証明書の表示** を選びます。

1. **詳細** タブを選択し、まだの場合は **すべて**を**表示** のドロップダウンリストで選択します。

1. **拇印** フィールドが表示されるまでスクロールして、**拇印** を選択します。下のウィンドウにサムプリントの値全体が表示されます。

1. サムプリントの値を次の値と一致させます。値が一致したら、インストールを続行します。そうでない場合は、*aws-sam-cli GitHub リポジトリ*で[問題を作成して](https://github.com/aws/aws-sam-cli/issues/new?assignees=&labels=stage%2Fneeds-triage&projects=&template=Bug_report.md&title=Bug%3A+TITLE) AWS SAM チームにエスカレーションします。

   ```
   cd62479397f09d72a04c7399a254b0a91da53d6c
   ```

## ハッシュ値を確認
<a name="reference-sam-cli-install-verify-hash"></a>

### Linux
<a name="reference-sam-cli-install-verify-hash-linux"></a>

#### x86\$164 - コマンドラインインストーラ
<a name="reference-sam-cli-install-verify-hash-linux-x8664"></a>

以下のコマンドを使用してハッシュ値を生成することによって、ダウンロードしたインストーラファイルの整合性と信頼性を検証します。

```
$ sha256sum aws-sam-cli-linux-x86_64.zip
```

出力は以下のようになる必要があります。

```
<64-character SHA256 hash value> aws-sam-cli-linux-x86_64.zip
```

SHA-256 の 64 桁のハッシュ値を、GitHub の「[AWS SAM CLI release notes](https://github.com/aws/aws-sam-cli/releases/latest)」にある目的の AWS SAM CLI バージョンの値と比較します。

### macOS
<a name="reference-sam-cli-install-verify-hash-macos"></a>

#### GUI とコマンドラインインストーラー
<a name="reference-sam-cli-install-verify-hash-macos-installer"></a>

 以下のコマンドを使用してハッシュ値を生成することによって、ダウンロードしたインストーラの整合性と信頼性を検証します。

```
$ shasum -a 256 path-to-pkg-installer/name-of-pkg-installer

# Examples
$ shasum -a 256 ~/Downloads/aws-sam-cli-macos-arm64.pkg
$ shasum -a 256 ~/Downloads/aws-sam-cli-macos-x86_64.pkg
```

 64-character SHA-256 のハッシュ値を、「[AWS SAM CLI リリースノート」](https://github.com/aws/aws-sam-cli/releases/latest)の GitHub リポジトリ内の対応する値と比較します。

# チュートリアル: を使用して Hello World アプリケーションをデプロイする AWS SAM
<a name="serverless-getting-started-hello-world"></a>

このチュートリアルでは、 AWS Serverless Application Model コマンドラインインターフェイス (AWS SAM CLI) を使用して以下を完了します。
+ サンプルの **Hello World** アプリケーションを初期化、構築、デプロイします。
+ ローカルで変更を行い、 に同期します AWS CloudFormation。
+ 開発ホストでローカルテストを実行します。
+  AWS クラウドからサンプルアプリケーションを削除します。

サンプルの **Hello World** アプリケーションは、基本的な API バックエンドを実装しています。これは次のリソースで構成されます。
+ **Amazon API Gateway** – 関数を呼び出すために使用する API エンドポイント。
+ **AWS Lambda** – HTTP API GET リクエストを処理し、`hello world` メッセージを返す関数。
+ **AWS Identity and Access Management (IAM) ロール** – サービスが安全にやり取りするためのアクセス許可をプロビジョニングします。

以下の図は、このアプリケーションのコンポーネントを示しています。

![\[API Gateway エンドポイントに GET リクエストを送信するときに呼び出される Lambda 関数の図。\]](http://docs.aws.amazon.com/ja_jp/serverless-application-model/latest/developerguide/images/gs-01.png)


**Topics**
+ [

## 前提条件
](#serverless-getting-started-hello-world-prerequisites)
+ [

## ステップ 1: サンプルの Hello World アプリケーションを初期化する
](#serverless-getting-started-hello-world-init)
+ [

## ステップ 2: アプリケーションを構築する
](#serverless-getting-started-hello-world-build)
+ [

## ステップ 3: アプリケーションを にデプロイする AWS クラウド
](#serverless-getting-started-hello-world-deploy)
+ [

## ステップ 4: アプリケーションを実行する
](#serverless-getting-started-hello-world-run)
+ [

## ステップ 5: で 関数を操作する AWS クラウド
](#serverless-getting-started-hello-world-remote-invoke)
+ [

## ステップ 6: アプリケーションを変更して に同期する AWS クラウド
](#serverless-getting-started-hello-world-sync)
+ [

## ステップ 7: (オプション) アプリケーションをローカルでテストする
](#serverless-getting-started-hello-world-test)
+ [

## ステップ 8: からアプリケーションを削除する AWS クラウド
](#serverless-getting-started-hello-world-delete)
+ [

## トラブルシューティング
](#serverless-getting-started-hello-world-troubleshoot)
+ [

## 詳細情報
](#serverless-getting-started-hello-world-learn)

## 前提条件
<a name="serverless-getting-started-hello-world-prerequisites"></a>

次を完了していることを確認します。
+ [AWS SAM 前提条件](prerequisites.md)
+ [AWS SAM CLI のインストール](install-sam-cli.md)

**注記**  
サーバーレス開発に Visual Studio Code を使用する場合は、「 AWS Toolkit for VS Code ユーザーガイド」の[「サーバーレスアプリケーションの作成](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/sam-get-started.html#serverless-apps-create)step-by-step 」を参照してください。

## ステップ 1: サンプルの Hello World アプリケーションを初期化する
<a name="serverless-getting-started-hello-world-init"></a>

このステップでは、 AWS SAM CLI を使用して、ローカルマシン上にサンプルの **Hello World** アプリケーションプロジェクトを作成します。

**サンプルの Hello World アプリケーションを初期化するには**

1. コマンドラインで、選択した開始ディレクトリから次を実行します。

   ```
   $ sam init
   ```
**注記**  
このコマンドは、サーバーレスアプリケーションを初期化し、プロジェクトディレクトリを作成します。ディレクトリには、 AWS SAM テンプレートである ファイルを含む複数の`template.yaml`ファイルとフォルダが含まれています。  
インストールされた Python バージョンは、`template.yaml` で指定された `Runtime` プロパティと一致する必要があります。本稼働ワークロードでは、 AWS 環境で完全にサポートされている Python 3.12 以前のバージョンを使用することをお勧めします。Python バージョンが一致しない場合、ビルドエラーが発生します。  
バージョン互換性の問題を解決するには、以下を実行します。  
 初期化中に互換性のある[ランタイム](sam-cli-command-reference-sam-init.md#sam-cli-command-reference-sam-init-options-runtime)を指定: `sam init --runtime python3.9`
初期化後に `template.yaml` で `Runtime` プロパティを変更

1.  AWS SAM CLI は、新しいアプリケーションの初期化を通じてユーザーをガイドします。次を設定します。

   1. **[AWS クイックスタートテンプレート]** を選択して、開始テンプレートを選択します。

   1. **[Hello World Example]** テンプレートを選択してダウンロードします。

   1. Python ランタイムと `zip` パッケージタイプを使用します。

   1. このチュートリアルでは、 AWS X-Ray トレースをオプトアウトします。詳細については、「 *AWS X-Ray デベロッパーガイド*」の[「What is AWS X-Ray?](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray.html)」を参照してください。

   1. このチュートリアルでは、Amazon CloudWatch Application Insights によるモニタリングをオプトアウトします。詳細については、「*Amazon CloudWatch ユーザーガイド*」の「[Amazon CloudWatch Application Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch-application-insights.html)」を参照してください。

   1. このチュートリアルでは、Lambda 関数で JSON 形式の構造化ログ記録の設定をオプトアウトします。

   1. アプリケーションに **sam-app** という名前を付けます。

    AWS SAM CLI インタラクティブフローを使用するには:
   + 括弧 (`[ ]`) はデフォルト値を示します。回答を空白のままにすると、デフォルト値が選択されます。
   + **はい**の場合は **`y`** と入力し、**いいえ**の場合は **`n`** と入力します。

   `sam init` インタラクティブフローの例を次に示します。

   ```
   $ sam init
   ...
   Which template source would you like to use?
       1 - AWS Quick Start Templates
       2 - Custom Template Location
   Choice: 1
   
   Choose an AWS Quick Start application template
       1 - Hello World Example
       2 - Data processing
       3 - Hello World Example with Powertools for AWS Lambda
       4 - Multi-step workflow
       5 - Scheduled task
       6 - Standalone function
       7 - Serverless API
       8 - Infrastructure event management 
       9 - Lambda Response Streaming
      10 - GraphQLApi Hello World Example
      11 - Full Stack
      12 - Lambda EFS example
      13 - Serverless Connector Hello World Example
      14 - Multi-step workflow with Connectors
      15 - DynamoDB Example
      16 - Machine Learning
   Template: 1
   
   Use the most popular runtime and package type? (Python and zip) [y/N]: y
   
   Would you like to enable X-Ray tracing on the function(s) in your application?  [y/N]: ENTER
   
   Would you like to enable monitoring using CloudWatch Application Insights?
   For more info, please view https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch-application-insights.html [y/N]: ENTER
   					
   Would you like to set Structured Logging in JSON format on your Lambda functions?  [y/N]: ENTER
   
   Project name [sam-app]: ENTER
   ```

1. は開始テンプレート AWS SAM CLIをダウンロードし、ローカルマシンにアプリケーションプロジェクトディレクトリ構造を作成します。次は AWS SAM CLI の出力例です。

   ```
   Cloning from https://github.com/aws/aws-sam-cli-app-templates (process may take a moment)
   
       -----------------------
       Generating application:
       -----------------------
       Name: sam-app
       Runtime: python3.9
       Architectures: x86_64
       Dependency Manager: pip
       Application Template: hello-world
       Output Directory: .
       Configuration file: sam-app/samconfig.toml
   
       Next steps can be found in the README file at sam-app/README.md
   
   
   Commands you can use next
   =========================
   [*] Create pipeline: cd sam-app && sam pipeline init --bootstrap
   [*] Validate SAM template: cd sam-app && sam validate
   [*] Test Function in the Cloud: cd sam-app && sam sync --stack-name {stack-name} --watch
   ```

1. コマンドラインから、新しく作成した `sam-app` ディレクトリに移動します。 AWS SAM CLI が作成したものの例を次に示します。
**注記**  
`tree` コマンドが自動でインストールされていない場合は、`brew install tree` コマンドを実行してください。

   ```
   $ cd sam-app
   
   $ tree
   
   ├── README.md
   ├── __init__.py
   ├── events
   │   └── event.json
   ├── hello_world
   │   ├── __init__.py
   │   ├── app.py
   │   └── requirements.txt
   ├── samconfig.toml
   ├── template.yaml
   └── tests
       ├── __init__.py
       ├── integration
       │   ├── __init__.py
       │   └── test_api_gateway.py
       ├── requirements.txt
       └── unit
           ├── __init__.py
           └── test_handler.py
           
   6 directories, 14 files
   ```

   強調すべきいくつかの重要なファイル:
   + `hello_world/app.py` – Lambda 関数コードが含まれます。
   + `hello_world/requirements.txt` – Lambda 関数に必要な Python 依存関係が含まれます。
   + `samconfig.toml` – で使用されるデフォルトのパラメータを保存するアプリケーションの設定ファイル AWS SAM CLI。
   + `template.yaml` – アプリケーションインフラストラクチャコードを含む AWS SAM テンプレート。

これで、サーバーレスアプリケーションがローカルマシン上に完成しました。

## ステップ 2: アプリケーションを構築する
<a name="serverless-getting-started-hello-world-build"></a>

このステップでは、 AWS SAM CLI を使用してアプリケーションを構築し、デプロイの準備をします。構築すると、 AWS SAM CLI は `.aws-sam` ディレクトリを作成し、そこに関数の依存関係、プロジェクトコード、およびプロジェクトファイルを整理します。

**アプリケーションを構築するには**
+ コマンドラインで、`sam-app` プロジェクトディレクトリから次を実行します。

  ```
  $ sam build
  ```
**注記**  
 ローカルマシンに Python がない場合は、代わりに **sam build --use-container ** コマンドを使用します。 AWS SAM CLI は、関数のランタイムと依存関係を含む Docker コンテナを作成します。このコマンドを使用するには、ローカルマシン上に Docker が必要です。Docker をインストールするには、「[Docker のインストール](install-docker.md)」を参照してください。

  次は AWS SAM CLI の出力例です。

  ```
  $ sam build
  Starting Build use cache
  Manifest file is changed (new hash: 3298f1304...d4d421) or dependency folder (.aws-sam/deps/4d3dfad6-a267-47a6-a6cd-e07d6fae318c) is missing for (HelloWorldFunction), downloading dependencies and copying/building source
  Building codeuri: /Users/.../Demo/sam-tutorial1/sam-app/hello_world runtime: python3.9 metadata: {} architecture: x86_64 functions: HelloWorldFunction
  Running PythonPipBuilder:CleanUp
  Running PythonPipBuilder:ResolveDependencies
  Running PythonPipBuilder:CopySource
  Running PythonPipBuilder:CopySource
  
  Build Succeeded
  
  Built Artifacts  : .aws-sam/build
  Built Template   : .aws-sam/build/template.yaml
  
  Commands you can use next
  =========================
  [*] Validate SAM template: sam validate
  [*] Invoke Function: sam local invoke
  [*] Test Function in the Cloud: sam sync --stack-name {{stack-name}} --watch
  [*] Deploy: sam deploy --guided
  ```

   AWS SAM CLI によって作成される `.aws-sam` ディレクトリの短い例を次に示します。

  ```
  .aws-sam
  ├── build
  │   ├── HelloWorldFunction
  │   │   ├── __init__.py
  │   │   ├── app.py
  │   │   └── requirements.txt
  │   └── template.yaml
  └── build.toml
  ```

強調すべきいくつかの重要なファイル:
+ `build/HelloWorldFunction` – Lambda 関数のコードと依存関係が含まれます。 AWS SAM CLI は、アプリケーション内の関数ごとにディレクトリを作成します。
+ `build/template.yaml` – デプロイ CloudFormation 時に によって参照される AWS SAM テンプレートのコピーが含まれます。
+ `build.toml` – アプリケーションの構築およびデプロイ時に AWS SAM CLI によって参照されるデフォルトのパラメータ値を保存する設定ファイル。

これで、アプリケーションを AWS クラウドにデプロイする準備が整いました。

## ステップ 3: アプリケーションを にデプロイする AWS クラウド
<a name="serverless-getting-started-hello-world-deploy"></a>

**注記**  
このステップでは、 AWS 認証情報の設定が必要です。詳細については、「[AWS SAM 前提条件](prerequisites.md)」の [ステップ 5: AWS CLI を使用して AWS 認証情報を設定する](prerequisites.md#prerequisites-configure-credentials) を参照してください。

このステップでは、 AWS SAM CLI を使用してアプリケーションを AWS クラウドにデプロイします。 AWS SAM CLI は以下を実行します。
+ デプロイのためのアプリケーション設定を通じてユーザーをガイドします。
+ アプリケーションファイルを Amazon Simple Storage Service (Amazon S3) にアップロードします。
+  AWS SAM テンプレートを CloudFormation テンプレートに変換します。次に、 テンプレートを CloudFormation サービスにアップロードしてリソースをプロビジョニングします AWS 。

**アプリケーションをデプロイするには**

1. コマンドラインで、`sam-app` プロジェクトディレクトリから次を実行します。

   ```
   $ sam deploy --guided
   ```

1.  AWS SAM CLI のインタラクティブフローに従って、アプリケーション設定を構成します。次を設定します。

   1. **CloudFormation スタック名** – スタックは、単一のユニットとして管理できる AWS リソースのコレクションです。詳細については、「*AWS CloudFormation ユーザーガイド*」の「[スタックの使用](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacks.html)」を参照してください。

   1.  CloudFormation スタックをデプロイ**AWS リージョン**する 。詳細については、「*AWS CloudFormation ユーザーガイド」の「[CloudFormation endpoints](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-endpoints.html)*」を参照してください。

   1. このチュートリアルでは、**デプロイ前の変更の確認**をオプトアウトします。

   1. **IAM ロールの作成**を許可する – これにより、API Gateway リソースと Lambda 関数リソースがやり取りするために必要な IAM ロール AWS SAM を作成できます。

   1. このチュートリアルでは、**ロールバックの無効化**をオプトアウトします。

   1. **認可が定義されていない HelloWorldFunction** を許可 – このメッセージは、認可なしで API Gateway エンドポイントにパブリックにアクセスできるように設定されているために表示されます。これは Hello World アプリケーション用に意図された設定であるため、 AWS SAM CLI の続行を許可します。認可の設定の詳細については、「[AWS SAM テンプレートを使用して API アクセスを制御する](serverless-controlling-access-to-apis.md)」を参照してください。

   1. **引数を設定ファイルに保存** – これにより、アプリケーションの `samconfig.toml` ファイルがデプロイ設定で更新されます。

   1. デフォルトの**設定ファイル名**を選択します。

   1. デフォルトの**設定環境**を選択します。

   `sam deploy --guided` インタラクティブフローの出力例を次に示します。

   ```
   $ sam deploy --guided
   
   Configuring SAM deploy
   ======================
   
       Looking for config file [samconfig.toml] :  Found
       Reading default arguments  :  Success
   
       Setting default arguments for 'sam deploy'
       =========================================
       Stack Name [sam-app]: ENTER
       AWS Region [us-west-2]: ENTER
       #Shows you resources changes to be deployed and require a 'Y' to initiate deploy
       Confirm changes before deploy [Y/n]: n
       #SAM needs permission to be able to create roles to connect to the resources in your template
       Allow SAM CLI IAM role creation [Y/n]: ENTER
       #Preserves the state of previously provisioned resources when an operation fails
       Disable rollback [y/N]: ENTER
       HelloWorldFunction may not have authorization defined, Is this okay? [y/N]: y
       Save arguments to configuration file [Y/n]: ENTER
       SAM configuration file [samconfig.toml]: ENTER
       SAM configuration environment [default]: ENTER
   ```

1. は、以下を実行してアプリケーションを AWS SAM CLIデプロイします。
   +  AWS SAM CLI は Amazon S3 バケットを作成し、`.aws-sam` ディレクトリをアップロードします。
   + は AWS SAM テンプレートを AWS SAM CLIに変換 CloudFormation し、 CloudFormation サービスにアップロードします。
   + CloudFormation は リソースをプロビジョニングします。

   デプロイ中、 AWS SAM CLI は進行状況を表示します。以下は、その出力例です。

   ```
   Looking for resources needed for deployment:
   
       Managed S3 bucket: aws-sam-cli-managed-default-samclisam-s3-demo-bucket-1a4x26zbcdkqr
       A different default S3 bucket can be set in samconfig.toml
   
       Parameter "stack_name=sam-app" in [default.deploy.parameters] is defined as a global parameter [default.global.parameters].
       This parameter will be only saved under [default.global.parameters] in /Users/.../Demo/sam-tutorial1/sam-app/samconfig.toml.
   
       Saved arguments to config file
       Running 'sam deploy' for future deployments will use the parameters saved above.
       The above parameters can be changed by modifying samconfig.toml
       Learn more about samconfig.toml syntax at
       https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-config.html
   
   File with same data already exists at sam-app/da3c598813f1c2151579b73ad788cac8, skipping upload
   
       Deploying with following values
       ===============================
       Stack name                   : sam-app
       Region                       : us-west-2
       Confirm changeset            : False
       Disable rollback             : False
       Deployment s3 bucket         : aws-sam-cli-managed-default-samclisam-s3-demo-bucket-1a4x26zbcdkqr
       Capabilities                 : ["CAPABILITY_IAM"]
       Parameter overrides          : {}
       Signing Profiles             : {}
   
   Initiating deployment
   =====================
   
   File with same data already exists at sam-app/2bebf67c79f6a743cc5312f6dfc1efee.template, skipping upload
   
   
   Waiting for changeset to be created..
   
   CloudFormation stack changeset
   ---------------------------------------------------------------------------------------------------------------------------------------------
   Operation                           LogicalResourceId                   ResourceType                        Replacement
   ---------------------------------------------------------------------------------------------------------------------------------------------
   * Modify                            HelloWorldFunction                  AWS::Lambda::Function               False
   * Modify                            ServerlessRestApi                   AWS::ApiGateway::RestApi            False
   - Delete                            AwsSamAutoDependencyLayerNestedSt   AWS::CloudFormation::Stack          N/A
                                       ack
   ---------------------------------------------------------------------------------------------------------------------------------------------
   
   
   Changeset created successfully. arn:aws:cloudformation:us-west-2:012345678910:changeSet/samcli-deploy1678917603/22e05525-08f9-4c52-a2c4-f7f1fd055072
   
   
   2023-03-15 12:00:16 - Waiting for stack create/update to complete
   
   CloudFormation events from stack operations (refresh every 0.5 seconds)
   ---------------------------------------------------------------------------------------------------------------------------------------------
   ResourceStatus                      ResourceType                        LogicalResourceId                   ResourceStatusReason
   ---------------------------------------------------------------------------------------------------------------------------------------------
   UPDATE_IN_PROGRESS                  AWS::Lambda::Function               HelloWorldFunction                  -
   UPDATE_COMPLETE                     AWS::Lambda::Function               HelloWorldFunction                  -
   UPDATE_COMPLETE_CLEANUP_IN_PROGRE   AWS::CloudFormation::Stack          sam-app                             -
   SS
   DELETE_IN_PROGRESS                  AWS::CloudFormation::Stack          AwsSamAutoDependencyLayerNestedSt   -
                                                                           ack
   DELETE_COMPLETE                     AWS::CloudFormation::Stack          AwsSamAutoDependencyLayerNestedSt   -
                                                                           ack
   UPDATE_COMPLETE                     AWS::CloudFormation::Stack          sam-app                             -
   ---------------------------------------------------------------------------------------------------------------------------------------------
   
   CloudFormation outputs from deployed stack
   ----------------------------------------------------------------------------------------------------------------------------------------------
   Outputs
   ----------------------------------------------------------------------------------------------------------------------------------------------
   Key                 HelloWorldFunctionIamRole
   Description         Implicit IAM Role created for Hello World function
   Value               arn:aws:iam::012345678910:role/sam-app-HelloWorldFunctionRole-15GLOUR9LMT1W
   
   Key                 HelloWorldApi
   Description         API Gateway endpoint URL for Prod stage for Hello World function
   Value               https://<restapiid>.execute-api.us-west-2.amazonaws.com/Prod/hello/
   
   Key                 HelloWorldFunction
   Description         Hello World Lambda Function ARN
   Value               arn:aws:lambda:us-west-2:012345678910:function:sam-app-HelloWorldFunction-yQDNe17r9maD
   ----------------------------------------------------------------------------------------------------------------------------------------------
   
   
   Successfully created/updated stack - sam-app in us-west-2
   ```

これで、アプリケーションがデプロイされ、 で実行されます AWS クラウド。

## ステップ 4: アプリケーションを実行する
<a name="serverless-getting-started-hello-world-run"></a>

このステップでは、API エンドポイントに GET リクエストを送信し、Lambda 関数の出力を確認します。

**API エンドポイントの値を取得するには**

1. 前のステップで AWS SAM CLI によって表示された情報から、`Outputs` セクションを見つけます。このセクションで、`HelloWorldApi` リソースを見つけて HTTP エンドポイントの値を確認します。出力例を次に示します。

   ```
   ----------------------------------------------------------------------------------------------------------------------------------------------
   Outputs
   ----------------------------------------------------------------------------------------------------------------------------------------------
   ...
   Key                 HelloWorldApi
   Description         API Gateway endpoint URL for Prod stage for Hello World function
   Value               https://ets1gv8lxi.execute-api.us-west-2.amazonaws.com/Prod/hello/
   ...
   ----------------------------------------------------------------------------------------------------------------------------------------------
   ```

1. あるいは、**sam list endpoints --output json** コマンドを使用してこの情報を取得することもできます。出力例を次に示します。

   ```
   $ sam list endpoints --output json
   2023-03-15 12:39:19 Loading policies from IAM...
   2023-03-15 12:39:25 Finished loading policies from IAM.
   [
     {
       "LogicalResourceId": "HelloWorldFunction",
       "PhysicalResourceId": "sam-app-HelloWorldFunction-yQDNe17r9maD",
       "CloudEndpoint": "-",
       "Methods": "-"
     },
     {
       "LogicalResourceId": "ServerlessRestApi",
       "PhysicalResourceId": "ets1gv8lxi",
       "CloudEndpoint": [
         "https://ets1gv8lxi.execute-api.us-west-2.amazonaws.com/Prod",
         "https://ets1gv8lxi.execute-api.us-west-2.amazonaws.com/Stage"
       ],
       "Methods": [
         "/hello['get']"
       ]
     }
   ]
   ```

**関数を呼び出すには**
+ ブラウザまたはコマンドラインを使用して、API エンドポイントに GET リクエストを送信します。curl コマンドを使用した例を次に示します。

  ```
  $ curl https://ets1gv8lxi.execute-api.us-west-2.amazonaws.com/Prod/hello/
  {"message": "hello world"}
  ```

## ステップ 5: で 関数を操作する AWS クラウド
<a name="serverless-getting-started-hello-world-remote-invoke"></a>

このステップでは、 AWS SAM CLI を使用して AWS クラウド内の Lambda 関数を呼び出します。

**クラウド内の Lambda 関数を呼び出す**

1. 前のステップから、関数の `LogicalResourceId` を書き留めておきます。これは、`HelloWorldFunction` になります。

1. コマンドラインで、`sam-app` プロジェクトディレクトリから次を実行します。

   ```
   $ sam remote invoke HelloWorldFunction --stack-name sam-app
   ```

1. はクラウドで関数を AWS SAM CLI呼び出し、レスポンスを返します。以下は、その出力例です。

   ```
   $ sam remote invoke HelloWorldFunction --stack-name sam-app
   
   Invoking Lambda Function HelloWorldFunction                                       
   START RequestId: d5ef494b-5f45-4086-86fd-d7322fa1a1f9 Version: $LATEST
   END RequestId: d5ef494b-5f45-4086-86fd-d7322fa1a1f9
   REPORT RequestId: d5ef494b-5f45-4086-86fd-d7322fa1a1f9  Duration: 6.62 ms       Billed Duration: 7 ms     Memory Size: 128 MB     Max Memory Used: 67 MB  Init Duration: 164.06 ms
   {"statusCode":200,"body":"{\"message\":\"hello world\"}"}%
   ```

## ステップ 6: アプリケーションを変更して に同期する AWS クラウド
<a name="serverless-getting-started-hello-world-sync"></a>

このステップでは、 **sam sync --watch** コマンドを使用してローカルの変更を AWS SAM CLI に同期します AWS クラウド。

**sam sync を使用するには**

1. コマンドラインで、`sam-app` プロジェクトディレクトリから次を実行します。

   ```
   $ sam sync --watch
   ```

1.  AWS SAM CLI は、開発スタックを同期しようとしていることを確認するよう促すプロンプトを表示します。**sam sync --watch** コマンドはローカルの変更を AWS クラウド にリアルタイムで自動的にデプロイするため、開発環境にのみお勧めします。

    AWS SAM CLI は、ローカルの変更のモニタリングを開始する前に、初期デプロイを実行します。以下は、その出力例です。

   ```
   $ sam sync --watch
   The SAM CLI will use the AWS Lambda, Amazon API Gateway, and AWS StepFunctions APIs to upload your code without
   performing a CloudFormation deployment. This will cause drift in your CloudFormation stack.
   **The sync command should only be used against a development stack**.
   
   Confirm that you are synchronizing a development stack.
   
   Enter Y to proceed with the command, or enter N to cancel:
    [Y/n]: y
   Queued infra sync. Waiting for in progress code syncs to complete...
   Starting infra sync.
   Manifest is not changed for (HelloWorldFunction), running incremental build
   Building codeuri: /Users/.../Demo/sam-tutorial1/sam-app/hello_world runtime: python3.9 metadata: {} architecture: x86_64 functions: HelloWorldFunction
   Running PythonPipBuilder:CopySource
   
   Build Succeeded
   
   Successfully packaged artifacts and wrote output template to file /var/folders/45/5ct135bx3fn2551_ptl5g6_80000gr/T/tmpq3x9vh63.
   Execute the following command to deploy the packaged template
   sam deploy --template-file /var/folders/45/5ct135bx3fn2551_ptl5g6_80000gr/T/tmpq3x9vh63 --stack-name <YOUR STACK NAME>
   
   
       Deploying with following values
       ===============================
       Stack name                   : sam-app
       Region                       : us-west-2
       Disable rollback             : False
       Deployment s3 bucket         : aws-sam-cli-managed-default-samclisam-s3-demo-bucket-1a4x26zbcdkqr
       Capabilities                 : ["CAPABILITY_NAMED_IAM", "CAPABILITY_AUTO_EXPAND"]
       Parameter overrides          : {}
       Signing Profiles             : null
   
   Initiating deployment
   =====================
   
   
   2023-03-15 13:10:05 - Waiting for stack create/update to complete
   
   CloudFormation events from stack operations (refresh every 0.5 seconds)
   ---------------------------------------------------------------------------------------------------------------------------------------------
   ResourceStatus                      ResourceType                        LogicalResourceId                   ResourceStatusReason
   ---------------------------------------------------------------------------------------------------------------------------------------------
   UPDATE_IN_PROGRESS                  AWS::CloudFormation::Stack          sam-app                             Transformation succeeded
   CREATE_IN_PROGRESS                  AWS::CloudFormation::Stack          AwsSamAutoDependencyLayerNestedSt   -
                                                                           ack
   CREATE_IN_PROGRESS                  AWS::CloudFormation::Stack          AwsSamAutoDependencyLayerNestedSt   Resource creation Initiated
                                                                           ack
   CREATE_COMPLETE                     AWS::CloudFormation::Stack          AwsSamAutoDependencyLayerNestedSt   -
                                                                           ack
   UPDATE_IN_PROGRESS                  AWS::Lambda::Function               HelloWorldFunction                  -
   UPDATE_COMPLETE                     AWS::Lambda::Function               HelloWorldFunction                  -
   UPDATE_COMPLETE_CLEANUP_IN_PROGRE   AWS::CloudFormation::Stack          sam-app                             -
   SS
   UPDATE_COMPLETE                     AWS::CloudFormation::Stack          sam-app                             -
   ---------------------------------------------------------------------------------------------------------------------------------------------
   
   CloudFormation outputs from deployed stack
   ----------------------------------------------------------------------------------------------------------------------------------------------
   Outputs
   ----------------------------------------------------------------------------------------------------------------------------------------------
   Key                 HelloWorldFunctionIamRole
   Description         Implicit IAM Role created for Hello World function
   Value               arn:aws:iam::012345678910:role/sam-app-HelloWorldFunctionRole-15GLOUR9LMT1W
   
   Key                 HelloWorldApi
   Description         API Gateway endpoint URL for Prod stage for Hello World function
   Value               https://ets1gv8lxi.execute-api.us-west-2.amazonaws.com/Prod/hello/
   
   Key                 HelloWorldFunction
   Description         Hello World Lambda Function ARN
   Value               arn:aws:lambda:us-west-2:012345678910:function:sam-app-HelloWorldFunction-yQDNe17r9maD
   ----------------------------------------------------------------------------------------------------------------------------------------------
   
   
   Stack update succeeded. Sync infra completed.
   
   Infra sync completed.
   CodeTrigger not created as CodeUri or DefinitionUri is missing for ServerlessRestApi.
   ```

次に、Lambda 関数のコードを変更します。 AWS SAM CLI は、この変更を自動的に検出し、アプリケーションを に同期します AWS クラウド。

**アプリケーションを変更して同期するには**

1. 選択した IDE で `sam-app/hello_world/app.py` ファイルを開きます。

1. `message` を変更してファイルを保存します。以下に例を示します。

   ```
   import json
   ...
   def lambda_handler(event, context):
       ...
       return {
           "statusCode": 200,
           "body": json.dumps({
               "message": "hello everyone!",
               ...
           }),
       }
   ```

1. は AWS SAM CLI変更を検出し、アプリケーションを に同期します AWS クラウド。以下は、その出力例です。

   ```
   Syncing Lambda Function HelloWorldFunction...
   Manifest is not changed for (HelloWorldFunction), running incremental build
   Building codeuri: /Users/.../Demo/sam-tutorial1/sam-app/hello_world runtime: python3.9 metadata: {} architecture: x86_64 functions: HelloWorldFunction
   Running PythonPipBuilder:CopySource
   Finished syncing Lambda Function HelloWorldFunction.
   ```

1. 変更を確認するには、API エンドポイントに GET リクエストを再度送信します。

   ```
   $ curl https://ets1gv8lxi.execute-api.us-west-2.amazonaws.com/Prod/hello/
   {"message": "hello everyone!"}
   ```

## ステップ 7: (オプション) アプリケーションをローカルでテストする
<a name="serverless-getting-started-hello-world-test"></a>

**注記**  
この手順は省略可能です。

**重要**  
このステップを使用するには、ローカルマシン上に Docker が必要です。ローカルテストに Docker  AWS SAMを使用するには、CLI をインストールして設定しておく必要があります。詳細については、「[Docker のインストール](install-docker.md)」を参照してください。

このステップでは、 **sam local** コマンドを使用して AWS SAM CLIアプリケーションをローカルでテストします。これを実現するために、 AWS SAM CLI は Docker を使用してローカル環境を作成します。このローカル環境は、Lambda 関数のクラウドベースの実行環境をエミュレートします。

以下の作業を実行します。

1. Lambda 関数のローカル環境を作成し、呼び出します。

1. HTTP API エンドポイントをローカルでホストし、それを使用して Lambda 関数を呼び出します。

**Lambda 関数をローカルで呼び出すには**

1. コマンドラインで、`sam-app` プロジェクトディレクトリから次を実行します。

   ```
   $ sam local invoke
   ```

1.  AWS SAM CLI はローカル Docker コンテナを作成し、関数を呼び出します。以下は、その出力例です。

   ```
   $ sam local invoke
   Invoking app.lambda_handler (python3.9)
   Local image was not found.
   Removing rapid images for repo public.ecr.aws/sam/emulation-python3.9
   Building image.....................
   Using local image: public.ecr.aws/lambda/python:3.9-rapid-x86_64.
   
   Mounting /Users/.../Demo/sam-tutorial1/sam-app/.aws-sam/build/HelloWorldFunction as /var/task:ro,delegated inside runtime container
   START RequestId: b046db01-2a00-415d-af97-35f3a02e9eb6 Version: $LATEST
   END RequestId: b046db01-2a00-415d-af97-35f3a02e9eb6
   REPORT RequestId: b046db01-2a00-415d-af97-35f3a02e9eb6    Init Duration: 1.01 ms    Duration: 633.45 ms    Billed Duration: 634 ms    Memory Size: 128 MB    Max Memory Used: 128 MB
   {"statusCode": 200, "body": "{\"message\": \"hello world\"}"}
   ```

**API をローカルでホストするには**

1. コマンドラインで、`sam-app` プロジェクトディレクトリから次を実行します。

   ```
   $ sam local start-api
   ```

1.  AWS SAM CLI は、Lambda 関数用にローカル Docker コンテナを作成し、API エンドポイントをシミュレートするローカル HTTP サーバーを作成します。以下は、その出力例です。

   ```
   $ sam local start-api
   Initializing the lambda functions containers.
   Local image is up-to-date
   Using local image: public.ecr.aws/lambda/python:3.9-rapid-x86_64.
   
   Mounting /Users/.../Demo/sam-tutorial1/sam-app/.aws-sam/build/HelloWorldFunction as /var/task:ro,delegated inside runtime container
   Containers Initialization is done.
   Mounting HelloWorldFunction at http://127.0.0.1:3000/hello [GET]
   You can now browse to the above endpoints to invoke your functions. You do not need to restart/reload SAM CLI while working on your functions, changes will be reflected instantly/automatically. If you used sam build before running local commands, you will need to re-run sam build for the changes to be picked up. You only need to restart AWS SAM CLI if you update your AWS SAM template
   2023-03-15 14:25:21 WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
    * Running on http://127.0.0.1:3000
   2023-03-15 14:25:21 Press CTRL+C to quit
   ```

1. ブラウザまたはコマンドラインを使用して、ローカル API エンドポイントに GET リクエストを送信します。curl コマンドを使用した例を次に示します。

   ```
   $ curl http://127.0.0.1:3000/hello
   {"message": "hello world"}
   ```

## ステップ 8: からアプリケーションを削除する AWS クラウド
<a name="serverless-getting-started-hello-world-delete"></a>

このステップでは、 **sam delete** コマンドを使用して AWS SAM CLI からアプリケーションを削除します AWS クラウド。

**からアプリケーションを削除するには AWS クラウド**

1. コマンドラインで、`sam-app` プロジェクトディレクトリから次を実行します。

   ```
   $ sam delete
   ```

1.  AWS SAM CLI から確認するよう求められます。次に、アプリケーションの Amazon S3 バケットと CloudFormation スタックが削除されます。出力例を次に示します。

   ```
   $ sam delete
       Are you sure you want to delete the stack sam-app in the region us-west-2 ? [y/N]: y
       Are you sure you want to delete the folder sam-app in S3 which contains the artifacts? [y/N]: y
       - Deleting S3 object with key c6ce8fa8b5a97dd022ecd006536eb5a4
       - Deleting S3 object with key 5d513a459d062d644f3b7dd0c8b56a2a.template
       - Deleting S3 object with key sam-app/2bebf67c79f6a743cc5312f6dfc1efee.template
       - Deleting S3 object with key sam-app/6b208d0e42ad15d1cee77d967834784b.template
       - Deleting S3 object with key sam-app/da3c598813f1c2151579b73ad788cac8
       - Deleting S3 object with key sam-app/f798cdd93cee188a71d120f14a035b11
       - Deleting Cloudformation stack sam-app
   
   Deleted successfully
   ```

## トラブルシューティング
<a name="serverless-getting-started-hello-world-troubleshoot"></a>

のトラブルシューティングについては AWS SAM CLI、「」を参照してください[AWS SAMCLI トラブルシューティング](sam-cli-troubleshooting.md)。

## 詳細情報
<a name="serverless-getting-started-hello-world-learn"></a>

詳細については AWS SAM、次のリソースを参照してください。
+ **[The Complete AWS SAM Workshop](https://s12d.com/sam-ws-en-intro)** – AWS SAM が提供する多くの主要機能を学べるように設計されたワークショップ。
+ **[ SAM を使用したセッション](https://www.youtube.com/playlist?list=PLJo-rJlep0ED198FJnTzhIB5Aut_1vDAd)** – AWS Serverless Developer Advocate チームによって作成された動画シリーズ AWS SAM。
+ **[Serverless Land](https://serverlessland.com/)** – AWS サーバーレスに関する最新情報、ブログ、動画、コード、学習リソースをまとめたサイト。

# Lambda 関数の AWS SAM アプリケーションへの変換
<a name="convert-lambda-to-sam"></a>

VS Code as infrastructure as code (IaC) で管理する関数が Lambda コンソールにある場合は、それを VS Code に転送してから AWS SAM テンプレートに変換できます。関数を AWS SAM テンプレートに変換すると、インフラストラクチャのバージョニングを制御し、デプロイを自動化し、関数をリモートでデバッグし、開発ライフサイクル全体で一貫した環境を維持できます。ローカルおよびリモートのデバッグ機能を使用すると、コードをステップスルーし、変数を検査し、ローカルと AWS クラウドの両方でブレークポイントを設定することで、問題をより効果的にトラブルシューティングすることもできます。

コンソールから関数を移動し、ローカル開発を設定する手順については、「*AWS Lambda デベロッパーガイド*」の「[VS Code を使用した Lambda 関数のローカル開発](https://docs.aws.amazon.com/lambda/latest/dg/foundation-iac-local-development.html)」を参照してください。Lambda 関数をコンソールから VS Code に移動し、 AWS SAM テンプレートに変換するには、次の手順に従います。その後、以下を実行できます。
+ ** AWS クラウドで関数をリモートでデバッグします。**詳細については、「*AWS Lambda デベロッパーガイド*」の「[Visual Studio Code での Lambda 関数のリモートデバッグ](https://docs.aws.amazon.com/lambda/latest/dg/debugging.html)」を参照してください。
+ **関連するリソースと許可を Infrastructure as Code として管理する。**詳細については、「*AWS Lambda デベロッパーガイド*」の「[Lambda と Infrastructure as Code (IaC) の使用](https://docs.aws.amazon.com/lambda/latest/dg/foundation-iac.html)」を参照してください。
+ **を使用してアプリケーションをデプロイおよび更新します AWS SAM CLI。**詳細については、「[AWS SAM CLI](using-sam-cli.md)」を参照してください。
+ **Infrastructure Composer を使用してサーバーレスアーキテクチャを視覚的に設計する。**詳細については、「[Infrastructure Composer Developer Guide](https://docs.aws.amazon.com/application-composer/latest/dg/what-is-composer.html)」を参照してください。

## 詳細情報
<a name="convert-lambda-to-sam-learn"></a>

引き続き学習するには AWS SAM、次のリソースを参照してください。
+ **[The Complete AWS SAM Workshop](https://s12d.com/sam-ws-en-intro)** – AWS SAM が提供する多くの主要機能を学べるように設計されたワークショップ。
+ **[ SAM を使用したセッション](https://www.youtube.com/playlist?list=PLJo-rJlep0ED198FJnTzhIB5Aut_1vDAd)** – AWS Serverless Developer Advocate チームによって作成されたビデオシリーズ AWS SAM。
+ **[Serverless Land](https://serverlessland.com/)** – AWS サーバーレスに関する最新情報、ブログ、動画、コード、学習リソースをまとめたサイト。