設定服務

services.yaml檔案定義Adobe Commerce在雲端基礎結構上支援及使用的服務,例如MySQL、Redis以及Elasticsearch或OpenSearch。 您不需要訂閱外部服務提供者。

NOTE
.magento/services.yaml檔案是在您專案的.magento目錄中本機管理的。 在建置過程中可存取設定,以便僅在整合環境中定義所需的服務版本,部署完成後便會移除設定,導致您在伺服器上找不到這些設定。

部署指令碼使用.magento目錄中的組態檔,以設定的服務布建環境。 如果服務包含在.magento.app.yaml檔案的relationships屬性中,您的應用程式便可使用它。 services.yaml檔案包含​ 型別 ​和​ 磁碟 ​值。 服務型別定義服務​ 名稱 ​和​ 版本

變更服務設定會讓部署在環境中布建更新的服務,進而影響下列環境:

  • 所有入門環境,包括生產master
  • Pro整合環境
TIP
對於Pro專案,您必須提交Adobe Commerce支援票證,才能僅在StagingProduction環境中安裝或更新服務
指示所需的服務變更,包括更新的.magento.app.yamlservices.yaml檔案,並在票證中說明PHP版本。 如需自行變更PHP版本、擴充功能或環境設定,請參閱​_應用程式組態_​中的PHP設定
若要變更即時生產環境(僅限Pro),至少需要48小時的通知。 這可讓雲端基礎結構團隊有充足的時間來調配資源並進行安全升級。 通知期間從基礎架構團隊認可請求並安排升級(不包括週末)開始。 例如,若要在星期一完成服務升級,必須在星期三收到排程升級的確認。 在需求尖峰期間,處理您的請求可能需要更多時間。

預設與支援的服務

雲端基礎結構支援和部署以下服務:

您可以在目前的預設services.yaml檔案中檢視預設版本和磁碟值。 下列範例顯示services.yaml組態檔中定義的mysqlredisopensearchelasticsearch以及rabbitmq服務:

mysql:
    type: mysql:10.4
    disk: 5120

redis:
    type: redis:6.2

opensearch:
    type: opensearch:2  # minor version not required; uses latest
    disk: 1024

rabbitmq:
    type: rabbitmq:3.9
    disk: 1024

服務值

您必須提供服務識別碼和服務型別組態type: <name>:<version>。 如果服務使用永久儲存體,則必須提供磁碟值。

使用以下格式:

<service-id>:
    type: <name>:<version>
    disk: <value-MB>

service-id

service-id值會識別專案中的服務。 您只能使用小寫字母數字字元: az09,例如redis

此​ service-id ​值用於.magento.app.yaml組態檔的relationships屬性:

relationships:
    redis: "<name>:redis"

您可以為每種服務型別的多個執行個體命名。 例如,您可以使用多個Redis例項,一個用於作業階段,一個用於快取。

redis:
    type: redis:<version>

redis2:
    type: redis:<version>

重新命名services.yaml檔案​ 中的服務將會永久移除 ​下列專案:

  • 使用您指定的新名稱建立服務之前的現有服務。
  • 服務的所有現有資料都會被移除。 Adobe強烈建議您先備份您的入門環境,然後再變更現有服務的名稱。

type

type值指定服務名稱和版本。 例如:

mysql:
    type: mysql:10.4

disk

disk值指定要配置給服務的永久磁碟儲存大小(以MB為單位)。 使用永久儲存體的服務(例如MySQL)必須提供磁碟值。 使用記憶體而非永久儲存體的服務(例如Redis)不需要磁碟值。

mysql:
    type: mysql:10.4
    disk: 5120

目前每個專案的預設儲存容量為5 GB,即512 0MB。 您可以在應用程式及其每項服務之間分配此金額。

服務關係

在雲端基礎結構專案的Adobe Commerce中,在.magento.app.yaml檔案中設定的服務關係會決定哪些服務可供您的應用程式使用。

您可以從$MAGENTO_CLOUD_RELATIONSHIPS環境變數擷取所有服務關係的設定資料。 設定資料包括服務名稱、型別和版本,以及任何必要的連線詳細資訊,例如連線埠號碼和登入認證。

驗證本機環境中的關係

  1. 在您的本機環境中,顯示使用中環境的關係。

    code language-bash
    magento-cloud relationships
    
  2. 確認回應中的servicetype。 回應會提供連線資訊,例如IP位址和連線埠號碼。

    縮寫的範例回應

    code language-yaml
    redis:
        -
    ...
            type: 'redis:7.0'
            port: 6379
    elasticsearch:
        -
    ...
            type: 'opensearch:2'
            port: 9200
    database:
        -
    ...
            type: 'mysql:10.6'
            port: 3306
    

若要驗證遠端環境中的關係

  1. 使用SSH登入遠端環境。

  2. 列出在環境中設定的所有服務的關係設定資料。

    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
    
  3. 確認回應中的servicetype。 回應會提供連線資訊,例如IP位址和連線埠號碼,以及任何必要的使用者名稱和密碼認證。

服務版本

雲端基礎結構上Adobe Commerce的服務版本和相容性支援取決於雲端基礎結構上部署和測試的版本,有時與Adobe Commerce內部部署支援的版本不同。 請參閱​ 安裝 ​指南中的系統需求,以取得Adobe已使用特定Adobe Commerce和Magento Open Source版本測試的第三方軟體相依性清單。

軟體EOL檢查

在部署程式期間,ece-tools套件會根據每個服務的生命週期結束(EOL)日期檢查已安裝的服務版本。

  • 如果服務版本在EOL日期後的三個月內,部署記錄中會顯示通知。
  • 如果EOL日期是過去,則會顯示警告通知。

為維護商店安全性,請在已安裝軟體版本到達EOL之前更新這些版本。 您可以在ece-tools' eol.yaml檔案中檢閱EOL日期。

移轉至OpenSearch

WARNING
雲端基礎結構上的Adobe Commerce不支援Elasticsearch7.11和更新版本。 Adobe Commerce版本2.3.7-p3、2.4.3-p2以及2.4.4和更新版本支援OpenSearch服務。 內部部署安裝仍支援Elasticsearch。

若為Adobe Commerce 2.4.4版或更新版本,請參閱設定OpenSearch服務

變更服務版本

您可以升級已安裝的服務版本,使其與雲端環境中部署的Adobe Commerce版本相容。

您無法直接將已安裝服務的服務版本降級。 不過,您可以建立具有所需版本的服務。 請參閱降級服務版本

升級已安裝的服務版本

您可以更新services.yaml檔案中的服務組態來升級已安裝的服務版本。

  1. 變更.magento/services.yaml檔案中服務的type值:

    原始服務定義

    code language-yaml
    mysql:
        type: mysql:10.3
        disk: 2048
    

    已更新服務定義

    code language-yaml
    mysql:
        type: mysql:10.4
        disk: 5120
    
  2. 新增、提交和推送您的程式碼變更。

    code language-bash
    git add .magento/services.yaml
    
    code language-bash
    git commit -m "Upgrade MySQL from MariaDB 10.3 to 10.4."
    
    code language-bash
    git push origin <branch-name>
    

降級版本

您無法直接降級已安裝的服務。 您有兩個選項:

  1. 以新版本重新命名現有服務,移除現有服務和資料,並新增新服務和資料。

  2. 建立服務並儲存現有服務的資料。

當您變更服務版本時,您必須更新services.yaml檔案中的服務組態,並更新.magento.app.yaml檔案中的關聯性。

若要藉由重新命名現有服務來降級服務版本

  1. 重新命名.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
    
  2. 更新.magento.app.yaml檔案中的關聯性。

    原始.magento.app.yaml設定

    code language-yaml
    relationships:
        database: "mysql:mysql"
    

    已更新.magento.app.yaml設定

    code language-yaml
    relationships:
        database: "mysql2:mysql"
    
  3. 新增、提交和推送您的程式碼變更。

若要藉由建立服務來降級服務

  1. 將服務定義新增至具有降級版本規格的專案的services.yaml檔案。 請參閱下列範例中的​ mysql2

    services.yaml

    code language-yaml
    mysql:
        type: mysql:10.4
        disk: 5120
    mysql2:
        type: mysql:10.3
        disk: 5120
    
  2. 變更.magento.app.yaml檔案中的關係設定以使用新服務。

    原始.magento.app.yaml設定

    code language-yaml
    relationships:
        database: "mysql:mysql"
    

    .magento.app.yaml設定

    code language-yaml
    relationships:
        database: "mysql2:mysql"
    
  3. 新增、提交和推送您的程式碼變更。

recommendation-more-help
05f2f56e-ac5d-4931-8cdb-764e60e16f26