使用設定管道 config-pipelines

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

概觀 overview

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

設定管道可以透過Cloud Manager部署到生產(非沙箱)計畫中的開發、測試和生產環境型別。 組態檔可以使用命令列工具部署至快速開發環境(RDE)。

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

支援的設定 configurations

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

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

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

有關如何建立和設定管道的資訊,請參閱檔案CI/CD管道。

在Cloud Manager中建立設定管道時,在設定管道時請務必選取​ 目標部署,而不是​ 完整棧疊代碼

如前所述,RDE的組態是使用命令列工具部署,而非管道。

一般語法 common-syntax

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

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

您可以使用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陣列值與尾碼相對應,例如
值為["dev"]cdn-dev.yamllogForwarding-dev.yamlcdn-stage.yaml以及值為["stage"]logForwarding-stage.yaml等。

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

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

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

檔案結構將類似於以下內容:

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

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

秘密環境變數 secret-env-vars

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

以下程式碼片段是如何在設定中使用機密環境變數${{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環境變數

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