部署變數
下列 部署 變數控制項動作位於部署階段,可以繼承及覆寫來自全域變數的值。 在.magento.env.yaml
檔案的deploy
階段中插入這些變數:
stage:
deploy:
DEPLOY_VARIABLE_NAME: value
如需自訂建置和部署程式的詳細資訊:
CACHE_CONFIGURATION
- 預設—未設定
- 版本—Adobe Commerce 2.1.4和更新版本
設定Redis頁面和預設快取。 設定cm_cache_backend_redis
引數時,您必須指定server
、port
和database
選項。
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 = false
,max_messages = 1000
- 版本—Adobe Commerce 2.2.0和更新版本
使用此環境變數來確認訊息佇列在部署後是否執行。
-
cron_run
— 啟用或停用consumers_runner
cron工作(預設=false
)的布林值。 -
max_messages
— 指定每個消費者在終止前必須處理的最大訊息數(預設值=1000
)的數字。 您可以將值設為0
以防止消費者終止。 -
consumers
— 字串陣列,指定要執行的使用者。 空陣列執行 所有 消費者。 -
multiple_processes
— 指定每個取用者要衍生的處理序數目。 在Commerce 2.4.4 或更新版本中支援。
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
處理訊息佇列訊息的方式:
-
false
—Consumers
處理佇列中的可用訊息,關閉TCP連線,然後終止。 即使已處理的訊息數小於CRON_CONSUMERS_RUNNER
部署變數中指定的max_messages
值,Consumers
也不要等候其他訊息進入佇列。 -
true
—Consumers
繼續處理來自訊息佇列的訊息,直到達到CRON_CONSUMERS_RUNNER
部署變數中指定的訊息數目上限(max_messages
)為止,然後再關閉TCP連線並終止消費者處理序。 如果佇列在到達max_messages
之前排空,消費者會等待更多訊息到達。
consumers
,而不是使用cron工作,請將此變數設為true。stage:
deploy:
CONSUMERS_WAIT_FOR_MAX_MESSAGES: false
CRYPT_KEY
- 預設—未設定
- 版本—Adobe Commerce 2.1.4和更新版本
將資料庫從一個環境移動到另一個環境時,若沒有安裝程式,則需要相應的密碼編譯資訊。 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
您也可以設定表格首碼。
下列範例使用具有預設連線設定的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服務會導致部署失敗,並伴隨適當的驗證錯誤
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
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和更新版本
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'
\Magento\Framework\Cache\Backend\RemoteSynchronizedCache
作為Redis後端模型以啟用L2快取,ece-tools
會自動產生快取組態。 請參閱_Adobe Commerce組態指南_中的組態檔範例。 若要覆寫產生的快取組態,請使用CACHE_CONFIGURATION部署變數。REDIS_USE_SLAVE_CONNECTION
- 預設—
false
- 版本—Adobe Commerce 2.1.16和更新版本
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壓縮等級(0
到9
);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
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工作階段存放區。 需要工作階段存放區變數的save
、redis
、host
、port
和database
選項。 例如:
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偵錯詳細程度。
選擇記錄中提供的詳細資訊等級:
-v
=一般輸出-vv
=其他詳細資訊輸出-vvv
=詳細輸出,適用於偵錯
stage:
deploy:
VERBOSE_COMMANDS: "-vv"