

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

# sam local start-lambda を使用したテストの概要
<a name="using-sam-cli-local-start-lambda"></a>

サブコマンドを使用して AWS SAM CLI`sam local start-lambda`、 AWS CLI および SDKs。このコマンドは、Lambda をエミュレートするローカルエンドポイントを起動します。
+ の概要については AWS SAM CLI、「」を参照してください。 [とは AWS SAM CLI](what-is-sam-overview.md#what-is-sam-cli)
+ `sam local start-lambda` コマンドオプションのリストについては、「[sam local start-lambda](sam-cli-command-reference-sam-local-start-lambda.md)」を参照してください。

**注記**  
`sam local start-lambda` は、自動チェックポイント機能と再生機能を備えた耐久性のある関数をサポートしています。耐久性の高い関数は、ローカル Lambda エンドポイントとシームレスに連携します。

## 前提条件
<a name="using-sam-cli-local-start-api-prerequisites"></a>

`sam local start-lambda` を使用するには、次を実行して AWS SAM CLI をインストールします。
+ [AWS SAM 前提条件](prerequisites.md).
+ [AWS SAM CLI のインストール](install-sam-cli.md).

`sam local start-lambda` を使用する前に、次の基本を理解しておくことをお勧めします。
+ [AWS SAM CLI の設定](using-sam-cli-configure.md).
+ [でアプリケーションを作成する AWS SAM](using-sam-cli-init.md).
+ [を使用した の構築の概要 AWS SAM](using-sam-cli-build.md).
+ [を使用したデプロイの概要 AWS SAM](using-sam-cli-deploy.md).

## sam local start-lambda の使用
<a name="using-sam-cli-local-start-lambda-use"></a>

`sam local start-lambda` を実行すると、 AWS SAM CLI は現在の作業ディレクトリがプロジェクトのルートディレクトリであると想定します。 AWS SAM CLI は最初に `.aws-sam` サブフォルダ内の `template.[yaml|yml]` ファイルを検索します。見つからない場合、 AWS SAM CLI は現在の作業ディレクトリ内で `template.[yaml|yml]` ファイルを探します。

**sam local start-lambda を使用するには**

1. プロジェクトのルートディレクトリから次のコマンドを実行します。

   ```
   $ sam local start-lambda <options>
   ```

1.  AWS SAM CLI は、Lambda 関数をローカル Docker コンテナに構築します。その後、ローカルアドレスを HTTP サーバーエンドポイントに出力します。以下に例を示します。

   ```
   $ sam local start-lambda
   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/.../sam-app/hello_world as /var/task:ro,delegated, inside runtime container
   Containers Initialization is done.
   Starting the Local Lambda Service. You can now invoke your Lambda Functions defined in your template through the endpoint.
   2023-04-13 07:25:43 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:3001
   2023-04-13 07:25:43 Press CTRL+C to quit
   ```

1.  AWS CLI または SDKs を使用して、Lambda 関数をローカルで呼び出します。

    AWS CLIを使用した例を次に示します。

   ```
   $ aws lambda invoke --function-name "HelloWorldFunction" --endpoint-url "http://127.0.0.1:3001" --no-verify-ssl out.txt
       
   StatusCode: 200
   (END)
   ```

   以下は、 AWS SDKの を使用する例ですPython。

   ```
   import boto3
   from botocore.config import Config
   from botocore import UNSIGNED
   
   lambda_client = boto3.client('lambda',
                                endpoint_url="http://127.0.0.1:3001",
                                use_ssl=False,
                                verify=False,
                                config=Config(signature_version=UNSIGNED,
                                              read_timeout=1,
                                              retries={'max_attempts': 0}
                                              )
                               )
   lambda_client.invoke(FunctionName="HelloWorldFunction")
   ```

## オプション
<a name="using-sam-cli-local-start-lambda-options"></a>

### テンプレートを指定する
<a name="using-sam-cli-local-start-lambda-options-template"></a>

 AWS SAM CLI が参照するテンプレートを指定するには、`--template` オプションを使用します。 AWS SAM CLI は、その AWS SAM テンプレートとそれが指すリソースのみをロードします。以下に例を示します。

```
$ sam local start-lambda --template myTemplate.yaml
```

 AWS SAM テンプレートの詳細については、「」を参照してください[AWS SAM テンプレートの構造](sam-specification-template-anatomy.md)。

## ベストプラクティス
<a name="using-sam-cli-local-start-lambda-best"></a>

アプリケーションに `.aws-sam` を実行している `sam build` ディレクトリがある場合は、関数コードを更新するたびに必ず `sam build` を実行してください。その後、更新された関数コードをローカルでテストするために `sam local start-lambda` を実行します。

ローカルテストは、クラウドにデプロイする前に迅速な開発とテストを行うための優れたソリューションです。ただし、ローカルテストでは、クラウド内のリソース間の許可など、すべてが検証されるわけではありません。可能な限り、アプリケーションをクラウドでテストします。クラウドテストのワークフローを高速化するために [`sam sync` を使用](using-sam-cli-sync.md)することをお勧めします。

## 詳細情報
<a name="using-sam-cli-local-start-lambda-learn"></a>

すべての `sam local start-lambda` オプションのリストについては、「[sam local start-lambda](sam-cli-command-reference-sam-local-start-lambda.md)」を参照してください。