使用設定管道 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
下表提供這類設定的完整清單,以及描述其不同設定語法和其他資訊的專用檔案的連結。
kind
值LogForwarding
建立和管理設定管道 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
的值。您可以使用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.yaml
和logForwarding-dev.yaml
的值["dev"]
、cdn-stage.yaml
和logForwarding-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中的管道變數。