Azure DevOps Pipeline捕获AWS CLI任务输出供后续任务使用的可行性咨询
实现方案
可以实现,你之前配置Output Variables未生效通常是命令输出格式、变量解析规则配置有误,按以下步骤调整即可:
步骤1:调整AWS CLI发布层命令
执行publish-layer-version时通过--query和--output参数过滤输出,仅返回纯净的版本号,避免多余内容干扰变量解析:
aws lambda publish-layer-version \ --layer-name <你的Lambda层名称> \ --content S3Bucket=<存储层包的S3桶名>,S3Key=<层包的S3路径> \ --compatible-runtimes <兼容的运行时,比如python3.9 nodejs18.x> \ --query Version \ --output text
执行该命令后控制台只会输出版本号数字,无其他冗余内容。
步骤2:配置AWS CLI任务的输出变量
- 给当前AWS CLI任务设置一个引用名称,例如
PublishLambdaLayer,该名称会作为后续变量引用的前缀 - 在输出变量配置项中,新增一条变量:
- 变量名:
LayerVersion - 解析规则:
\s*(\d+)\s*,该正则会匹配命令输出的数字版本号
- 变量名:
步骤3:后续任务引用变量
同阶段内的后续任务直接通过$(PublishLambdaLayer.LayerVersion)即可调用获取到的层版本号,若需要跨阶段使用,需额外在当前阶段的输出配置中导出该变量。
内容的提问来源于stack exchange,提问作者johnhill2424
相关产品推荐
相关产品推荐

