部署變數

下列​ 部署 ​變數控制項動作位於部署階段,可以繼承及覆寫來自全域變數的值。 在.magento.env.yaml檔案的deploy階段中插入這些變數:

stage:
  deploy:
    DEPLOY_VARIABLE_NAME: value

如需自訂建置和部署程式的詳細資訊:

CACHE_CONFIGURATION

  • 預設未設定
  • 版本—Adobe Commerce 2.1.4和更新版本

設定Redis頁面和預設快取。 設定cm_cache_backend_redis引數時,您必須指定serverportdatabase選項。

stage:
  deploy:
    CACHE_CONFIGURATION:
      frontend:
        default:
          backend: file
        page_cache:
          backend: file

依照預設,部署程式會覆寫env.php檔案中的所有設定;不過,您可以選擇合併服務組態的一或多個值,而不覆寫所有值。

_merge選項設定為下列其中一項:

  • true將設定的服務值與環境變數值合併
  • false以環境變數值覆寫 ​設定的服務值。

以下範例會將新值合併至現有設定:

stage:
  deploy:
    CACHE_CONFIGURATION:
      _merge: true
      frontend:
        default:
          backend_options:
            database: 10
        page_cache:
          backend_options:
            database: 11

下列範例使用​ 設定指南 ​中定義的Redis預先載入功能

stage:
  deploy:
    CACHE_CONFIGURATION:
      _merge: true
      frontend:
        default:
          id_prefix: '061_'
          backend_options:
            preload_keys:
              - '061_EAV_ENTITY_TYPES:hash'
              - '061_GLOBAL_PLUGIN_LIST:hash'
              - '061_DB_IS_UP_TO_DATE:hash'
              - '061_SYSTEM_DEFAULT:hash'

若要使用自訂REDIS_BACKEND模型(不僅來自允許清單),請將_custom_redis_backend選項設定為true以啟用正確的驗證,如下列範例所示:

stage:
  deploy:
    CACHE_CONFIGURATION:
      frontend:
        default:
          _custom_redis_backend: true
          backend: '\CustomRedisModel'

CLEAN_STATIC_FILES

  • 預設true
  • 版本—Adobe Commerce 2.1.4和更新版本

啟用或停用清除在建置或部署階段產生的靜態內容檔案。 在開發中使用預設值​ true ​作為最佳實務。

  • true — 在部署更新的靜態內容之前,移除所有現有的靜態內容。
  • false — 如果產生的內容包含較新的版本,部署只會覆寫現有的靜態內容檔案。

如果您透過個別程式修改靜態內容,請將值設為​ false

stage:
  deploy:
    CLEAN_STATIC_FILES: false

如果在部署之前未清除靜態檢視檔案,則在不移除先前版本的情況下將更新部署到現有檔案時,可能會導致問題。 由於靜態檔案遞補規則,如果目錄包含相同檔案的多個版本,則遞補作業可能會顯示錯誤的檔案。

CRON_CONSUMERS_RUNNER

  • 預設cron_run = falsemax_messages = 1000
  • 版本—Adobe Commerce 2.2.0和更新版本

使用此環境變數來確認訊息佇列在部署後是否執行。

  • cron_run — 啟用或停用consumers_runner cron工作(預設= false)的布林值。

  • max_messages — 指定每個消費者在終止前必須處理的最大訊息數(預設值= 1000)的數字。 您可以將值設為0以防止消費者終止。

  • consumers — 字串陣列,指定要執行的使用者。 空陣列執行​ 所有 ​消費者。

  • multiple_processes — 指定每個取用者要衍生的處理序數目。 在Commerce 2.4.4 ​或更新版本中支援。

NOTE
若要傳回訊息佇列consumers的清單,請在遠端環境中執行./bin/magento queue:consumers:list命令。

執行特定consumers且要為每個取用者衍生multiple_processes的陣列範例:

stage:
  deploy:
    CRON_CONSUMERS_RUNNER:
      cron_run: true
      max_messages: 1000
      consumers:
        - example_consumer_1
        - example_consumer_2
-     multiple_processes:
        example_consumer_1: 4
        example_consumer_2: 3

執行全部consumers的空白陣列範例:

stage:
  deploy:
    CRON_CONSUMERS_RUNNER:
      cron_run: true
      max_messages: 1000
      consumers: []

依預設,部署程式會覆寫env.php檔案中的所有設定。 請參閱內部部署Adobe Commerce的​ Commerce設定指南 ​中的管理訊息佇列

CONSUMERS_WAIT_FOR_MAX_MESSAGES

  • 預設false
  • 版本—Adobe Commerce 2.2.0和更新版本

選擇下列其中一個選項,設定consumers處理訊息佇列訊息的方式:

  • falseConsumers處理佇列中的可用訊息,關閉TCP連線,然後終止。 即使已處理的訊息數小於CRON_CONSUMERS_RUNNER部署變數中指定的max_messages值,Consumers也不要等候其他訊息進入佇列。

  • trueConsumers繼續處理來自訊息佇列的訊息,直到達到CRON_CONSUMERS_RUNNER部署變數中指定的訊息數目上限(max_messages)為止,然後再關閉TCP連線並終止消費者處理序。 如果佇列在到達max_messages之前排空,消費者會等待更多訊息到達。

WARNING
如果您使用背景工作來執行consumers,而不是使用cron工作,請將此變數設為true。
stage:
  deploy:
    CONSUMERS_WAIT_FOR_MAX_MESSAGES: false

CRYPT_KEY

  • 預設未設定
  • 版本—Adobe Commerce 2.1.4和更新版本
WARNING
透過Cloud Console而非.magento.env.yaml檔案設定CRYPT_KEY值,以避免公開您環境的原始程式碼存放庫中的金鑰。 請參閱設定環境和專案變數

將資料庫從一個環境移動到另一個環境時,若沒有安裝程式,則需要相應的密碼編譯資訊。 Adobe Commerce使用Cloud Console中設定的加密金鑰值做為env.php檔案中的crypt/key值。

DATABASE_CONFIGURATION

  • 預設未設定
  • 版本—Adobe Commerce 2.1.4和更新版本

如果您在.magento.app.yaml檔案的關聯屬性中定義資料庫,您可以自訂資料庫連線以進行部署。

stage:
  deploy:
    DATABASE_CONFIGURATION:
      some_config: 'some_value'

依照預設,部署程式會覆寫env.php檔案中的所有設定;不過,您可以選擇合併服務組態的一或多個值,而不覆寫所有值。

_merge選項設定為下列其中一項:

  • true將設定的服務值與環境變數值合併
  • false以環境變數值覆寫 ​設定的服務值。

以下範例會將新值合併至現有設定:

stage:
  deploy:
    DATABASE_CONFIGURATION:
      some_config: 'some_new_value'
      _merge: true

您也可以設定表格首碼。

WARNING
如果您未將合併選項與表格首碼搭配使用,則必須提供預設連線設定,否則部署會驗證失敗。

下列範例使用具有預設連線設定的ece_表格首碼,而非使用_merge選項:

stage:
  deploy:
    DATABASE_CONFIGURATION:
      connection:
        default:
          username: user
          host: host
          dbname: magento
          password: password
      table_prefix: 'ece_'

範例輸出:

MariaDB [main]> SHOW TABLES;
+-------------------------------------+
| Tables_in_main                      |
+-------------------------------------+
| ece_admin_passwords                 |
| ece_admin_system_messages           |
| ece_admin_user                      |
| ece_admin_user_session              |
| ece_adminnotification_inbox         |
| ece_amazon_customer                 |
| ece_authorization_rule              |
| ece_cache                           |
| ece_cache_tag                       |
| ece_captcha_log                     |
...

ELASTICSUITE_CONFIGURATION

  • 預設未設定
  • 版本—Adobe Commerce 2.2.0和更新版本

在部署之間保留自訂的Elastic Suite服務設定,並在主要Elastic Suite設定的'system/default/smile_elasticsuite_core_base_settings'區段中使用它。 如果已安裝Elastic Suite Composer套件,則會自動設定它。

stage:
  deploy:
    ELASTICSUITE_CONFIGURATION:
      es_client:
        servers: 'remote-host:9200'
      indices_settings:
        number_of_shards: 1
        number_of_replicas: 0

依照預設,部署程式會覆寫env.php檔案中的所有設定;不過,您可以選擇合併服務組態的一或多個值,而不覆寫所有值。

_merge選項設定為下列其中一項:

  • true將設定的服務值與環境變數值合併
  • false以環境變數值覆寫 ​設定的服務值。

以下範例會將新值合併至現有設定:

stage:
  deploy:
    ELASTICSUITE_CONFIGURATION:
      indices_settings:
        number_of_shards: 3
        number_of_replicas: 2
      _merge: true

已知限制

  • 將搜尋引擎變更為elasticsuite以外的任何型別會導致部署失敗,並伴隨適當的驗證錯誤
  • 移除Elasticsearch服務會導致部署失敗,並伴隨適當的驗證錯誤
NOTE
如需搭配Adobe Commerce使用或疑難排解Elastic Suite外掛程式的詳細資訊,請參閱Elastic Suite 檔案

ENABLE_GOOGLE_ANALYTICS

  • 預設false
  • 版本—Adobe Commerce 2.1.4和更新版本

在部署至中繼和整合環境時,啟用和停用Google Analytics。 依預設,Google Analytics僅適用於生產環境。 將此值設定為true以啟用中繼和整合環境中的Google Analytics。

  • true — 啟用中繼和整合環境上的Google Analytics。
  • false — 停用中繼和整合環境上的Google Analytics。

ENABLE_GOOGLE_ANALYTICS環境變數新增至.magento.env.yaml檔案中的deploy階段:

stage:
  deploy:
    ENABLE_GOOGLE_ANALYTICS: true
NOTE
部署程式一律會在生產環境中啟用Google Analytics。

FORCE_UPDATE_URLS

  • 預設true
  • 版本—Adobe Commerce 2.1.4和更新版本

在部署至Pro或Starter Staging and Production環境時,此變數會以MAGENTO_CLOUD_ROUTES變數指定的專案URL取代資料庫中的Adobe Commerce基底URL。 使用此設定覆寫UPDATE_URLS部署變數的預設行為,在部署到中繼或生產環境時會忽略此預設行為。

stage:
  deploy:
    FORCE_UPDATE_URLS: true

LOCK_PROVIDER

  • 預設file
  • 版本—Adobe Commerce 2.2.5和更新版本

鎖定提供者可防止啟動重複的cron作業和cron群組。 在生產環境中使用file鎖定提供者。 入門環境和Pro整合環境不使用MAGENTO_CLOUD_LOCKS_DIR變數,因此ece-tools會自動套用db鎖定提供者。

stage:
  deploy:
    LOCK_PROVIDER: "db"

請參閱​ 安裝指南 ​中的設定鎖定

MYSQL_USE_SLAVE_CONNECTION

  • 預設false
  • 版本—Adobe Commerce 2.1.4和更新版本
TIP
MYSQL_USE_SLAVE_CONNECTION變數僅在雲端基礎結構測試和生產Pro叢集環境的Adobe Commerce上受支援,且在入門專案上不受支援。

Adobe Commerce可以非同步讀取多個資料庫。 設定為true可自動使用資料庫的​ 唯讀 ​連線,以接收非主節點上的唯讀流量。 此連線透過負載平衡來改善效能,因為只有一個節點處理讀寫流量。 設定為false以從env.php檔案中移除任何現有的唯讀連線陣列。

stage:
  deploy:
    MYSQL_USE_SLAVE_CONNECTION: true

MYSQL_USE_SLAVE_CONNECTION變數設為true時,在Pro測試和生產環境的env.php檔案中,synchronous_replication引數預設為true。 當MYSQL_USE_SLAVE_CONNECTION設定為false時,未設定synchronous_replication引數。

QUEUE_CONFIGURATION

  • 預設未設定
  • 版本—Adobe Commerce 2.1.4和更新版本

使用此環境變數可保留部署間的自訂AMQP服務設定。 例如,如果您偏好使用現有的訊息佇列服務,而不仰賴雲端基礎結構為您建立它,請使用QUEUE_CONFIGURATION環境變數將其連線到您的網站:

stage:
  deploy:
    QUEUE_CONFIGURATION:
      amqp:
        host: test.host
        port: 1234
      amqp2:
        host: test.host2
        port: 12345
      mq:
        host: mq.host
        port: 1234

依照預設,部署程式會覆寫env.php檔案中的所有設定;不過,您可以選擇合併服務組態的一或多個值,而不覆寫所有值。

_merge選項設定為下列其中一項:

  • true將設定的服務值與環境變數值合併
  • false以環境變數值覆寫 ​設定的服務值。

以下範例會將新值合併至現有設定:

stage:
  deploy:
    QUEUE_CONFIGURATION:
      _merge: true
      amqp:
        host: changed1.host
        port: 5672
      amqp2:
        host: changed2.host2
        port: 12345
      mq:
        host: changedmq.host
        port: 1234

REDIS_BACKEND

  • 預設Cm_Cache_Backend_Redis
  • 版本—Adobe Commerce 2.3.0和更新版本

指定Redis快取的後端模型設定。

Adobe Commerce 2.3.0版和更新版本包含下列後端模型:

  • Cm_Cache_Backend_Redis
  • \Magento\Framework\Cache\Backend\Redis
  • \Magento\Framework\Cache\Backend\RemoteSynchronizedCache

如何設定REDIS_BACKEND的範例

stage:
  deploy:
    REDIS_BACKEND: '\Magento\Framework\Cache\Backend\RemoteSynchronizedCache'
NOTE
如果您指定\Magento\Framework\Cache\Backend\RemoteSynchronizedCache作為Redis後端模型以啟用L2快取ece-tools會自動產生快取組態。 請參閱​_Adobe Commerce組態指南_​中的組態檔範例。 若要覆寫產生的快取組態,請使用CACHE_CONFIGURATION部署變數。

REDIS_USE_SLAVE_CONNECTION

  • 預設false
  • 版本—Adobe Commerce 2.1.16和更新版本
WARNING
請​_不_​在縮放的架構專案上啟用此變數。 這會導致Redis連線錯誤。 Redis從屬仍然有效,但不會用於Redis讀取。 作為替代方法,Adobe建議使用Adobe Commerce 2.3.5或更新版本,實作新的Redis後端設定,並實作Redis的L2快取。
TIP
REDIS_USE_SLAVE_CONNECTION變數僅在雲端基礎結構測試和生產Pro叢集環境的Adobe Commerce上受支援,且在入門專案上不受支援。

Adobe Commerce可以非同步方式讀取多個Redis執行個體。 設定為true可自動使用與Redis執行個體的​ 唯讀 ​連線,以接收非主節點上的唯讀流量。 此連線透過負載平衡來改善效能,因為只有一個節點處理讀寫流量。 設定為false以從env.php檔案中移除任何現有的唯讀連線陣列。

stage:
  deploy:
    REDIS_USE_SLAVE_CONNECTION: true

您必須在.magento.app.yaml檔案和services.yaml檔案中設定Redis服務。

ECE-Tools 2002.0.18版和更新版本使用更多容錯設定。 如果Adobe Commerce無法從Redis slave ​執行個體讀取資料,則會從Redis master ​執行個體讀取資料。

唯讀連線無法用於整合環境,或您使用CACHE_CONFIGURATION變數

RESOURCE_CONFIGURATION

  • 預設 — 未設定
  • 版本—Adobe Commerce 2.1.4和更新版本

將資源名稱對應到資料庫連線。 此設定對應至env.php檔案的resource區段。

依照預設,部署程式會覆寫env.php檔案中的所有設定;不過,您可以選擇合併服務組態的一或多個值,而不覆寫所有值。

_merge選項設定為下列其中一項:

  • true將設定的服務值與環境變數值合併
  • false以環境變數值覆寫 ​設定的服務值。

以下範例會將新值合併至現有設定:

stage:
  deploy:
    RESOURCE_CONFIGURATION:
      _merge: true
      default_setup:
        connection: default

SCD_COMPRESSION_LEVEL

  • 預設4
  • 版本—Adobe Commerce 2.1.4和更新版本

指定壓縮靜態內容時要使用的gzip壓縮等級(09);0會停用壓縮。

stage:
  deploy:
    SCD_COMPRESSION_LEVEL: 5

SCD_COMPRESSION_TIMEOUT

  • 預設600
  • 版本—Adobe Commerce 2.1.4和更新版本

當壓縮靜態資產所花的時間超過壓縮逾時限制時,就會中斷部署程式。 設定靜態內容壓縮命令的執行時間上限(秒)。

stage:
  deploy:
    SCD_COMPRESSION_TIMEOUT: 800

SCD_MATRIX

  • 預設未設定
  • 版本—Adobe Commerce 2.1.4和更新版本

您可以為每個主題設定多個地區設定。 此自訂功能可減少不必要的佈景主題檔案數目,進而加快部署程式。 例如,您可以部署英文版的​ magento/backend ​佈景主題,以及其他語言版的自訂佈景主題。

下列範例會部署Magento/backend佈景主題與三種地區設定:

stage:
  deploy:
    SCD_MATRIX:
      "magento/backend":
        language:
          - en_US
          - fr_FR
          - af_ZA

此外,您可以選擇​ ​部署佈景主題:

stage:
  deploy:
    SCD_MATRIX:
      "magento/backend": [ ]

SCD_MAX_EXECUTION_TIME

  • 預設未設定
  • 版本—Adobe Commerce 2.2.0和更新版本

可讓您增加靜態內容部署的最大預期執行時間。

依預設,Adobe Commerce會將最大預期執行時間設為900秒,但在某些情況下,您可能需要更多時間才能完成雲端專案的靜態內容部署。

stage:
  deploy:
    SCD_MAX_EXECUTION_TIME: 3600
WARNING
如果您在部署後應用程式中的靜態內容檔案出現問題(例如遺失自訂主題檔案),請將最大預期執行時間增加至900秒或以上。

SCD_NO_PARENT

  • 預設false
  • 版本—Adobe Commerce 2.4.2和更新版本

在部署階段中,設定SCD_NO_PARENT: true,以便在部署階段中不會產生父系主題的靜態內容。 此設定將部署時間縮到最短,並防止在部署期間靜態內容建置失敗時可能發生的網站停機時間。 請參閱靜態內容部署

stage:
  deploy:
    SCD_NO_PARENT: true

SCD_STRATEGY

  • 預設quick
  • 版本—Adobe Commerce 2.2.0和更新版本

可讓您自訂靜態內容的部署策略。 請參閱部署靜態檢視檔案

如果您有多個地區設定,請只使用這些選項​ 1}:

  • standard — 為所有封裝部署所有靜態檢視檔案。
  • quick — (預設)可縮短部署時間。
  • compact — 節省伺服器上的磁碟空間。 在Adobe Commerce 2.2.4版和更早版本中,此設定會以1的值覆寫scd_threads的值。
stage:
  deploy:
    SCD_STRATEGY: "compact"

SCD_THREADS

  • 預設 — 自動
  • 版本—Adobe Commerce 2.1.4和更新版本

設定靜態內容部署的執行緒數目。 預設值是根據偵測到的CPU執行緒計數而設定,不會超過4的值。 增加執行緒數目會加速靜態內容部署;減少執行緒數目會減慢速度。 您可以設定螺紋值,例如:

stage:
  deploy:
    SCD_THREADS: 2

若要進一步縮短部署時間,請使用組態管理搭配scd-dump命令,將靜態部署移至建置階段。

SEARCH_CONFIGURATION

  • 預設未設定
  • 版本—Adobe Commerce 2.1.4和更新版本

使用此環境變數,可保留部署間的自訂搜尋服務設定。 例如:

Elasticsearch設定:

stage:
  deploy:
    SEARCH_CONFIGURATION:
      engine: elasticsearch
      elasticsearch_server_hostname: http://elasticsearch.internal
      elasticsearch_server_port: '9200'
      elasticsearch_index_prefix: magento2
      elasticsearch_server_timeout: '15'

OpenSearch設定(適用於Commerce 2.4.6和更新版本):

stage:
  deploy:
    SEARCH_CONFIGURATION:
      engine: opensearch
      opensearch_server_hostname: 'http://opensearch.internal'
      opensearch_server_port: '9200'
      opensearch_index_prefix: 'magento2'
      opensearch_server_timeout: '15'

依照預設,部署程式會覆寫env.php檔案中的所有設定;不過,您可以選擇合併服務組態的一或多個值,而不覆寫所有值。

_merge選項設定為下列其中一項:

  • true將設定的服務值與環境變數值合併
  • false以環境變數值覆寫 ​設定的服務值。

以下範例會將新值合併至現有設定:

stage:
  deploy:
    SEARCH_CONFIGURATION:
      engine: elasticsearch
      elasticsearch_server_port: '9200'
      _merge: true

SESSION_CONFIGURATION

  • 預設未設定
  • 版本—Adobe Commerce 2.1.4和更新版本

設定Redis工作階段存放區。 需要工作階段存放區變數的saveredishostportdatabase選項。 例如:

stage:
  deploy:
    SESSION_CONFIGURATION:
      redis:
        bot_first_lifetime: 100
        bot_lifetime: 10001
        database: 0
        disable_locking: 1
        host: redis.internal
        max_concurrency: 10
        max_lifetime: 10001
        min_lifetime: 100
        port: 6379
      save: redis

依照預設,部署程式會覆寫env.php檔案中的所有設定;不過,您可以選擇合併服務組態的一或多個值,而不覆寫所有值。

_merge選項設定為下列其中一項:

  • true將設定的服務值與環境變數值合併
  • false以環境變數值覆寫 ​設定的服務值。

以下範例會將新值合併至現有設定:

stage:
  deploy:
    SESSION_CONFIGURATION:
      _merge: true
      redis:
        max_concurrency: 10

SKIP_SCD

  • 預設未設定
  • 版本—Adobe Commerce 2.1.4和更新版本

設定為true可在部署階段期間略過靜態內容部署。

在部署階段中,設定SKIP_SCD: true,以便在部署階段中不會發生靜態內容建置。 此設定將部署時間縮到最短,並防止在部署期間靜態內容建置失敗時可能發生的網站停機時間。 請參閱靜態內容部署

stage:
  deploy:
    SKIP_SCD: true

UPDATE_URLS

  • 預設true
  • 版本—Adobe Commerce 2.1.4和更新版本

部署時,將資料庫中的Adobe Commerce基底URL取代為MAGENTO_CLOUD_ROUTES變數指定的專案URL。 此設定對於本機開發非常有用,因為在本機環境中會設定基本URL。 當您部署至雲端環境時,URL會更新,以便您可以使用專案URL存取店面和管理員。

如果您在部署至Pro或Starter測試和生產環境時必須更新URL,請使用FORCE_UPDATE_URLS變數。

stage:
  deploy:
    UPDATE_URLS: false

VERBOSE_COMMANDS

  • 預設未設定
  • 版本—Adobe Commerce 2.1.4和更新版本

啟用或停用部署階段所執行bin/magento CLI命令的Symfony偵錯詳細程度。

NOTE
若要使用VERBOSE_COMMANDS設定來控制命令輸出中成功和失敗的bin/magento CLI命令的詳細資料,您必須設定MIN_LOGGING_LEVEL debug

選擇記錄中提供的詳細資訊等級:

  • -v=一般輸出
  • -vv=其他詳細資訊輸出
  • -vvv =詳細輸出,適用於偵錯
stage:
  deploy:
    VERBOSE_COMMANDS: "-vv"
recommendation-more-help
05f2f56e-ac5d-4931-8cdb-764e60e16f26