設定服務
services.yaml檔案定義Adobe Commerce在雲端基礎結構上支援及使用的服務,例如MySQL、Redis或Valkey,以及Elasticsearch或OpenSearch。 您不需要訂閱外部服務提供者。
.magento/services.yaml檔案是在您專案的.magento目錄中本機管理的。 在部署期間,雲端基礎結構上的Adobe Commerce會使用此設定,為目標環境布建支援的服務。 .magento目錄會在部署後從遠端伺服器移除,因此部署的環境中不存在services.yaml。部署指令碼使用.magento目錄中的組態檔,以設定的服務布建環境。 如果服務包含在.magento.app.yaml檔案的relationships屬性中,您的應用程式便可使用它。 services.yaml檔案包含 型別 和 磁碟 值。 服務型別定義服務 名稱 和版本。
.magento/services.yaml中的服務組態與composer.json中定義的PHP和Composer套件相依性不同,且鎖定在composer.lock中。
套用服務變更的位置
變更服務設定會讓部署在環境中布建更新的服務,進而影響下列環境:
- 所有入門環境,包括生產
master - Pro整合環境
Pro服務支援
若要在「測試」或「生產」中請求並完成Pro服務升級,請遵循下列步驟:
-
若要僅在
Staging和Production環境中安裝或更新服務,請提交Adobe Commerce支援票證。在票證中,指定所需的服務變更,包括更新的
.magento.app.yaml和.magento/services.yaml檔案,並記下目標PHP版本。PHP版本、Composer更新、擴充功能和環境設定是自助服務變更。 Adobe可能需要更新New Relic代理程式,以取得PHP版本的相容性。 檢視 應用程式組態 中的PHP設定。
note important IMPORTANT 在票證表單中選取 Environment 欄位時,請使用Adobe的環境命名。 例如,即使您在內部呼叫該環境Dev,也選取「暫存」。 您可以在說明中提及您的內部名稱,但Environment欄位必須使用Adobe的命名法。 -
透過Adobe的兩部分程式確認升級排程:您先確認要求的日期與時間,然後支援將之提交至基礎結構團隊以進行最終確認。
生產變更(僅限Pro)需要至少提前兩個營業日通知,週末除外。 例如,Cloud Infrastructure團隊必須在前一個星期三前確認星期一升級。 在需求尖峰期間預期額外的前置時間。 為避免延遲,請在視窗之前至少48小時回應初始請求。 在您收到最終確認之前,不會將升級視為已排程。
note NOTE 提供UTC格式的維護時段。 中繼升級不會預先排程,通常會在請求當天完成。 RabbitMQ升級後,重新部署環境以重新初始化訊息佇列。 -
先在測試或整合環境中驗證升級,再在生產環境中進行排程。
在服務升級後的重新部署期間,由協力廠商模組、自訂程式碼或相依性相容性所導致的問題經常會出現。 若要一次驗證多個服務升級,合理的順序為Valkey或Redis、RabbitMQ、OpenSearch和MariaDB。 這不是必要順序。 資料庫升級具有最高的作業影響,因此應受到最慎重的影響。
Adobe無法保證生產維護期間能提早完成,因為時間取決於環境及所涉及的服務。 在規劃「生產」視窗時,請使用測試升級所花的時間作為實際估計。
-
在Adobe完成服務升級後,重新部署環境,讓變更生效,即使Adobe Commerce應用程式版本未變更。
如果升級包含OpenSearch,也要計畫完整重新索引。 Adobe無法保證服務升級的零停機時間,因此請規劃維護時段,以便有時間重新部署、視需要重新索引,以及在重新開啟網站之前驗證店面和管理員。
客戶在升級期間的可用性
在排定的生產升級期間,您的團隊或實作合作夥伴的代表必須線上上。 在低流量期間進行排程並不會讓升級作業自動進行。 Adobe可管理雲端基礎結構升級,但無法驗證您的應用程式行為、整合、自訂程式碼或業務工作流程。
可用的代表必須能夠:
- 監視升級期間和升級後的店面與重要業務交易。
- 回應 Adobe支援或雲端基礎結構團隊的問題。
- 確認整合、擴充功能、自訂、cron工作、佇列和其他客戶特定功能是否如預期般運作。
- 驗證業務關鍵工作流程,例如簽出、目錄檢視、搜尋、登入及訂單處理。
- 當升級內容與記錄檔仍然可用時,立即報告意外行為。
維護模式
維護模式無法取代客戶可用性。 維護模式會封鎖店面存取,但不會驗證應用程式服務、整合、佇列、cron工作、結帳或其他客戶專屬功能。
如果計畫工作需要維護模式,請與Adobe支援協調其使用,並遵循該升級的指示。 之後,在考量工作完成之前,請確認店面與重要工作流程正常運作。
預設與支援的服務
雲端基礎結構上的Adobe Commerce支援以下服務,這些服務可針對您的專案進行設定:
檢視已設定的服務和版本
您可以在目前的範本services.yaml檔案中檢視範例服務定義和磁碟值。 實際的預設和支援服務版本取決於您的Adobe Commerce版本和目前的雲端範本。
下列範例顯示services.yaml組態檔中的服務定義:
mysql:
type: mysql:11.8
disk: 5120
cache:
type: valkey:9.0
opensearch:
type: opensearch:3 # minor version not required; uses latest
disk: 1024
rabbitmq:
type: rabbitmq:4.3
disk: 1024
activemq-artemis:
type: activemq-artemis:2.42
disk: 1024
服務值
提供服務識別碼和服務型別組態type: <name>:<version>。 如果服務使用永久儲存體,則必須提供磁碟值。
使用以下格式:
<service-id>:
type: <name>:<version>
disk: <value-MB>
service-id
service-id值會識別專案中的服務。 您只能使用小寫字母數字字元: a到z和0到9,例如valkey。
此 service-id 值用於.magento.app.yaml組態檔的relationships屬性:
relationships:
valkey: "valkey:valkey"
您可以為每種服務型別的多個執行個體命名。 例如,您可以使用多個Valkey例項,一個用於工作階段,一個用於快取。
valkey:
type: valkey:<version>
valkey2:
type: valkey:<version>
重新命名services.yaml檔案中的服務:
- 使用您指定的新名稱建立服務之前的現有服務。
- 服務的所有現有資料都會被移除。 Adobe建議您先備份您的Starter環境,然後再變更現有服務的名稱。
type
type值指定服務名稱和版本。 例如:
mysql:
type: mysql:10.4
disk
disk值指定要配置給服務的永久磁碟儲存大小(以MB為單位)。 使用永久儲存體的服務(例如MySQL)必須提供磁碟值。 使用記憶體而非永久儲存體的服務(例如Valkey)不需要磁碟值。
mysql:
type: mysql:10.4
disk: 5120
目前每個專案的預設儲存容量為5 GB或5120 MB。 您可以在應用程式及其每項服務之間分配此金額。
服務關係
在雲端基礎結構專案的Adobe Commerce中,在.magento.app.yaml檔案中設定的服務關係會決定哪些服務可供您的應用程式使用。
您可以從$MAGENTO_CLOUD_RELATIONSHIPS環境變數擷取所有服務關係的設定資料。 設定資料包括服務名稱、型別和版本,以及任何必要的連線詳細資訊,例如連線埠號碼和登入認證。
驗證來自您本機開發環境的關係
-
從您的本機開發環境中,顯示使用中環境的關係。
code language-bash magento-cloud relationships -
確認回應中的
service和type。 回應會提供連線資訊,例如IP位址和連線埠號碼。縮寫的範例回應
code language-yaml valkey: - ... type: 'valkey:8.0' port: 6379 opensearch: - ... type: 'opensearch:3' port: 9200 database: - ... type: 'mysql:11.8' port: 3306
驗證遠端環境中的關係
-
使用SSH登入遠端環境。
-
列出在環境中設定的所有服務的關係設定資料。
code language-bash echo $MAGENTO_CLOUD_RELATIONSHIPS | base64 -d | json_pp或者,使用下列
ece-tools命令檢視關係:code language-bash php ./vendor/bin/ece-tools env:config:show services -
確認回應中的
service和type。 回應會提供連線資訊,例如IP位址、連線埠號碼,以及必要的使用者名稱和密碼認證。
服務版本
在雲端基礎結構上部署和測試的版本,會決定雲端基礎結構上Adobe Commerce的服務版本和相容性支援,這有時與Adobe Commerce內部部署支援的版本不同。 請參閱 安裝 指南中的系統需求,以取得Adobe已針對特定Adobe Commerce和Magento Open Source版本測試的協力廠商軟體相依性清單。
軟體EOL檢查
在部署程式期間,ece-tools套件會根據每個服務的生命週期結束(EOL)日期檢查已安裝的服務版本。
- 如果服務版本在EOL日期後的三個月內,部署記錄中會顯示通知。
- 如果EOL日期是過去,則會顯示警告通知。
為維護商店安全性,請在已安裝軟體版本到達EOL之前更新這些版本。 您可以在ece-tools’ eol.yaml檔案中檢閱EOL日期。
移轉至OpenSearch
若為Adobe Commerce 2.4.4版或更新版本,請參閱設定OpenSearch服務。
變更服務版本
您可以升級已安裝的服務版本,使其與雲端環境中部署的Adobe Commerce版本相容。
您無法直接將已安裝服務的服務版本降級。 不過,您可以建立具有所需版本的服務。 請參閱降級服務版本。
升級已安裝的服務版本
您可以更新services.yaml檔案中的服務組態來升級已安裝的服務版本。
-
變更
.magento/services.yaml檔案中服務的type值:原始服務定義
code language-yaml mysql: type: mysql:11.8 disk: 2048已更新服務定義
code language-yaml mysql: type: mysql:12.3 disk: 5120 -
新增、提交和推送您的程式碼變更。
code language-bash git add .magento/services.yamlcode language-bash git commit -m "Upgrade MySQL from MariaDB 11.8 to 12.3."code language-bash git push origin <branch-name>
降級版本
您無法直接降級已安裝的服務。 您有兩個選項:
-
以新版本重新命名現有服務,移除現有服務和資料,並新增新服務和資料。
-
建立服務並儲存現有服務的資料。
當您變更服務版本時,您必須更新services.yaml檔案中的服務組態,並更新.magento.app.yaml檔案中的關聯性。
重新命名現有服務以降級服務版本
-
重新命名
.magento/services.yaml檔案中的現有服務並變更版本。note warning WARNING 重新命名現有服務會取代現有服務並刪除所有資料。 如果您需要保留資料,請建立服務,而非重新命名現有服務。 例如,若要將 mysql 服務的MariaDB版本從10.4版降級為10.3版,請變更現有的 service-id 和 type 組態。
原始
services.yaml定義code language-yaml mysql: type: mysql:10.4 disk: 5120新
services.yaml定義code language-yaml mysql2: type: mysql:10.3 disk: 5120 -
更新
.magento.app.yaml檔案中的關聯性。原始
.magento.app.yaml設定code language-yaml relationships: database: "mysql:mysql"已更新
.magento.app.yaml設定code language-yaml relationships: database: "mysql2:mysql" -
新增、提交和推送您的程式碼變更。
藉由建立服務來降級服務
-
將服務定義新增至具有降級版本規格的專案的
services.yaml檔案。 請參閱下列範例中的mysql2:services.yaml
code language-yaml mysql: type: mysql:10.4 disk: 5120 mysql2: type: mysql:10.3 disk: 5120 -
若要使用新服務,請變更
.magento.app.yaml檔案中的關係組態。原始
.magento.app.yaml設定code language-yaml relationships: database: "mysql:mysql"新
.magento.app.yaml設定code language-yaml relationships: database: "mysql2:mysql" -
新增、提交和推送您的程式碼變更。