使用配置管道 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
,则不会将配置加载到暂存或生产环境中,即使已在该环境中部署配置也是如此。您可以使用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
、值为["stage"]
的cdn-stage.yaml
和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
配置文件支持 secret 类型的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环境变量。