使用配置管道 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
值创建和管理配置管道 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
,则不会将配置加载到暂存或生产环境中,即使已在该环境中部署配置也是如此。 对于 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
配置文件支持 secret 类型的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中的管道变量。