

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

# プラットフォームフック
<a name="platforms-linux-extend.hooks"></a>

プラットフォームフックは、環境のプラットフォームを拡張するために特別に設計されています。これらは、アプリケーションのソースコードの一部としてデプロイするカスタムスクリプトおよび他の実行可能ファイルで、Elastic Beanstalk によって、さまざまなインスタンスプロビジョニング段階で実行されます。

**注記**  
プラットフォームフックは、Amazon Linux AMI プラットフォームのバージョン (Amazon Linux 2 より前) ではサポートされていません。

## アプリケーションのデプロイプラットフォームフック
<a name="platforms-linux-extend.hooks.appdeploy"></a>

*アプリケーションのデプロイ*は、デプロイ用の新しいソースバンドルを提供する場合、またはすべての環境インスタンスの終了および再作成が必要な設定の変更を行う場合に発生します。

アプリケーションのデプロイ中に実行されるプラットフォームフックを提供するには、ソースバンドルの `.platform/hooks` ディレクトリの下にある以下のサブディレクトリのいずれかにファイルを配置します。
+ `prebuild` - ファイルは、Elastic Beanstalk プラットフォームエンジンがアプリケーションソースバンドルをダウンロードして抽出した後、アプリケーションとウェブサーバーをセットアップおよび設定する前に実行されます。

  `prebuild` ファイルは、設定ファイルの [commands](customize-containers-ec2.md#linux-commands)セクションにあるコマンドを実行した後、および `Buildfile` コマンドを実行する前に実行されます。
+ `predeploy` - ここでのファイルは、Elastic Beanstalk アプリケーションとウェブサーバーをセットアップして設定した後、最終的なランタイムの場所にデプロイする前に実行されます。

  `predeploy` ファイルは、設定ファイルの [container\$1commands](customize-containers-ec2.md#linux-container-commands)セクションにあるコマンドを実行した後、および `Procfile` コマンドを実行する前に実行されます。
+ `postdeploy` - ここでのファイルは、Elastic Beanstalk プラットフォームエンジンがアプリケーションとプロキシサーバーをデプロイした後に実行されます。

  これは、最後のデプロイワークフローのステップです。

## 設定デプロイプラットフォームフック
<a name="platforms-linux-extend.hooks.configdeploy"></a>

*設定デプロイ*は、環境インスタンスを再作成せずに更新だけする設定変更を行った場合に発生します。次のオプションの変更は、設定を更新します。
+ [環境プロパティとプラットフォーム固有の設定](environments-cfg-softwaresettings.md)
+ [静的ファイル](environment-cfg-staticfiles.md)
+ [AWS X-Ray デーモン](environment-configuration-debugging.md)
+ [ログストレージおよびストリーミング](environments-cfg-logging.md)
+ アプリケーションポート (詳細については、「[リバースプロキシの設定](platforms-linux-extend.proxy.md)」を参照してください)

設定のデプロイ中に実行されるフックを提供するには、ソースバンドルの `.platform/confighooks` ディレクトリの下にフックを配置します。アプリケーションのデプロイフックと同じ 3 つのサブディレクトリが適用されます。

## プラットフォームフックの詳細
<a name="platforms-linux-extend.hooks.more"></a>

フックファイルは、バイナリファイル、またはインタプリタパスを含む `#!` 行で始まるスクリプトファイル (`#!/bin/bash` など) です。すべてのファイルには、実行アクセス許可が必要です。フックファイルの実行アクセス許可を設定するために `chmod +x` を使用します。2022 年 4 月 29 日以降にリリースされたすべての Amazon Linux 2023 および Amazon Linux 2 ベースのプラットフォームバージョンでは、Elastic Beanstalk はすべてのプラットフォームフックスクリプトに対して実行アクセス権限を自動的に付与します。この場合、実行アクセス権限を手動で付与する必要はありません。これらのプラットフォームのバージョンのリストについては、「*AWS Elastic Beanstalk リリースノートガイド*」で [2022 年 4 月 29 日](https://docs.aws.amazon.com/elasticbeanstalk/latest/relnotes/release-2022-04-29-linux.html#release-2022-04-29-linux.platforms) の Linux リリースノートを参照してください。

Elastic Beanstalk は、ファイル名の辞書順でこれらのディレクトリの各ファイルを実行します。すべてのファイルが `root` ユーザーとして実行されます。プラットフォームフックの現在の作業ディレクトリ (cwd) は、アプリケーションのルートディレクトリです。`prebuild` および `predeploy` ファイルの場合はアプリケーションのステージングディレクトリで、`postdeploy` ファイルの場合は現在のアプリケーションディレクトリです。いずれかのファイルが失敗した場合（ゼロ以外の終了コードで終了した場合）、デプロイは中止され、失敗します。

プラットフォームフックテキストスクリプトに Windows *キャリッジリターン/ラインフィード* (CRLF) 改行文字が含まれていると、失敗することがあります。ファイルを Windows ホストに保存してから Linux サーバーに転送した場合、ファイルには Windows CRLF の改行が含まれていることがあります。[2022 年 12 月 29 日](https://docs.aws.amazon.com/elasticbeanstalk/latest/relnotes/release-2022-12-29-linux.html)以降にリリースされたプラットフォームでは、Elastic Beanstalk でプラットフォームフックテキストファイル内の Windows CRLF 文字を *Linux ラインフィード* (LF) 改行文字に自動的に変換します。この日付より前にリリースされた Amazon Linux 2 プラットフォーム上でアプリケーションを実行する場合は、Windows CRLF 文字を Linux LF 文字に変換する必要があります。これを実現する方法の 1 つは、Linux ホストでスクリプトファイルを作成して保存することです。これらの文字を変換するツールはインターネットでも入手できます。

フックファイルは、アプリケーションオプションで定義したすべての環境プロパティ、およびシステム環境変数 `HOME`、`PATH`、および `PORT` にアクセスできます。

環境変数やその他の設定オプションの値をプラットフォームフックスクリプトに取り込むには、Elastic Beanstalk が環境インスタンスに提供する `get-config` ユーティリティを使用できます。詳細については、「[Elastic Beanstalk 環境用のプラットフォームスクリプトツール](custom-platforms-scripts.md)」を参照してください。