デプロイメント用の環境変数の設定

.magento.env.yaml ファイルでは、環境変数を使用して、Pro ステージングと実稼動環境を含むすべての環境でビルドとデプロイのアクションを一元管理します。 各環境で一意のアクションを設定するには、各環境でこのファイルを変更する必要があります。

TIP
YAML ファイルでは大文字と小文字が区別され、タブは使用できません。 .magento.env.yaml ファイル全体で一貫したインデントを使用するように注意してください。そうしないと、設定が期待どおりに動作しない可能性があります。 ドキュメントとサンプルファイルの例では、2つのスペース​のインデントが使用されています。 ece-tools validate コマンド ​を使用して、設定を確認します。

ファイル構造

.magento.env.yaml ファイルには、stagelogの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 ファイルの環境変数は、既存のCommerce設定を上書きしてCloud環境をカスタマイズします。 デフォルト値がNot Setの場合、ece-tools パッケージは​NO アクションを実行し、CommerceのデフォルトまたはMAGENTO_CLOUD_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つの引数(少なくとも1つのビルド、デプロイ、デプロイ後の変数の値を指定する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
WARNING
3.2より前のバージョンの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

修正を加え、コミットし、変更をプッシュします。 エラーメッセージが表示されない場合は、設定ファイルの変更が検証に渡されます。

設定管理の最適化

設定をダンプした後に構成管理を有効にした場合は、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:
      ...
recommendation-more-help
commerce-on-cloud-help-cloud-guide