

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

# ビルド仕様の編集
<a name="edit-build-settings"></a>

Amplify コンソールでビルド仕様 (buildspec) を編集することで、アプリケーションのビルド設定をカスタマイズできます。ビルド設定は、アプリ内のすべてのブランチに適用されます。ただし、Git リポジトリに `amplify.yml` ファイルが保存されたブランチを除きます。

**Amplify コンソールでビルド設定を編集するには**

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

1. ビルド設定を編集するアプリを選択します。

1. ナビゲーションペインで、**[ホスティング]** を選択し、**[ビルド設定]** を選択します。

1. **[ビルド設定]** ページの **[ビルド仕様の追加]** セクションで、**[編集]** を選択します。

1. **[ビルド仕様の編集]** ウィンドウで、更新を入力します。

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

以下のトピックの例を使用して、特定のシナリオのビルド設定を更新できます。

**Topics**
+ [スクリプトを使用したブランチ固有のビルド設定の設定](#branch-specific-build-settings)
+ [サブフォルダーに移動するコマンドの設定](#navigating-to-a-subfolder)
+ [Gen 1 アプリのフロントエンドでのバックエンドのデプロイ](#frontend-with-backend)
+ [出力フォルダの設定](#setting-the-output-folder)
+ [ビルドの一部としてパッケージをインストールする](#installing-packages-as-part-of-your-build)
+ [プライベート npm レジストリを使用する](#using-a-private-npm-registry)
+ [OS パッケージのインストール](#installing-os-packages)
+ [ビルドごとのキー値のストレージの設定](#key-value-storage-for-every-build)
+ [コミットのビルドのスキップ](#skip-build-for-a-commit)
+ [コミットごとの自動ビルドのオフ](#disable-automatic-builds)
+ [差分ベースのフロントエンドビルドとデプロイの設定](#enable-diff-deploy)
+ [Gen 1 アプリケーションの diff ベースのバックエンドビルドの設定](#enable-diff-backend)

## スクリプトを使用したブランチ固有のビルド設定の設定
<a name="branch-specific-build-settings"></a>

bash シェルスクリプトを使用してブランチ固有のビルドを設定できます。たとえば、次のスクリプトは、システム環境変数 *\$1AWS\$1BRANCH* を使用して、ブランチ名が *main* の場合はあるコマンドセットを実行し、ブランチ名が *dev* の場合は別のコマンドセットを実行します。

```
frontend:
  phases:
    build:
      commands:
        - if [ "${AWS_BRANCH}" = "main" ]; then echo "main branch"; fi
        - if [ "${AWS_BRANCH}" = "dev" ]; then echo "dev branch"; fi
```

## サブフォルダーに移動するコマンドの設定
<a name="navigating-to-a-subfolder"></a>

モノレポの場合、ユーザーは、`cd` を実行してフォルダに移動して、ビルドを実行できる必要があります。`cd` コマンドを実行すると、コマンドがビルドのすべてのステージに適用されるため、各フェーズでコマンドを再度実行する必要はありません。

```
version: 1
env:
  variables:
    key: value
frontend:
  phases:
    preBuild:
      commands:
        - cd react-app
        - npm ci
    build:
      commands:
        - npm run build
```

## Gen 1 アプリのフロントエンドでのバックエンドのデプロイ
<a name="frontend-with-backend"></a>

**注記**  
このセクションは、Amplify Gen 1 アプリケーションにのみ対応します。Gen 1 バックエンドは、Amplify Studio と Amplify コマンドラインインターフェイス (CLI) を使用して作成されます。

`amplifyPush` コマンドは、バックエンドのデプロイを支援するヘルパースクリプトです。以下のビルド設定によって、現在のブランチにデプロイする上で適切なバックエンド環境が自動的に判別されます。

```
version: 1
env:
  variables:
    key: value
backend:
  phases:
    build:
      commands:
        - amplifyPush --simple
```

## 出力フォルダの設定
<a name="setting-the-output-folder"></a>

次のビルド設定は、出力ディレクトリをパブリックフォルダに設定します。

```
frontend:
  phases:
    commands:
      build:
        - yarn run build
  artifacts:
    baseDirectory: public
```

## ビルドの一部としてパッケージをインストールする
<a name="installing-packages-as-part-of-your-build"></a>

`npm` または `yarn` コマンドを使って、ビルド中にパッケージをインストールすることができます。

```
frontend:
  phases:
    build:
      commands:
        - npm install -g <package>
        - <package> deploy
        - yarn run build
  artifacts:
    baseDirectory: public
```

## プライベート npm レジストリを使用する
<a name="using-a-private-npm-registry"></a>

プライベートレジストリへのリファレンスは、ビルド設定で追加するか、環境変数として追加することができます。

```
build:
  phases:
    preBuild:
      commands:
        - npm config set <key> <value>
        - npm config set registry https://registry.npmjs.org
        - npm config set always-auth true
        - npm config set email hello@amplifyapp.com
        - yarn install
```

## OS パッケージのインストール
<a name="installing-os-packages"></a>

Amplify の AL2023 イメージは、`amplify` という名前の非特権ユーザーでコードを実行します。Amplify は、Linux `sudo` コマンドを使用して OS コマンドを実行する権限をこのユーザーに付与します。依存関係が欠落しているため OS パッケージをインストールする場合は、`yum` や `rpm` などのコマンドを `sudo` とともに使用できます。

次のビルドセクションの例は、`sudo` コマンドを使用して OS パッケージをインストールするための構文を示しています。

```
build:
  phases:
    preBuild:
      commands:
        - sudo yum install -y <package>
```

## ビルドごとのキー値のストレージの設定
<a name="key-value-storage-for-every-build"></a>

`envCache` はビルド時に key-value ストレージを提供します。`envCache` に保存された値はビルド中にのみ変更でき、次回のビルドで再利用できます。`envCache` を使用することで、デプロイされた環境に情報を保存し、それを連続したビルドでビルドコンテナを利用できるようにします。`envCache` に保存された値とは異なり、ビルド中に環境変数を変更しても、将来のビルドには反映されません。

使用例:

```
envCache --set <key> <value>
envCache --get <key>
```

## コミットのビルドのスキップ
<a name="skip-build-for-a-commit"></a>

特定のコミットの自動ビルドをスキップするには、コミットメッセージの末尾に **[skip-cd]** というテキストを含めます。

## コミットごとの自動ビルドのオフ
<a name="disable-automatic-builds"></a>

コードのコミットごとに自動ビルドをオフにするように Amplify を設定できます。セットアップするには、**[アプリの設定]**、**[ブランチ設定]** の順に選択し、接続されたすべてのブランチが一覧になっている **[ブランチ]** セクションまでスクロールします。ブランチを選択してから、**[アクション]**、**[自動構築を無効化]** を選択します。そのブランチに新しくコミットしても、新しいビルドは開始されません。

## 差分ベースのフロントエンドビルドとデプロイの設定
<a name="enable-diff-deploy"></a>

差分ベースのフロントエンドビルドを使用するように Amplify を設定できます。有効にすると、Amplify は各ビルドの開始時に、デフォルトで自分の `appRoot` フォルダー、または `/src/` フォルダーの差分を実行しようとします。Amplify で差分が見つからなかった場合、フロントエンドのビルド、テスト (設定されている場合)、およびデプロイのステップはスキップされ、ホストされているアプリは更新されません。

**差分ベースのフロントエンドビルドとデプロイを設定するには**

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

1. アプリを選択して、差分ベースのフロントエンドビルドとデプロイを設定します。

1. ナビゲーションペインで、**[ホスティング]**、**[環境変数]** を選択します。

1. 「**環境変数**」セクションで、[**変数の管理**] を選択します。

1. 環境変数を設定する手順は、差分ベースのフロントエンドビルドとデプロイを有効にするか無効にするかによって異なります。
   + 差分ベースのフロントエンドビルドとデプロイを有効化するには

     1. 「**変数の管理**」セクションの [**変数**] に、`AMPLIFY_DIFF_DEPLOY` と入力します。

     1. [**値**] に「`true`」と入力します。
   + 差分ベースのフロントエンドビルドとデプロイを無効化するには

     1. 次のいずれかを行います。
       + 「**変数の管理**」セクションで、`AMPLIFY_DIFF_DEPLOY` を探します。[**値**] に「`false`」と入力します。
       + `AMPLIFY_DIFF_DEPLOY` 環境変数を削除します。

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

オプションで、デフォルトパスをリポジトリのルートからの相対パス (`dist`など) でオーバーライドするように環境変数 `AMPLIFY_DIFF_DEPLOY_ROOT` を設定できます。

## Gen 1 アプリケーションの diff ベースのバックエンドビルドの設定
<a name="enable-diff-backend"></a>

**注記**  
このセクションは、Amplify Gen 1 アプリケーションにのみ対応します。Gen 1 バックエンドは、Amplify Studio と Amplify コマンドラインインターフェイス (CLI) を使用して作成されます。

環境変数 `AMPLIFY_DIFF_BACKEND` を使用して、差分ベースのバックエンドビルドを使用するように Amplify ホスティングを設定できます。差分ベースのバックエンドビルドを有効にすると、各ビルドの開始時に、Amplify はリポジトリ内の `amplify` フォルダーで差分を実行しようとします。Amplify が差分を見つけられない場合、バックエンドのビルドステップをスキップし、バックエンドリソースを更新しません。プロジェクトのリポジトリに `amplify` フォルダがない場合、Amplify は環境変数 `AMPLIFY_DIFF_BACKEND` の値を無視します。

現在、バックエンドフェーズのビルド設定でカスタムコマンドが指定されている場合、条件付きバックエンドビルドは機能しません。これらのカスタムコマンドを実行したい場合は、アプリの `amplify.yml` ファイルにあるビルド設定のフロントエンドフェーズに移動する必要があります。

**差分ベースのバックエンドビルドを設定するには**

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

1. 差分ベースのバックエンドビルドを設定するアプリを選択します。

1. ナビゲーションペインで、**[ホスティング]**、**[環境変数]** を選択します。

1. 「**環境変数**」セクションで、[**変数の管理**] を選択します。

1. 環境変数を設定する手順は、差分ベースのバックエンドビルドを有効化／無効化するかによって異なります。
   + 差分ベースのバックエンドビルドを有効にするには

     1. 「**変数の管理**」セクションの [**変数**] に、`AMPLIFY_DIFF_BACKEND` と入力します。

     1. [**値**] に「`true`」と入力します。
   + 差分ベースのバックエンドビルドを無効にするには

     1. 次のいずれかを行います。
       + 「**変数の管理**」セクションで、`AMPLIFY_DIFF_BACKEND` を探します。[**値**] に「`false`」と入力します。
       + `AMPLIFY_DIFF_BACKEND` 環境変数を削除します。

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