

# AWS Toolkit for JetBrains を使用して AWS サーバーレスアプリケーションを操作する
<a name="sam"></a>

次のトピックでは、AWS Toolkit for JetBrains を使用して AWS アカウントの AWS サーバーレスアプリケーションを操作する方法について説明します。

**Topics**
+ [アプリケーションを作成する](deploy-serverless-app.md)
+ [アプリケーションの同期](sam-sync.md)
+ [アプリケーション設定の変更 (更新)](sam-update.md)
+ [アプリケーションの削除](sam-delete.md)

# AWS Toolkit for JetBrains を使用して AWS サーバーレスアプリケーションを作成する
<a name="deploy-serverless-app"></a>

この手順を完了するには、最初に AWS Toolkit をインストールする必要があります。まだインストールしていない場合、最初に AWS アカウントに接続してください。その後、IntelliJ IDEA、PyCharm、WebStorm、JetBrains Rider が実行されている状態で、次の手順を実行します。

1. IntelliJ IDEA、PyCharm、WebStorm、JetBrains Rider が実行されている状態で、次のいずれかを実行します。
   + IntelliJ IDEA または WebStorm の場合は、**[ファイル]**、**[新規]**、**[プロジェクト]** の順に選択します。
   + PyCharm の場合は、**[ファイル]**、**[新しいプロジェクト]** の順に選択します。
   + JetBrains Rider の場合は、**[ファイル]**、**[新規作成]** の順に選択して、新しいソリューションを作成します。または、[**Explorer**] ツールウィンドウで既存のソリューションを右クリックし、[**追加**]、[**New Project (新しいプロジェクト)**] の順に選択します。

1. IntelliJ IDEA の場合は、**[AWS]**、**[AWS サーバーレスアプリケーション]** を選択し、その後 **[次へ]** を選択します。  
![\[選択して、IntelliJ IDEA に AWS サーバーレスアプリケーションを作成する\]](http://docs.aws.amazon.com/ja_jp/toolkit-for-jetbrains/latest/userguide/images/sam-create-intellij.png)

   PyCharm の場合は、**[AWS サーバーレスアプリケーション]** を選択します。  
![\[PyCharm に AWS サーバーレスアプリケーションを作成することを選択する\]](http://docs.aws.amazon.com/ja_jp/toolkit-for-jetbrains/latest/userguide/images/sam-create-pycharm.png)

   WebStorm の場合は、**[AWS サーバーレスアプリケーション]** を選択します。  
![\[WebStorm に AWS サーバーレスアプリケーションを作成することを選択する\]](http://docs.aws.amazon.com/ja_jp/toolkit-for-jetbrains/latest/userguide/images/sam-create-webstorm.png)

   JetBrains Rider の場合は、**[AWS サーバーレスアプリケーション]** を選択します。  
![\[JetBrains Rider に AWS サーバーレスアプリケーションを作成することを選択する\]](http://docs.aws.amazon.com/ja_jp/toolkit-for-jetbrains/latest/userguide/images/sam-create-rider.png)

1. [[新しいプロジェクト] ダイアログボックス (または JetBrains Rider の [新しいソリューション] ダイアログボックス場合)](new-project-dialog.md) に入力し、**[完了]** (IntelliJ IDEA の場合) または **[作成]** (PyCharm、WebStorm、JetBrains Rider の場合) を選択します。AWS Toolkit for JetBrains によってプロジェクトが作成され、サーバーレスアプリケーションのコードファイルが新しいプロジェクトに追加されます。

1. IntelliJ IDEA を使用している場合は、**[プロジェクト]** ツールウィンドウがすでに開かれていて、サーバーレスアプリケーションのファイルを含むプロジェクトが表示されている状態で、次のいずれかの操作を行います。
   + Maven ベースのプロジェクトの場合、プロジェクトの `pom.xml` ファイルを右クリックし、[**Add as Maven Project (Maven プロジェクトとして追加)**] を選択します。  
![\[POM ファイルを Maven プロジェクトとして追加することを選択する\]](http://docs.aws.amazon.com/ja_jp/toolkit-for-jetbrains/latest/userguide/images/add-as-maven-project.png)
   + Gradle ベースのプロジェクトの場合は、プロジェクトの `build.gradle` ファイルを右クリックし、[**Import Gradle project (Gradle プロジェクトのインポート)**] を選択します。  
![\[Gradle プロジェクトをインポートすることを選択する\]](http://docs.aws.amazon.com/ja_jp/toolkit-for-jetbrains/latest/userguide/images/import-gradle-project.png)

     [**Import Module from Gradle (Gradle からモジュールをインポート)**] ダイアログボックスに入力し、[**OK**] を選択します。

サーバーレスアプリケーションを作成した後、そのアプリケーションに含まれる AWS Lambda 関数のローカルバージョンを実行 (呼び出し) またはデバッグすることができます。

サーバーレスアプリケーションをデプロイすることもできます。デプロイ後、デプロイされたアプリケーションの一部である Lambda 関数のリモートバージョンを実行 (呼び出し) することができます。

# AWS Toolkit for JetBrains の AWS SAM アプリケーションを同期する
<a name="sam-sync"></a>

AWS Serverless Application Model (AWS SAM) `sam sync` は、サーバーレスアプリケーションに加えた変更を自動的に識別し、それらの変更を AWS クラウド に構築してデプロイする最適な方法を選択する AWS SAM CLI コマンドデプロイプロセスです。インフラストラクチャーを変更せずにアプリケーションコードのみを変更した場合、AWS SAM 同期は CloudFormation スタックを再デプロイせずにアプリケーションを更新します。

`sam sync` と AWS SAM CLI コマンドの詳細については、「AWS Serverless Application Model ユーザーガイド」の「[AWS SAM CLI コマンドリファレンス](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-command-reference.html)」トピックを参照してください。

次のセクションでは、AWS SAM Sync の開始方法について説明します。

## 前提条件
<a name="w7aac13c40c11b9"></a>

AWS SAM 同期を使用する前に、次の前提条件を満たす必要があります。
+ 動作している AWS SAM アプリケーションがあること。AWS SAM アプリケーションを作成する方法詳細については、本ユーザーガイドの「[AWS SAM の使用について](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/key-tasks.html#key-tasks-sam-create)」トピックを参照してください。
+ バージョン 1.78.0 以降の AWS SAM CLI をインストールしていること。AWS SAM CLI のインストールの詳細については、「AWS Serverless Application Model ユーザーガイド」の「[AWS SAM CLI のインストール](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/install-sam-cli.html)」トピックを参照してください。
+ アプリケーションは開発環境で実行されていること。

**注記**  
デフォルト以外の任意のプロパティを持った AWS Lambda 関数を含むサーバーレスアプリケーションを同期してデプロイするには、デプロイする前に AWS Lambda 関数に関連付けされた AWS SAM テンプレートファイルに、オプションのプロパティを設定する必要があります。  
AWS Lambda プロパティの詳細については、GitHub の「AWS Serverless Application Model ユーザーガイド」の「[AWS::Serverless::Function](https://github.com/aws/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction)」セクションを参照してください。

## 使用開始
<a name="w7aac13c40c11c11"></a>

AWS SAM 同期を始めるには、次の手順を実行してください。

**注記**  
お使いの AWS リージョンがサーバーレスアプリケーションに関連付けられたロケーションに設定されていることを確認してください。  
AWS Toolkit for JetBrains から AWS リージョンを変更する方法の詳細については、このユーザーガイドの「[AWS リージョン間の切り替え](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/key-tasks.html#key-tasks-switch-region)」トピックを参照してください。

1. **[プロジェクト]** ツールウィンドウのサーバーレスアプリケーションプロジェクトで、`template.yaml` ファイルのコンテキストメニューを開きます (右クリック)。

1. `template.yaml` コンテキストメニューから、**[サーバーレスアプリケーションの同期 (以前は 「Deploy」)]**を選択し、**[開発スタックの確認]** ダイアログを開きます。

1. 開発スタックから操作していることを確認し、**[サーバーレスアプリケーションの同期]** ダイアログを開きます。  
![\[開発スタック ダイアログの確認\]](http://docs.aws.amazon.com/ja_jp/toolkit-for-jetbrains/latest/userguide/images/sam-sync-dev-stack.png)

1. **[サーバーレスアプリケーションの同期]** ダイアログの手順を完了したら、**[同期]** を選択して AWS SAM 同期プロセスを開始します。**[サーバーレスアプリケーションの同期]** ダイアログの詳細については、以下の「[サーバーレスアプリケーションの同期ダイアログ](#sam-sync-serverless-app-dialog)」セクションを参照してください。

1. 同期処理中、AWS Toolkit for JetBrains の **[ウィンドウの実行]** はデプロイ ステータスで更新されます。

1. 同期が正常に実行された後、CloudFormationスタックの名前が**AWS エクスプローラー**に追加されます。

   同期に失敗した場合、トラブルシューティングの詳細は JetBrains の**[ウィンドウの実行]** または CloudFormation の**[イベントログ]** で確認できます。CloudFormation イベントログの表示に関する詳細については、本ユーザーガイドの「[スタックのイベント ログの表示](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/key-tasks.html#key-tasks-cloudformation-logs)」トピックを参照してください。

## サーバーレスアプリケーションの同期ダイアログ
<a name="sam-sync-serverless-app-dialog"></a>

**[サーバーレスアプリケーションの同期] ダイアログ**は AWS SAM 同期プロセスを支援します。次のセクションは、ダイアログの各コンポーネントの説明と詳細を示します。

### スタックの作成または更新
<a name="w7aac13c40c11c13b5"></a>

**[必須]**: 新しいデプロイスタックを作成するには、表示されるフィールドに名前を入力し、サーバーレスアプリケーションのデプロイを行うために CloudFormation スタックを作成し、設定します。

または、既存の CloudFormation スタックにデプロイするには、お持ちの AWS アカウントに関連付けされたスタックの自動入力リストからスタック名を選択します。

### テンプレートパラメーター
<a name="w7aac13c40c11c13b7"></a>

**[オプション]**: プロジェクトの `template.yaml` ファイルから検出されたパラメータのリストが入力されます。パラメータ値を指定するには、**[値]** の列に表示されるテキスト フィールドに新しいパラメータ値を入力します。

### S3 バケット
<a name="w7aac13c40c11c13b9"></a>

**[必須]**: CloudFormation テンプレートを保存するために既存の Amazon Simple Storage Service (Amazon S3) バケットを選択するには、リストから選択してください。

ストレージ用に新しい Amazon S3 バケットを作成して使用するには、**[作成]** を選択してプロンプトに従います。

### ECR リポジトリ
<a name="w7aac13c40c11c13c11"></a>

**[必須。Image パッケージタイプを使用する場合にのみ表示されます:]** サーバーレスアプリケーションのデプロイ用に既存の Amazon Elastic Container Registry (Amazon ECR) リポジトリ URI を選択します。

AWS Lambda パッケージタイプに関する詳細については、「AWS Lambda デベロッパーガイド」の「[Lambda デプロイパッケージ](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html)」セクションを参照してください。

### CloudFormation 機能
<a name="w7aac13c40c11c13c13"></a>

**[必須:]** スタックの作成時に CloudFormation が使用できる機能を選択します。

### タグ
<a name="w7aac13c40c11c13c15"></a>

**[オプション:]** 表示されるテキスト フィールドに任意のタグを入力してパラメータにタグ付けします。

### コンテナ内で関数を構築する
<a name="w7aac13c40c11c13c17"></a>

**[オプション。Docker が必須:]** このオプションを選択すると、デプロイ前にローカルの Docker コンテナ内にサーバーレスアプリケーション機能が構築されます。このオプションは、機能がネイティブにコンパイルされた依存関係やプログラムを持つパッケージに依存する場合に便利です。

詳細については、「AWS Serverless Application Model デベロッパーガイド」の「[アプリケーション構築](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-using-build.html)」トピックを参照してください。

# AWS Toolkit for JetBrains を使用して AWS サーバーレスアプリケーション設定を変更 (更新) する
<a name="sam-update"></a>

まだデプロイしていない場合、変更する AWS サーバーレスアプリケーションを最初にデプロイする必要があります。
**注記**  
AWS Lambda 関数を含むサーバーレスアプリケーションをデプロイし、デフォルト以外のプロパティまたはオプションのプロパティを使用してその関数をデプロイするには、最初にその関数の対応する AWS SAM テンプレートファイル (プロジェクト内の `template.yaml` という名前のファイルなど) のこれらのプロパティを設定する必要があります。利用可能なプロパティのリストについては、GitHub の [awslabs/serverless-application-model](https://github.com/awslabs/serverless-application-model/) リポジトリで「[AWS::Serverless::Function](https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction)」を参照してください。

1. [**プロジェクト**] ツールウィンドウがすでに開かれていて、サーバーレスアプリケーションのファイルを含むプロジェクトが表示されている状態で、プロジェクトの `template.yaml` ファイルを開きます。ファイルの内容を変更して新しい設定を反映し、ファイルを保存して閉じます。

1. サーバーレスアプリケーションをデプロイする別の AWS リージョンに切り替える必要がある場合、今すぐ行います。

1. プロジェクトの `template.yaml` ファイルを右クリックし、[**Deploy Serverless Application (サーバーレスアプリケーションのデプロイ)**] を選択します。  
![\[サーバーレスアプリケーションのデプロイコマンドの選択\]](http://docs.aws.amazon.com/ja_jp/toolkit-for-jetbrains/latest/userguide/images/deploy-serverless-application.png)

1. [[Deploy Serverless Application (サーバーレスアプリケーションのデプロイ)](deploy-serverless-application-dialog.md)] ダイアログボックスに入力し、[**デプロイ**] を選択します。AWS Toolkit for JetBrains は、デプロイに対応する AWS CloudFormation スタックを更新します。

   デプロイが失敗した場合、スタックのイベント ログを確認して原因を特定することができます。

# AWS Toolkit for JetBrains を使用して AWS サーバーレスアプリケーションを削除する
<a name="sam-delete"></a>

AWS サーバーレスアプリケーションを削除する前に、デプロイする必要があります。

1. AWS Explorer を開きます (まだ開いていない場合)。サーバーレスアプリケーションを含む別の AWS リージョンに切り替える必要がある場合、今すぐ行います。

1. [**CloudFormation**] を展開します。

1. 削除するサーバーレスアプリケーションを含む AWS CloudFormation スタック名を右クリックし、[**Delete CloudFormation Stack (CloudFormation スタックの削除)**] を選択します。  
![\[AWS エクスプローラーから起動する AWS サーバーレスアプリケーションの AWS CloudFormation スタックを削除する\]](http://docs.aws.amazon.com/ja_jp/toolkit-for-jetbrains/latest/userguide/images/sam-delete.png)

1. スタック名を入力して削除を確認し、[**OK**] を選択します。スタックの削除が成功すると、AWS Toolkit for JetBrains は、**AWS エクスプローラー**の **[CloudFormation]** リストからスタック名を削除します。スタックの削除が失敗した場合、スタックのイベント ログを確認して原因を特定することができます。