

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

# 機能ブランチのデプロイとチームのワークフロー
<a name="multi-environments"></a>

Amplify ホスティングは、機能ブランチと GitFlow ワークフローで動作するように設計されています。Amplify は Git ブランチを使用して、リポジトリに新しいブランチを接続するたびに新しいデプロイを作成します。最初のブランチを接続すると、追加の機能ブランチが作成されます。

**ブランチをアプリに追加するには**

1. ブランチを追加するアプリを選択します。

1. **[アプリ設定]** を選択し、次に **[ブランチ設定]** を選択します。

1. **[ブランチ設定]** ページで、**[ブランチの追加]** を選択します。

1. リポジトリからブランチを選択します。

1. **[ブランチの追加]** を選択します。

1. アプリを再デプロイします。

ブランチを追加すると、アプリには *https://main.appid.amplifyapp.com* や *https://dev.appid.amplifyapp.com* など、Amplify のデフォルトドメインで 2 つのデプロイが利用可能になります。これはチーム間で異なる場合がありますが、通常は **main ブランチ**はリリースコードを追跡します。また、本稼働ブランチでもあります。**開発ブランチ**は、新機能をテストするための統合ブランチとして使用されます。これによって、ベータテスターは main ブランチデプロイの本稼働エンドユーザーに影響を及ぼすことなく、開発ブランチデプロイの未リリース機能をテストできます。

**Topics**
+ [フルスタックの Amplify Gen 2 アプリを使用したチームワークフロー](team-workflows-gen2.md)
+ [フルスタックの Amplify Gen 1 アプリを使用したチームワークフロー](team-workflows-with-amplify-cli-backend-environments.md)
+ [パターンベースの機能ブランチのデプロイ](pattern-based-feature-branch-deployments.md)
+ [Amplify 設定のビルド時の自動生成 (Gen 1 アプリ専用)](amplify-config-autogeneration.md)
+ [条件付きバックエンドビルド (Gen 1 アプリ専用)](conditional-backends.md)
+ [アプリ間で Amplify バックエンドを使用する (Gen 1 アプリ専用)](reuse-backends.md)

# フルスタックの Amplify Gen 2 アプリを使用したチームワークフロー
<a name="team-workflows-gen2"></a>

AWS Amplify Gen 2 では、バックエンドを定義するための TypeScript ベースのコードファースト開発者エクスペリエンスが導入されています。Amplify Gen 2 アプリケーションを使用したフルスタックワークフローの詳細については、「*Amplify ドキュメント*」の「[フルスタックワークフロー](https://docs.amplify.aws/nextjs/deploy-and-host/fullstack-branching/)」を参照してください。

# フルスタックの Amplify Gen 1 アプリを使用したチームワークフロー
<a name="team-workflows-with-amplify-cli-backend-environments"></a>

機能ブランチのデプロイは、**フロントエンド**と、オプションの**バックエンド**環境で構成されます。フロントエンドはグローバルコンテンツ配信ネットワーク (CDN) に構築およびデプロイされ、バックエンドは Amplify Studio または Amplify CLI によって AWSにデプロイされます。このデプロイシナリオを設定する方法については、「[アプリケーションのバックエンドの構築](deploy-backend.md)」を参照してください。

Amplify ホスティングは、機能ブランチのデプロイで GraphQL API や Lambda 関数などのバックエンドリソースを継続的にデプロイします。次のブランチモデルを使用して、バックエンドとフロントエンドを Amplify ホスティングでデプロイできます。

## 機能ブランチのワークフロー
<a name="standard"></a>
+ Amplify Studio または Amplify CLI で、**prod**、**test**、**dev** バックエンド環境を作成します。
+ **prod** バックエンドを **main** ブランチにマッピングします。
+ **test** バックエンドを **develop** ブランチにマッピングします。
+ チームメンバーは **dev** バックエンド環境を使用して個々の**機能**ブランチをテストできます。

![\[バックエンド環境からフロントエンドブランチにリレーションシップをマッピングする方法を示す図。\]](http://docs.aws.amazon.com/ja_jp/amplify/latest/userguide/images/FeatureBranchWorkflow.png)


1. Amplify CLI をインストールして新しい Amplify プロジェクトを初期化します。

   ```
   npm install -g @aws-amplify/cli
   ```

1. プロジェクト用の *prod* バックエンド環境を初期化します。プロジェクトがない場合は、create-react-app や Gatsby などのブートストラップツールを使用してプロジェクトを作成します。

   ```
   create-react-app next-unicorn
   cd next-unicorn
   amplify init
    ? Do you want to use an existing environment? (Y/n): n
    ? Enter a name for the environment: prod
   ...
   amplify push
   ```

1. *test* と *dev* バックエンド環境を追加します。

   ```
   amplify env add
    ? Do you want to use an existing environment? (Y/n): n
    ? Enter a name for the environment: test
   ...
   amplify push
   
   amplify env add
    ? Do you want to use an existing environment? (Y/n): n
    ? Enter a name for the environment: dev
   ...
   amplify push
   ```

1. 選択した Git リポジトリにコードをプッシュします (この例では、main にプッシュしたと仮定します)。

   ```
   git commit -am 'Added dev, test, and prod environments'
   git push origin main
   ```

1. の Amplify AWS マネジメントコンソール にアクセスして、現在のバックエンド環境を確認します。パンくずリストから1つ上のレベルに移動すると、[**バックエンド環境**] タブに作成されたすべてのバックエンド環境のリストが表示されます。  
![\[Amplify アプリに関連付けられたバックエンド環境を示す Amplify コンソール。\]](http://docs.aws.amazon.com/ja_jp/amplify/latest/userguide/images/reuse-backend-5.png)

1. **[フロントエンド環境]** タブに切り替え、リポジトリプロバイダーと *main* ブランチを接続します。

1. ビルド設定ページで、既存のバックエンド環境を選択し、main ブランチとの継続的デプロイを設定します。リストから *prod* を選択し、サービスロールを Amplify に付与します。**[保存してデプロイ]** を選択します。ビルドが完了したら、*https://main.appid.amplifyapp.com* で利用可能な main ブランチのデプロイを取得します。  
![\[既存のバックエンドのリストを含む [ビルド設定の構成] ページ。\]](http://docs.aws.amazon.com/ja_jp/amplify/latest/userguide/images/reuse-backend-2.png)

1. Amplify で *develop* ブランチを接続します (この時点で *develop* ブランチと *main* ブランチは同じであることを前提としています)。*テスト*バックエンド環境を選択します。  
![\[ブランチ環境とバックエンド環境が選択された [リポジトリブランチの追加] ページ。\]](http://docs.aws.amazon.com/ja_jp/amplify/latest/userguide/images/reuse-backend-4.png)

1. これで Amplify のセットアップが完了しました。機能ブランチで新機能を使用することができます。ローカルワークステーションの *dev* バックエンド環境を使用して、バックエンド機能を追加します。

   ```
   git checkout -b newinternet
   amplify env checkout dev
   amplify add api
   ...
   amplify push
   ```

1. 機能を使用するための準備が整ったら、コードをコミットして、内部でレビューするためのプルリクエストを作成します。

   ```
   git commit -am 'Decentralized internet v0.1'
   git push origin newinternet
   ```

1. 変更内容をプレビューするには、Amplify コンソールに移動して機能ブランチを接続します。注: (Amplify CLI ではなく) システムに AWS CLI がインストールされている場合は、ターミナルからブランチを直接接続できます。アプリ ID を検索するには、[App settings] > [General] > AppARN: *arn:aws:amplify:<region>:<region>:apps/<appid>* の順に進みます。

   ```
   aws amplify create-branch --app-id <appid> --branch-name <branchname>
   aws amplify start-job --app-id <appid> --branch-name <branchname> --job-type RELEASE
   ```

1. *https://newinternet.appid.amplifyapp.com* から機能にアクセスして、チームメイトと共有できるようになります。問題なければ、PR を develop ブランチにマージします。

   ```
   git checkout develop
   git merge newinternet
   git push
   ```

1. これにより、*https://dev.appid.amplifyapp.com* のブランチデプロイで、Amplify のバックエンドとフロントエンドを更新するビルドが開始されます。新機能を確認できるように、このリンクを社内の関係者と共有することができます。

1. Git の Amplify から機能ブランチを削除し、クラウドからバックエンド環境を削除します (「amplify env checkout prod」および「amplify env add」を実行することで、いつでも新しい環境にスピンアップできます)。

   ```
   git push origin --delete newinternet
   aws amplify delete-branch --app-id <appid> --branch-name <branchname>
   amplify env remove dev
   ```

## GitFlow ワークフロー
<a name="gitflow"></a>

GitFlow は2 つのブランチを使ってプロジェクトの履歴を記録します。*main* ブランチでは、リリースコードのみ追跡し、*develop* ブランチは、新機能の統合ブランチとして使用されます。GitFlow は、完了した作業から新しい開発を切り離すことによって、並列開発を簡素化します。新機能の開発 (機能や緊急ではないバグの修正など) は*機能*ブランチで行われます。開発者がコードのリリース準備が整ったことを確認すると、*機能*ブランチは統合*開発*ブランチにマージされます。main ブランチへの唯一のコミットは *release* ブランチと *hotfix* ブランチからのマージです (緊急のバグを修正するため)。

以下の図は GitFlow で推奨された設定を示します。上記の機能ブランチのワークフローのセクションで説明したプロセスと同じプロセスに従って行うことができます。

![\[GitFlow で推奨された設定を示す図。\]](http://docs.aws.amazon.com/ja_jp/amplify/latest/userguide/images/GitflowWorkflow.png)


## 開発者ごとのサンドボックス
<a name="sandbox"></a>
+ チーム内の各開発者は、自分のローカルコンピュータとは別に、サンドボックス環境をクラウド内に作成すること。これにより、開発者は他のチームメンバーの変更を上書きすることなく互いに独立して作業することができます。
+ Amplify の各ブランチには独自のバックエンドがあります。これにより、Amplify は、チームの開発者が自分のローカルコンピュータから本稼働環境に手動でバックエンドやフロントエンドをプッシュするのではなく、Git リポジトリを変更のデプロイ元となる唯一の真のソースとして使用します。

![\[開発者ごとのサンドボックスワークフローを示す図。\]](http://docs.aws.amazon.com/ja_jp/amplify/latest/userguide/images/AmplifySandboxWorkflow.png)


1. Amplify CLI をインストールして新しい Amplify プロジェクトを初期化します。

   ```
   npm install -g @aws-amplify/cli
   ```

1. プロジェクト用の *mary* バックエンド環境を初期化します。プロジェクトがない場合は、create-react-app や Gatsby などのブートストラップツールを使用してプロジェクトを作成します。

   ```
   cd next-unicorn
   amplify init
    ? Do you want to use an existing environment? (Y/n): n
    ? Enter a name for the environment: mary
   ...
   amplify push
   ```

1. 選択した Git リポジトリにコードをプッシュします (この例では、main にプッシュしたと仮定します)。

   ```
   git commit -am 'Added mary sandbox'
   git push origin main
   ```

1. リポジトリ > *main* を Amplify に接続します。

1. Amplify コンソールは、Amplify CLI によって作成されたバックエンド環境を検出します。ドロップダウンから [*新しい環境を作成*]を選択し、サービスロールを Amplify に付与します。**[保存してデプロイ]** を選択します。ビルドが完了したら、ブランチにリンクされている新しいバックエンド環境を持つ、*https://main.appid.amplifyapp.com* で利用可能な main ブランチのデプロイを取得します。

1. Amplify で *develop* ブランチを接続し (この時点で *develop* ブランチと *main* ブランチは同じであることを前提としています)、*[作成]* を選択します。

# パターンベースの機能ブランチのデプロイ
<a name="pattern-based-feature-branch-deployments"></a>

パターンベースのブランチデプロイでは、特定のパターンに一致するブランチを自動的に Amplify にデプロイできます。リリースに機能ブランチまたは GitFlow ワークフローを使用している製品チームは、**release\$1\$1** のようなパターンを定義して、「release」で始まる Git ブランチを共有可能な URL に自動的にデプロイできるようになりました。

1. **[アプリ設定]** を選択し、次に **[ブランチ設定]** を選択します。

1. **[ブランチ設定]** ページで、**[編集]** を選択します。

1. **[ブランチの自動検出]** を選択して、パターンセットに一致する Amplify にブランチを自動的に接続します。

1. **[ブランチ自動検出 - パターン]** ボックスに、ブランチを自動的にデプロイするためのパターンを入力します。
   + **\$1** – リポジトリのすべてのブランチがデプロイされます。
   + **release\$1** –「release」という単語で始まるすべてのブランチをデプロイします。
   + **release\$1/** – 「release /」パターンに一致するすべてのブランチをデプロイします。
   + 複数のパターンをカンマ区切りのリストで指定します。例えば、**release\$1, feature\$1**。

1. **[ブランチ自動検出アクセスコントロール]** を選択して、自動的に作成されるすべてのブランチに対して自動パスワード保護を設定します。

1. Amplify バックエンドを使用して構築された Gen 1 アプリケーションの場合は、接続されたブランチごとに新しい環境を作成するか、すべてのブランチを既存のバックエンドにポイントするかを選択できます。

1. **[保存]** を選択します。

## カスタムドメインに接続されたアプリのパターンベースの機能ブランチデプロイ
<a name="pattern-based-feature-branch-deployments-for-an-app-connected-to-a-custom-domain"></a>

Amazon Route 53 カスタムドメインに接続されたアプリに対して、パターンベースの機能ブランチデプロイを使用することができます。
+ パターンベースの機能ブランチデプロイをセットアップする手順については、「[Amazon Route 53 カスタムドメイン用の自動サブドメインの設定](to-set-up-automatic-subdomains-for-a-Route-53-custom-domain.md)」を参照してください
+ Amplify のアプリを Route 53 で管理されているカスタムドメインに接続する手順については、[Amazon Route 53 が管理するカスタムドメインの追加](to-add-a-custom-domain-managed-by-amazon-route-53.md) を参照してください
+ Route 53 の詳細については、「[What is Amazon Route 53](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/Welcome.html)」(Amazon Route 53 とは) を参照してください。

# Amplify 設定のビルド時の自動生成 (Gen 1 アプリ専用)
<a name="amplify-config-autogeneration"></a>

**注記**  
このセクションの情報は、Gen 1 アプリケーション専用です。Gen 2 アプリの機能ブランチからインフラストラクチャとアプリケーションコードの変更を自動的にデプロイする場合は、「*Amplify ドキュメント*」の「[フルスタックブランチのデプロイ](https://docs.amplify.aws/nextjs/deploy-and-host/fullstack-branching/branch-deployments/)」を参照してください。

Amplify は、Gen 1 アプリ用 Amplify 設定 `aws-exports.js` ファイルのビルド時の自動生成をサポートしています。フルスタック CI/CD デプロイをオフにすることで、アプリによる `aws-exports.js` ファイルの自動生成が可能になり、ビルド時にバックエンドが更新されないようになります。

**ビルド時に `aws-exports.js` を自動生成するには**

1. にサインイン AWS マネジメントコンソール し、[Amplify コンソール](https://console.aws.amazon.com/amplify/)を開きます。

1. 編集するアプリを選択します。

1. [**ホスティング環境**] タブを選択します。

1. 編集するブランチを見つけて [**編集**] を選択します。  
![\[Amplify コンソールのブランチの [編集] リンクの場所。\]](http://docs.aws.amazon.com/ja_jp/amplify/latest/userguide/images/amplify_edit_backend_alternate.png)

1. 「**ターゲットバックエンドの編集**」ページで、「**フルスタック継続的デプロイメント (CI/CD) を有効にする**」のチェックを外して、このバックエンドのフルスタック CI/CD を無効にします。  
![\[Amplify のコンソールの CI/CD をオフにするチェックボックスの場所。\]](http://docs.aws.amazon.com/ja_jp/amplify/latest/userguide/images/amplify_turnoff_CICD.png)

1. 既存のサービスロールを選択して、アプリのバックエンドを変更するために必要な権限を Amplify に付与します。サービスロールを作成する必要がある場合は、[**新しいロールを作成**]を選択します。サービスロールの作成の詳細については、「[バックエンドリソースをデプロイするアクセス許可を持つサービスロールの追加](amplify-service-role.md)」を参照してください。

1. **[保存]** を選択します。Amplify は、次回アプリケーションを構築するときに、これらの変更を適用します。

# 条件付きバックエンドビルド (Gen 1 アプリ専用)
<a name="conditional-backends"></a>

**注記**  
このセクションの情報は、Gen 1 アプリケーション専用です。Amplify Gen 2 では、TypeScript ベースのコードファースト開発者エクスペリエンスが導入されています。したがって、この機能は Gen 2 バックエンドには必要ありません。

Amplify は、Gen 1 アプリ内のすべてのブランチでの条件付きバックエンドビルドをサポートします。条件付きバックエンドビルドを設定するには、環境変数 `AMPLIFY_DIFF_BACKEND` を `true` に設定します。条件付きバックエンドビルドを有効にすると、フロントエンドのみに変更が加えられるビルドをスピードアップするのに役立ちます。

差分ベースのバックエンドビルドを有効にすると、各ビルドの開始時に、Amplify はリポジトリ内の `amplify` フォルダーで差分を実行しようとします。Amplify が差分を見つけられない場合、バックエンドのビルドステップをスキップし、バックエンドリソースを更新しません。プロジェクトのリポジトリに `amplify` フォルダがない場合、Amplify は環境変数 `AMPLIFY_DIFF_BACKEND` の値を無視します。環境変数 `AMPLIFY_DIFF_BACKEND` を設定する手順については、[Gen 1 アプリケーションの diff ベースのバックエンドビルドの設定](edit-build-settings.md#enable-diff-backend) を参照してください。

現在、バックエンドフェーズのビルド設定でカスタムコマンドが指定されている場合、条件付きバックエンドビルドは機能しません。これらのカスタムコマンドを実行したい場合は、アプリの `amplify.yml` ファイルにあるビルド設定のフロントエンドフェーズに移動する必要があります。`amplify.yml` ファイル更新の詳細については、「[ビルド仕様に関するリファレンス](yml-specification-syntax.md)」を参照してください。

# アプリ間で Amplify バックエンドを使用する (Gen 1 アプリ専用)
<a name="reuse-backends"></a>

**注記**  
このセクションの情報は、Gen 1 アプリケーション専用です。Gen 2 アプリのバックエンドリソースを共有する場合は、「*Amplify ドキュメント*」の「[ブランチ間でリソースを共有する](https://docs.amplify.aws/nextjs/deploy-and-host/fullstack-branching/share-resources/)」を参照してください

Amplify では、特定のリージョンのすべての Gen 1 アプリで既存のバックエンド環境を簡単に再利用できます。これは、新しいアプリを作成したり、新しいブランチを既存のアプリに接続したり、既存のフロントエンドを更新して別のバックエンド環境を指すようにする際に活用できます。

## 新しいアプリを作成するときはバックエンドを再利用してください
<a name="reuse-backends-create-connect"></a>

**新しい Amplify のアプリを作成するときにバックエンドを再利用するには**

1. にサインイン AWS マネジメントコンソール し、[Amplify コンソール](https://console.aws.amazon.com/amplify/)を開きます。

1. この例で使用する新規バックエンドを作成するには、以下を実行します。

   1. ナビゲーションペインで、[**すべてのアプリ**]を選択します。

   1. [**新規アプリ**]、[**アプリを構築**] の順に選択します。

   1. アプリの名前 (**Example-Amplify-App** など) を入力します。

   1. [**デプロイを確認**] を選択します。

1. フロントエンドを新しいバックエンドに接続するには、[**ホスティング環境**] タブを選択します。

1. Git プロバイダーを接続してから [**ブランチを接続**]を選択します。

1. 「**リポジトリブランチを追加**」ページの「**最近更新されたリポジトリ**」で、リポジトリ名を選択します。[**ブランチ**] では、リポジトリから接続するブランチを選択します。

1. **[ビルドの設定]**ページで、以下の操作を行います。

   1. [**アプリ名**] では、バックエンド環境の追加に使用するアプリを選択します。現在のアプリ、または現在のリージョンの他のアプリを選択できます。

   1. [**環境**] では、追加するバックエンド環境の名前を選択します。既存の環境を使用するか、新しい環境を作成できます。

   1. デフォルトでは、フルスタック CI/CD はオフになっています。フルスタック CI/CD をオフにすると、アプリは*プルオンリー*モードで実行されます。ビルド時に、Amplify はバックエンド環境を変更せずに `aws-exports.js` ファイルのみを自動的に生成します。

   1. 既存のサービスロールを選択して、アプリのバックエンドを変更するために必要な権限を Amplify に付与します。サービスロールを作成する必要がある場合は、[**新しいロールを作成**]を選択します。サービスロールの作成の詳細については、「[バックエンドリソースをデプロイするアクセス許可を持つサービスロールの追加](amplify-service-role.md)」を参照してください。

   1. [**次へ**] を選択します。

1. **[保存してデプロイ]** を選択します。

## ブランチを既存のアプリに接続するときはバックエンドを再利用してください。
<a name="reuse-backends-connect-branch"></a>

**ブランチを既存の Amplify アプリに接続するときにバックエンドを再利用するには**

1. にサインイン AWS マネジメントコンソール し、[Amplify コンソール](https://console.aws.amazon.com/amplify/)を開きます。

1. 新しいブランチを接続するアプリを選択します。

1. ナビゲーションペインで、[**アプリの設定**]、[**全般**]の順に選択します。

1. 「**ブランチ**」セクションで、[**ブランチを接続**] を選択します。

1. 「**リポジトリブランチを追加**」ページの [**ブランチ**] で、リポジトリから接続するブランチを選択します。

1. [**アプリ名**] では、バックエンド環境の追加に使用するアプリを選択します。現在のアプリ、または現在のリージョンの他のアプリを選択できます。

1. [**環境**] では、追加するバックエンド環境の名前を選択します。既存の環境を使用するか、新しい環境を作成できます。

1. アプリのバックエンドを変更するために必要な権限を Amplify に付与するサービスロールを設定する必要がある場合、コンソールからこのタスクを実行するように求められます。サービスロールの作成の詳細については、「[バックエンドリソースをデプロイするアクセス許可を持つサービスロールの追加](amplify-service-role.md)」を参照してください。

1. デフォルトでは、フルスタック CI/CD はオフになっています。フルスタック CI/CD をオフにすると、アプリは*プルオンリー*モードで実行されます。ビルド時に、Amplify はバックエンド環境を変更せずに `aws-exports.js` ファイルのみを自動的に生成します。

1. [**次へ**] を選択します。

1. **[保存してデプロイ]** を選択します。

## 既存のフロントエンドを編集して、別のバックエンドを指すようにします
<a name="reuse-backends-edit-existing"></a>

**フロントエンド Amplify のアプリを編集して別のバックエンドを指すようにするには**

1. にサインイン AWS マネジメントコンソール し、[Amplify コンソール](https://console.aws.amazon.com/amplify/)を開きます。

1. バックエンドを編集するアプリを選択します。

1. [**ホスティング環境**] タブを選択します。

1. 編集するブランチを見つけて [**編集**] を選択します。  
![\[Amplify コンソールのブランチの [編集] リンクの場所。\]](http://docs.aws.amazon.com/ja_jp/amplify/latest/userguide/images/amplify_edit_backend.png)

1. 「**このブランチで使用するバックエンド環境を選択**」ページの [**アプリ名**] で、バックエンド環境を編集したいフロントエンドアプリを選択します。現在のアプリ、または現在のリージョンの他のアプリを選択できます。

1. [**バックエンド環境**] では、追加するバックエンド環境の名前を選択します。

1. デフォルトでは、フルスタック CI/CD は有効になっています。このオプションのチェックを外すと、このバックエンドのフルスタック CI/CD がオフになります。フルスタック CI/CD をオフにすると、アプリは*プルオンリー*モードで実行されます。ビルド時に、Amplify はバックエンド環境を変更せずに `aws-exports.js` ファイルのみを自動的に生成します。

1. **[保存]** を選択します。Amplify は、次回アプリケーションを構築するときに、これらの変更を適用します。