使用設定管道 config-pipelines

瞭解如何使用設定管道在AEM as a Cloud Service中部署不同的設定,例如記錄轉送設定、清除相關的維護任務和各種CDN設定。

概觀 overview

Cloud Manager設定管道將設定檔案(以YAML格式建立)部署到目標環境。 AEM as a Cloud Service中的許多功能可以這樣設定,包括記錄轉送、清除相關的維護任務和數個CDN功能。

對於​ 發佈傳遞 ​專案,可透過Cloud Manager將設定管道部署到開發、中繼和生產環境型別。 組態檔可以使用命令列工具部署至快速開發環境(RDE)。

也可以透過Cloud Manager為​ Edge Delivery ​專案部署設定管道。

本檔案的以下章節提供了有關如何使用設定管道以及如何為其構建配置的重要資訊的概述。 它說明在配置管道所支援的所有功能或功能子集之間共用的一般概念。

支援的設定 configurations

下表提供這類設定的完整清單,以及描述其不同設定語法和其他資訊的專用檔案的連結。

類型
YAML kind
說明
發佈傳遞
Edge Delivery
流量篩選器規則,包括WAF
CDN
宣告規則以封鎖惡意流量
X
X
要求轉換
CDN
宣告規則以轉換流量請求的形狀
X
X
回應轉換
CDN
宣告規則以轉換指定要求的回應形狀
X
X
伺服器端重新導向
CDN
宣告301/302樣式的伺服器端重新導向
X
X
來源選取器
CDN
宣告將流量路由到不同後端的規則,包括非Adobe應用程式
X
X
CDN錯誤頁面
CDN
如果無法連線AEM來源,並參考設定檔案中自行託管靜態內容的位置,則覆寫預設錯誤頁面
X
CDN清除
CDN
宣告用來清除CDN的清除API金鑰
X
客戶管理的CDN HTTP權杖
CDN
宣告從客戶CDN呼叫Adobe CDN所需的X-AEM-Edge-Key值
X
基本驗證
CDN
為保護特定URL的基本驗證對話方塊宣告使用者名稱和密碼。
X
X
版本清除維護任務
MaintenanceTasks
透過在應清除內容版本的時機周圍宣告規則來最佳化AEM存放庫
X
稽核記錄清除維護任務
MaintenanceTasks
最佳化AEM稽核記錄,透過在應清除記錄的時間周圍宣告規則來提高效能
X
記錄檔轉送
LogForwarding
設定可將記錄轉送至不同目的地的端點和認證,包括Azure Blob Storage、Datadog、HTTPS、Elasticsearch、Splunk
X
X
正在註冊使用者端ID
API
註冊使用者端ID,將Adobe Developer Console API專案範圍設定為特定AEM環境。 需要使用需要驗證的OpenAPI型API
X

建立和管理設定管道 creating-and-managing

有關如何建立和設定​ 發佈傳遞 ​設定管道的資訊,請參閱CI/CD管道。 在Cloud Manager中建立設定管道時,在設定管道時請務必選取​ 目標部署,而不是​ 完整棧疊代碼。 如前所述,RDE的組態是使用命令列工具部署,而非管道。

有關如何建立和設定​ Edge Delivery ​設定管道的資訊,請參閱新增Edge Delivery管道文章。

通用語法 common-syntax

每個設定檔案都會以類似下列範常式式碼片段的屬性開頭:

   kind: "LogForwarding"
   version: "1"
   metadata:
     envTypes: ["dev"]
屬性
說明
預設
kind
字串;決定組態型別,如記錄轉送、流量篩選規則或要求轉換
必要,無預設值
version
代表結構描述版本的字串
必要,無預設值
envTypes
這個字串陣列是metadata節點的子屬性。 對於​ 發佈傳遞,可能的值是dev、stage、prod或任何組合,它決定要處理設定的環境型別。 例如,如果陣列僅包含dev,則不會在Stage或Prod環境中載入組態,即使組態已部署於其中亦然。 對於​ Edge Delivery,只應使用prod的值。
所有環境型別,也就是(dev、stage、prod) for Publish Delivery或prod for Edge Delivery。

您可以使用yq公用程式在本機驗證組態檔的YAML格式(例如,yq cdn.yaml)。

檔案夾結構 folder-structure

名稱為/config或類似的資料夾應位於樹狀結構頂端,其下方的樹狀結構中會有一個以上的YAML檔案。

例如:

/config
  cdn.yaml

/config
  /dev
    cdn.yaml

/config下的資料夾名稱和檔案名稱是任意的。 但是,YAML檔案必須包含有效的kind屬性值

通常,設定會部署到所有環境。 如果每個環境的所有屬性值都相同,則單個YAML檔案就足夠了。 不過,屬性值通常會在環境之間有所不同,例如在測試較低環境時。

以下各節將說明建構檔案的一些策略。

適用於所有環境的單一設定檔案 single-file

檔案結構類似下列:

/config
  cdn.yaml
  logForwarding.yaml

當相同的設定足以滿足所有環境和所有型別的設定(CDN、記錄轉送等)時,請使用此結構。 在此案例中,envTypes陣列屬性將包含所有環境型別。

   kind: "cdn"
   version: "1"
   metadata:
     envTypes: ["dev", "stage", "prod"]

使用秘密型別的環境(或管道)變數,每個環境的秘密屬性可能會有所不同,如下列${{SPLUNK_TOKEN}}參考所說明。

kind: "LogForwarding"
version: "1"
metadata:
  envTypes: ["dev"]
data:
  splunk:
    default:
      enabled: true
      host: "splunk-host.example.com"
      token: "${{SPLUNK_TOKEN}}"
      index: "AEMaaCS"

每種環境型別有不同的檔案 file-per-env

檔案結構類似下列:

/config
  cdn-dev.yaml
  cdn-stage.yaml
  cdn-prod.yaml
  logForwarding-dev.yaml
  logForwarding-stage.yaml
  logForwarding-prod.yaml

屬性值可能有差異時,請使用此結構。 在檔案中,envTypes陣列值應該與尾碼對應。 例如,cdn-dev.yamllogForwarding-dev.yaml的值["dev"]cdn-stage.yamllogForwarding-stage.yaml的值["stage"],依此類推。

每個環境的資料夾 folder-per-env

在此策略中,每個環境有個別的config資料夾,在Cloud Manager中為每個環境宣告個別的管道。

如果您有多個開發環境,且每個環境都有獨特的屬性值,此方法會特別實用。

檔案結構類似下列:

/config/dev1
  cdn.yaml
  logForwarding.yaml
/config/dev2
  cdn.yaml
  logForwarding.yaml
/config/prod
  cdn.yaml
  logForwarding.yaml

此方法的不同之處在於為每個環境維護單獨的分支。

Edge Delivery Services yamls-for-eds

Edge Delivery設定管道沒有單獨的開發、測試和生產環境。 在發佈傳送環境中,會透過開發、階段和生產層級變更進度。 相較之下,Edge Delivery設定管道會將設定直接套用至Edge Delivery網站在Cloud Manager中註冊的所有網域對應。

因此,請部署簡單的檔案結構,例如:

/config
  cdn.yaml
  logForwarding.yaml

如果每個Edge Delivery網站上的規則必須不同,請使用語法​ when ​來區分規則。 例如,請注意網域符合下列程式碼片段中的dev.example.com ,這可以和網域www.example.com區別。

kind: "CDN"
version: "1"
data:
  trafficFilters:
    rules:
    # Block simple path
    - name: block-path
      when:
        allOf:
          - reqProperty: domain
            equals: "dev.example.com"
          - reqProperty: path
            equals: '/block/me'
      action: block

如果包含​ envTypes ​中繼資料欄位,則僅應使用值​ prod (省略envTypes中繼資料欄位也很好)。 對於​ reqProperty,只應使用值​ publish

秘密環境變數 secret-env-vars

組態檔支援型別為​ 機密 ​的Cloud Manager環境變數,因此不需要將機密資訊儲存在原始檔控制中。 對於某些設定(包括記錄轉送),某些屬性會強制使用秘密環境變數。

請注意,秘密環境變數會用於發佈傳遞專案;請參閱Edge Delivery Services專案的「秘密管道變數」一節。

下列程式碼片段是如何在設定中使用機密環境變數${{SPLUNK_TOKEN}}的範例。

kind: "LogForwarding"
version: "1"
metadata:
  envTypes: ["dev"]
data:
  splunk:
    default:
      enabled: true
      host: "splunk-host.example.com"
      token: "${{SPLUNK_TOKEN}}"
      index: "AEMaaCS"

如需有關如何使用環境變數的詳細資訊,請參閱Cloud Manager環境變數

秘密管道變數 secret-pipeline-vars

若為Edge Delivery Services專案,請使用​ 機密 ​型別的Cloud Manager管線變數,這樣敏感資訊就不需要儲存在原始檔控制中。 套用的步驟 ​選取方塊應使用​ 部署 ​選項。

語法與上一節中顯示的程式碼片段相同。

如需有關如何使用管道變數的詳細資訊,請參閱Cloud Manager中的管道變數

recommendation-more-help
fbcff2a9-b6fe-4574-b04a-21e75df764ab