使用設定管道 config-pipelines
瞭解如何使用設定管道來部署不同的設定AEM as a Cloud Service,例如記錄轉送設定、清除相關的維護任務和各種CDN設定。
概觀 overview
Cloud Manager設定管道將設定檔案(以YAML格式建立)部署到目標環境。 AEM as a Cloud Service中的許多功能可以這樣設定,包括記錄轉送、清除相關的維護任務和數個CDN功能。
設定管道可以透過Cloud Manager部署到生產(非沙箱)計畫中的開發、測試和生產環境型別。 組態檔可以使用命令列工具部署至快速開發環境(RDE)。
本檔案的以下章節提供了有關如何使用設定管道以及如何為其構建配置的重要資訊的概述。 它說明在配置管道所支援的所有功能或功能子集之間共用的一般概念。
支援的設定 configurations
下表提供這類設定的完整清單,以及描述其不同設定語法和其他資訊的專用檔案的連結。
kind
值建立和管理設定管道 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.yaml
和logForwarding-dev.yaml
、cdn-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環境變數。