ビルド設定の構成 - AWS Amplifyホスティング

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

ビルド設定の構成

Amplify Hosting でアプリをデプロイすると、package.jsonリポジトリ内のファイルを検査することで、フロントエンドフレームワークと関連するビルド設定が自動的に検出されます。アプリのビルド設定を保存するには、次のオプションがあります。

  • Amplify コンソールにビルド設定を保存する-Amplify コンソールはビルド設定を自動検出して保存し、Amplify コンソールからアクセスできるようにします。Amplifyは、amplify.ymlリポジトリにファイルが保存されていない限り、これらの設定をすべてのブランチに適用します。

  • ビルド設定をリポジトリに保存します。amplify.ymlファイルをダウンロードして、リポジトリのルートに追加します。

Amplify コンソールで [アプリ設定]、[ビルド設定] を選択してアプリのビルド設定を編集できます。ビルド設定は、amplify.ymlリポジトリにファイルが保存されているブランチを除いて、アプリ内のすべてのブランチに適用されます。

注記

ビルド設定はアプリが継続的デプロイ用に設定され、gitリポジトリに接続されている場合にのみ、Amplifyコンソールのアプリ設定メニューに表示されます。このタイプのデプロイの手順については、「既存のコード入門」を参照してください。

ビルド仕様のコマンドと設定

ビルド仕様 YAML には、Amplify がビルドを実行するために使用するビルドコマンドと関連設定のコレクションが含まれています。次のリストでは、これらの設定とその使用方法について説明します。

バージョン

アンプリファイの YAML バージョン番号。

APルート

このアプリケーションが存在するリポジトリ内のパス。複数のアプリケーションが定義されていない限り無視されます。

env

このセクションに環境変数を追加します。また、環境変数はコンソールを使用して追加することもできます。

バックエンド

継続的なデプロイの一環として、Amplify CLI コマンドを実行してバックエンドをプロビジョニングしたり、Lambda 関数や GraphQL スキーマを更新したりできます。フロントエンドでバックエンドをデプロイする方法について説明します。

フロントエンド

フロントエンドのビルドコマンドを実行します。

テスト

テストフェーズでコマンドを実行します。アプリにテストを追加する方法をご覧ください

ビルドフェーズ

フロントエンド、バックエンド、テストには、ビルドの各シーケンスで実行されるコマンドを表す 3 つのフェーズがあります

  • PreBuild-PreBuild スクリプトは、実際のビルドが開始される前、ただし Amplify が依存関係をインストールした後に実行されます。

  • build - お客様のビルドコマンド。

  • PostBuild-ビルドが完了し、Amplify がすべての必要なアーティファクトを出力ディレクトリにコピーした後にビルド後のスクリプトが実行されます。

ビルドパス

ビルドを実行するために使用するパス。Amplify はこのパスを使用してビルドアーティファクトを検索します。パスを指定しない場合、たとえばAmplifyはmonorepoアプリのルートを使用します。apps/app

アーティファクト > ベースディレクトリ

ビルドアーティファクトが存在するディレクトリ。

アーティファクト > ファイル

アーティファクトからデプロイするファイルを指定します。**/*すべてのファイルを含めるには、と入力します。

cache (キャッシュ)

buildspec の cache フィールドは、node_modules フォルダーなどのビルド時の依存関係をキャッシュするために使用され、お客様のアプリが組み込まれているパッケージマネージャーとフレームワークに基づいて自動的に提案されます。最初のビルドでは、ここにあるパスはすべてキャッシュされ、それ以降のビルドではキャッシュを再度膨張させ、可能な場合はキャッシュされた依存関係を使用してビルド時間を短縮します。

次のビルド仕様例は、基本的な YAML 構文を示しています。

version: 1 env: variables: key: value backend: phases: preBuild: commands: - *enter command* build: commands: - *enter command* postBuild: commands: - *enter command* frontend: buildpath: phases: preBuild: commands: - cd react-app - npm ci build: commands: - npm run build artifacts: files: - location - location discard-paths: yes baseDirectory: location cache: paths: - path - path test: phases: preTest: commands: - *enter command* test: commands: - *enter command* postTest: commands: - *enter command* artifacts: files: - location - location configFilePath: *location* baseDirectory: *location*

ブランチ固有のビルド設定

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

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

monoreposの場合、cdユーザーはフォルダーにアクセスしてビルドを実行できるようにしたいと考えています。cdコマンドを実行すると、ビルドのすべてのステージに適用されるため、別のフェーズでコマンドを繰り返す必要はありません。

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

バックエンドとフロントエンドのデプロイ

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

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

出力フォルダーの設定

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

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

ビルドの一部としてパッケージをインストールする

npmyarnビルド中にまたはコマンドを使用してパッケージをインストールできます。

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

プライベート npm レジストリを使用する

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

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 パッケージのインストール

OS パッケージをインストールして、不足している依存関係を入手します。

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

ビルドごとのキーと値のストレージ

envCacheはビルド時にキーバリューストレージを提供します。に保存されている値はenvCache、ビルド中にのみ変更でき、次のビルドで再利用できます。を使用するとenvCache、デプロイされた環境に関する情報を保存し、以降のビルドでビルドコンテナで利用できるようにすることができます。に保存されている値とは異なりenvCache、ビルド中の環境変数への変更は、将来のビルドには保持されません。

使用例:

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

ビルドをスキップしてコミットする

特定のコミットの自動ビルドをスキップするには、コミットメッセージの最後に [skip-cd] というテキストを含めてください。

自動ビルドを無効にする

コードコミットごとに自動ビルドを無効にするように Amplify を設定できます。設定するには、[アプリ設定]、[一般] を選択し、接続されているブランチを一覧表示する [ブランチ] セクションまでスクロールします。ブランチを選択し、[アクション]、[自動ビルドの無効化] を選択します。さらにそのブランチにコミットしても、新しいビルドは作成されません。

差分ベースのフロントエンドのビルドとデプロイを有効または無効にする

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

diff ベースのフロントエンドのビルドとデプロイを設定するには
  1. AWS Management Consoleにログインして Amplify コンソールを開きます

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

  3. ナビゲーションペインで、[アプリ設定]、[環境変数] を選択します。

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

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

    • 差分ベースのフロントエンドのビルドとデプロイを有効にするには

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

      2. [Value (値)] に「true」と入力します。

    • 差分ベースのフロントエンドのビルドとデプロイを無効にするには

      1. 以下のいずれかを実行します。

        • 変数の管理」セクションで、「」AMPLIFY_DIFF_DEPLOY を探します。[Value (値)] に「false」と入力します。

        • AMPLIFY_DIFF_DEPLOY環境変数を削除します。

  6. [Save] (保存) を選択します。

オプションで、デフォルトパスをリポジトリのルートを基準としたパス(など)AMPLIFY_DIFF_DEPLOY_ROOTで上書きするように環境変数を設定できます。dist

差分ベースのバックエンドビルドを有効または無効にする

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

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

diff ベースのバックエンドビルドを設定するには
  1. AWS Management Consoleにログインして Amplify コンソールを開きます

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

  3. ナビゲーションペインで、[アプリ設定]、[環境変数] を選択します。

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

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

    • 差分ベースのバックエンドビルドを有効にするには

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

      2. [Value (値)] に「true」と入力します。

    • diff ベースのバックエンドビルドを無効にするには

      1. 以下のいずれかを実行します。

        • 変数の管理」セクションで、「」AMPLIFY_DIFF_BACKEND を探します。[Value (値)] に「false」と入力します。

        • AMPLIFY_DIFF_BACKEND環境変数を削除します。

  6. [Save] (保存) を選択します。