如何解码CodePipeline执行的CloudFormation栈输出的二进制内容
解码CodePipeline中CloudFormation输出的二进制Artifact
CodePipeline在CloudFormation操作后生成的输出Artifact默认是gzip压缩的JSON文件,按以下步骤解码即可:
1. 确认文件类型
S3里的Artifact文件可能不带.gz后缀,但本质是gzip压缩包。用file命令验证:
file s3://你的存储桶路径/artifact文件名
输出会显示类似 gzip compressed data,确认是压缩格式。
2. 下载并解压缩
方式1:AWS CLI一步处理
直接下载并即时解压缩到本地文件:
aws s3 cp s3://你的存储桶路径/artifact文件名 - | gunzip > stack-outputs.json
这条命令把S3的二进制文件拉到标准输出,通过gunzip解压缩后写入stack-outputs.json。
方式2:先下载再解压
如果需要先把文件存到本地再处理:
aws s3 cp s3://你的存储桶路径/artifact文件名 ./temp-artifact gunzip ./temp-artifact
解压后会得到一个JSON文件,直接打开就能看到栈输出内容。
3. 直接查看内容(可选)
不想保存到本地的话,直接在终端格式化查看:
aws s3 cp s3://你的存储桶路径/artifact文件名 - | gunzip | jq .
用jq工具可以把JSON格式美化(没装jq的话,去掉| jq .直接看原始JSON也可以)。
补充说明
CodePipeline默认启用压缩是为了减少S3存储和传输开销,解压后的JSON里,StackOutputs字段就是CloudFormation栈的输出数据,结构和aws cloudformation describe-stacks返回的Outputs完全一致。
内容的提问来源于stack exchange,提问作者Djoby
相关产品推荐
相关产品推荐

