yml中支持从云效变量获取的写法吗?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在云效的 YAML 配置中,支持从云效变量(包括环境变量和变量组)获取值并使用。以下是详细的说明和用法:
variables
定义和使用环境变量在 YAML 文件中,可以通过 variables
定义流水线级别的环境变量,并在流水线的各个阶段、任务和步骤中引用这些变量。
variables:
- key: appname
value: myapp
- key: envname
type: String
value: DEV
在后续的步骤中,可以通过 ${key}
的方式引用这些变量:
steps:
my_step:
name: 执行命令
step: Command
with:
run: |
echo ${appname} # 输出 myapp
echo ${envname} # 输出 DEV
注意:
- 变量的 key
必须符合命名规则:仅支持 1-128 位大小写英文字母、数字、下划线 _
,且以字母开头,大小写敏感。 - 支持的变量类型包括:字符串(String)、数字(Number)、布尔值(Boolean)和对象(Object)。
variableGroups
关联通用变量组如果需要使用通用变量组中的变量,可以通过 variableGroups
关联一个或多个变量组。关联后,变量组中的变量可以在流水线中直接引用。
variableGroups: [123, 456] # 关联变量组 ID 为 123 和 456 的通用变量组
在步骤中引用变量组中的变量:
steps:
my_step:
name: 执行命令
step: Command
with:
run: |
echo ${group_var_key} # 引用变量组中的变量
注意:
- 如果多个变量组中存在同名的 key
,则按照关联顺序,排序靠后的变量组会覆盖前面的值。 - 变量组支持私密变量,而静态配置的 variables
不支持私密变量。
云效流水线中,变量的优先级遵循以下规则(从高到低): 1. 运行时输入:通过手动运行配置弹窗、OpenAPI 触发参数或 Webhook 触发参数设置的变量。 2. YAML step:部分 step 语法中定义的变量。 3. YAML pipeline:在 YAML 文件中通过 variables
定义的变量。 4. YAML pipeline:通过 variableGroups
关联的通用变量组。 5. UI 配置:在流水线页面上配置的变量。 6. UI 配置:在流水线页面上关联的通用变量组。
重要提醒:
- 运行时输入的变量不支持私密变量,但通过 UI 配置或变量组关联的变量可以支持私密变量。 - 建议尽量在 YAML 文件中配置所有环境变量,除非涉及私密配置项或需要运行时动态设置的变量。
在模板模式的流水线中,可以通过 {{ .key }}
的方式引用变量,并作为流水线模板的渲染参数。
template:
variables:
- key: appName
value: myApp
stages:
my_stage:
name: 构建阶段
jobs:
my_job:
name: 构建任务
steps:
my_step:
name: 执行命令
step: Command
with:
run: |
echo {{ .appName }} # 动态渲染变量
如果需要获取外部服务的配置或账密等变量,可以通过服务链接的方式实现。例如,OSS、Docker、Kubernetes 等服务的配置可以通过对应的 SDK 或 API 获取。
const accessKeyID = ossRamCertificate.accessKeyID;
const accessKeySecret = ossRamCertificate.accessKeySecret;
const securityToken = ossRamCertificate.securityToken;
const bucket = process.env.OSS_BUCKET as string;
step.info("-oss-");
step.info(accessKeyID);
step.info(accessKeySecret);
step.info(securityToken);
step.info(bucket);
step.info("-oss-");
注意:
- 不同的服务链接支持的类型和代码实现方式有所不同,具体可参考相关文档。
在云效的 YAML 配置中,支持通过 variables
和 variableGroups
获取和使用变量。变量的优先级和作用范围需要根据实际需求进行合理配置,尤其是涉及私密变量或运行时动态设置的场景。
云效,企业级一站式研发协同平台,数十万企业都在用。支持公共云、专有云和混合云多种部署形态,通过云原生新技术和研发新模式,助力创新创业和数字化转型企业快速实现研发敏捷和组织敏捷,打造“双敏”组织,实现多倍效能提升。