

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

# を使用してアプリケーションをデプロイするためのオプション AWS SAM
<a name="deploying-options"></a>

を使用すると AWS SAM、アプリケーションを手動でデプロイし、デプロイを自動化できます。アプリケーションを手動でデプロイするには AWS SAM CLI を使用します。デプロイを自動化するには、パイプラインと、継続的な統合/継続的なデプロイ (CI/CD) を使用します。このセクションのトピックでは、両方のアプローチについての情報を提供しています。

**Topics**
+ [手動によるデプロイのための AWS SAM CLI の使用法](#serverless-sam-cli-using-package-and-deploy)
+ [CI/CD システムとパイプラインを使用したデプロイ](#serverless-deploying-ci-cd)
+ [段階的なデプロイ](#serverless-deploying-gradual)
+ [AWS SAM CLI を使用したデプロイのトラブルシューティング](#serverless-deploying-troubleshooting)
+ [詳細情報](#serverless-sam-cli-using-invoke-learn)

## 手動によるデプロイのための AWS SAM CLI の使用法
<a name="serverless-sam-cli-using-package-and-deploy"></a>

サーバーレスアプリケーションをローカルで開発してテストしたら、**[sam deploy](sam-cli-command-reference-sam-deploy.md)** コマンドを使用してアプリケーションをデプロイできます。

プロンプトを使用してデプロイを AWS SAM ガイドするには、 **--guided**フラグを指定します。このフラグを指定すると、**sam deploy** コマンドがアプリケーションアーティファクトを zip で圧縮し、それらを Amazon Simple Storage Service (Amazon S3) (.zip ファイルアーカイブの場合) または Amazon Elastic Container Registry (Amazon ECR) (コンテナイメージの場合) のいずれかにアップロードします。その後、 コマンドはアプリケーションを AWS クラウドにデプロイします。

**例**:

```
# Deploy an application using prompts:
sam deploy --guided
```

## CI/CD システムとパイプラインを使用したデプロイ
<a name="serverless-deploying-ci-cd"></a>

AWS SAM は、パイプラインと継続的インテグレーションおよび継続的デプロイ (CI/CD) システムを使用してデプロイを自動化するのに役立ちます。 を使用してパイプラインを作成し、サーバーレスアプリケーションの CI/CD タスクを簡素化 AWS SAM できます。複数の CI/CD システムは AWS SAM ビルドコンテナイメージをサポートし、デプロイのベストプラクティスをカプセル化する複数の CI/CD AWSシステム用のデフォルトのパイプラインテンプレートのセット AWS SAM も提供します。

詳細については、「[CI/CD システムとパイプラインを使用して でデプロイする AWS SAM](deploying-cicd-overview.md)」を参照してください。

## 段階的なデプロイ
<a name="serverless-deploying-gradual"></a>

アプリケーションを一度にすべてではなく AWS SAM 徐々にデプロイする場合は、 AWS CodeDeploy が提供するデプロイ設定を指定できます。詳細については、*AWS CodeDeploy ユーザーガイド*の「[Working with deployment configurations in CodeDeploy](https://docs.aws.amazon.com/codedeploy/latest/userguide/deployment-configurations.html)」を参照してください。

徐々にデプロイするように AWS SAM アプリケーションを設定する方法については、「」を参照してください[を使用してサーバーレスアプリケーションを徐々にデプロイする AWS SAM](automating-updates-to-serverless-apps.md)。

## AWS SAM CLI を使用したデプロイのトラブルシューティング
<a name="serverless-deploying-troubleshooting"></a>

### AWS SAM CLI エラー:「セキュリティの制約に準拠していません」
<a name="troubleshooting-security-constraints"></a>

**sam deploy --guided** の実行時に、`HelloWorldFunction may not have authorization defined, Is this okay? [y/N]` という質問のプロンプトが表示されます。このプロンプトに「**N**」(デフォルトのレスポンス) と答えた場合、以下のエラーが表示されます。

```
 
Error: Security Constraints Not Satisfied
```

このプロンプトは、デプロイしようとしているアプリケーションに、認可なしで設定された Amazon API Gateway API が存在する可能性があることを知らせています。このプロンプトに「**N**」と答えることによって、この状態は望ましくないと伝えることになります。

この問題を解決するには、以下のオプションがあります。
+ 認可を使用してアプリケーションを設定する。認可の設定については、「[AWS SAM テンプレートを使用して API アクセスを制御する](serverless-controlling-access-to-apis.md)」を参照してください。
+ この質問に「**Y**」と答えて、認可なしで設定された API Gateway API 含むアプリケーションのデプロイを許容することを示します。

## 詳細情報
<a name="serverless-sam-cli-using-invoke-learn"></a>

サーバーレスアプリケーションをデプロイする実践的な例については、*「 完全な AWS SAM ワークショップ*」の以下を参照してください。
+ [モジュール 3 - 手動でデプロイ](https://s12d.com/sam-ws-en-manual-deploy)する – を使用してサーバーレスアプリケーションを構築、パッケージ化、デプロイする方法について説明します AWS SAM CLI。
+ [Module 4 - CI/CD](https://s12d.com/sam-ws-en-cicd-deploy) – *継続的インテグレーションと継続的デリバリー (CI/CD)* パイプラインを作成することで、構築、パッケージ化、デプロイの各フェーズを自動化する方法を学びます。