デプロイメント用の環境変数の設定
.magento.env.yaml
ファイルでは、環境変数を使用して、ステージング環境や実稼動環境を含むすべての環境で、ビルドおよびデプロイアクションの管理を一元化します。 各環境で一意のアクションを設定するには、各環境でこのファイルを変更する必要があります。
.magento.env.yaml
ファイル全体で一貫性のあるインデントを使用するように注意してください。使用しないと、設定が期待どおりに動作しない場合があります。 ドキュメントとサンプルファイルの例では、2 スペース インデントを使用しています。 ece-tools validate コマンドを使用して、設定を確認します。ファイル構造
.magento.env.yaml
ファイルには、stage
と log
の 2 つのセクションがあります。 stage
の節では、 クラウドデプロイメントプロセスの各段階で行われるアクションを制御します。
-
stage
- 「ステージ」セクションを使用して、次のデプロイメントのステージに対する特定のアクションを定義します。global
- ビルド、デプロイ、およびデプロイ後の両方のフェーズでアクションを制御します。 これらの設定は、ビルド、デプロイ、デプロイ後のセクションで上書きできます。build
– 構築フェーズのアクションのみを制御します。 このセクションで設定を指定しない場合、ビルドフェーズではグローバルセクションの設定が使用されます。deploy
– 配置フェーズのアクションのみを制御します。 このセクションで設定を指定しない場合、デプロイフェーズではグローバルセクションの設定が使用されます。post-deploy
- アプリケーションのデプロイ 後 アクションを制御し、コンテナは接続の受け入れを開始 後 します。
-
log
- 「ログ」セクションを使用して、通知のタイプや詳細レベルを含む 通知を構成します。slack
- Slackボットに送信するメッセージを設定します。email
- 1 人または複数の電子メール受信者に送信する電子メールを設定します。- ログハンドラー- リモートログサーバーに送信されるハードウェアおよびソフトウェアアプリケーションメッセージを設定します。
環境変数
ece-tools
パッケージは、 クラウド変数、Cloud Console で設定された変数、.magento.env.yaml
設定ファイルの値に基づいて env.php
ファイルの値を設定します。 .magento.env.yaml
ファイルの環境変数は、既存の Cloud Configuration を上書きしてCommerce環境をカスタマイズします。 デフォルト値が Not Set
の場合、ece-tools
パッケージは NO アクションを実行し、Commerce のデフォルトまたはMAGENTOCLOUD_RELATIONSHIPS 設定の値を使用します。 デフォルト値が設定されている場合、ece-tools
パッケージはそのデフォルト値を設定します。
次のトピックには、.magento.env.yaml
ファイルで使用できるすべての変数に関する詳細な定義(デフォルト値が設定されているかどうかなど)が含まれています。
CLI からの構成ファイルの作成
次の ece-tools
コマンドを使用して、クラウド環境用の .magento.env.yaml
設定ファイルを生成できます。
設定ファイルを作成します
php ./vendor/bin/ece-tools cloud:config:create `<configuration-json>`
設定ファイルの値を更新
php ./vendor/bin/ece-tools cloud:config:update `<configuration-json>`
両方のコマンドには単一の引数が必要です。少なくとも 1 つの build、deploy または post-deploy 変数の値を指定する JSON 形式の配列です。 例えば、次のコマンドは、SCD_THREADS
変数と CLEAN_STATIC_FILES
変数の値を設定します。
php vendor/bin/ece-tools cloud:config:create '{"stage":{"build":{"SCD_THREADS":5}, "deploy":{"CLEAN_STATIC_FILES":false}}}'
次の設定で .magento.env.yaml
ファイルを作成します。
stage:
build:
SCD_THREADS: 5
deploy:
CLEAN_STATIC_FILES: false
cloud:config:update
コマンドを使用して、新しいファイルを更新できます。 例えば、次のコマンドは SCD_THREADS
の値を変更し、SCD_COMPRESSION_TIMEOUT
の設定を追加します。
php vendor/bin/ece-tools cloud:config:update '{"stage":{"build":{"SCD_THREADS":3, "SCD_COMPRESSION_TIMEOUT":1000}}}'
更新されたファイルには、次の設定が含まれています。
stage:
build:
SCD_THREADS: 3
SCD_COMPRESSION_TIMEOUT: 1000
deploy:
CLEAN_STATIC_FILES: false
設定ファイルを検証
次の ece-tools
コマンドを使用して、変更をリモートクラウド環境にプッシュする前に .magento.env.yaml
設定ファイルを検証します。
php ./vendor/bin/ece-tools cloud:config:validate
次の応答例では、修正する項目のリストを示します。
Environment configuration is not valid. Correct the following items in your .magento.env.yaml file:
The SCD_THREADS variable contains an invalid value of type string. Use the following type: integer.
The SCD_STRATEGY variable contains an invalid value fast. Use one of the available value options: compact, quick, standard.
The NOT_EXIST_OPTION variable is not allowed in configuration.
PHP 定数
.magento.env.yaml
ファイル定義では、値をハードコーディングする代わりに PHP 定数を使用できます。 次の例では、PHP 定数を使用して driver_options
を定義します。
stage:
deploy:
DATABASE_CONFIGURATION:
connection:
default:
driver_options:
!php/const:\PDO::MYSQL_ATTR_LOCAL_INFILE : 1
indexer:
driver_options:
!php/const:\PDO::MYSQL_ATTR_LOCAL_INFILE : 1
_merge: true
symfony/yaml
パッケージバージョンを使用している場合、定数の解析は機能しません。エラー処理
.magento.env.yaml
設定ファイル内の予期しない値が原因でエラーが発生した場合は、エラーメッセージが表示されます。 例えば、次のエラーメッセージは、各項目に対して提案された変更のリストを予期しない値で表示し、場合によっては有効なオプションを提供します。
- Environment configuration is not valid. Please correct .magento.env.yaml file with next suggestions:
Item CRON_CONSUMERS_RUNNER is not supposed to be in stage build. Please move it to one of possible stages: global, deploy
Item SKIP_SCD has unexpected type string. Please use one of next types: boolean
Item VERBOSE_COMMANDS has unexpected type boolean. Please use one of next types: string
Item SKIP_HTML_MINIFICATION has unexpected type string. Please use one of next types: boolean
Item CRON_CONSUMERS_RUNNER has unexpected type boolean. Please use one of next types: array
Item VAR_WARM_UP_PAGES is not allowed in configuration.
Item WARM_UP_PAGES has unexpected type string. Please use one of next types: array
修正を加え、コミットし、変更をプッシュします。 エラーメッセージが表示されない場合は、設定ファイルに対する変更が検証をパスします。
構成管理の最適化
設定のダンプ後に Configuration Management を有効にした場合は、SCD_*変数をデプロイからビルドステージに移動する必要があります。 静的コンテンツデプロイメント戦略を参照してください。
構成管理前:
deploy:
CRON_CONSUMERS_RUNNER:
cron_run: true
consumers: []
SCD_STRATEGY: compact
SCD_MATRIX:
...
REDIS_USE_SLAVE_CONNECTION: 1
設定管理を有効にした後、SCD_*変数をビルドステージに移動します。
deploy:
CRON_CONSUMERS_RUNNER:
cron_run: true
consumers: []
REDIS_USE_SLAVE_CONNECTION: 1
build:
SCD_STRATEGY: compact
SCD_MATRIX:
...