繁体   English   中英

CodeBuild 能否访问代码管道内的 object 元数据?

[英]Can CodeBuild can access object metadata inside codepipeline?

我正在尝试访问代码构建中的 S3 对象用户定义的元数据并将其设置为环境变量。

根据文档,它只有 output etag 和 VersionId。 所以我假设默认情况下,当 s3 是源操作时,用户定义的元数据不会导出到代码管道

我正在考虑使用 aws cli 命令,然后将其设置为代码构建的环境变量。 有没有更好的办法?

aws s3api head-object --bucket bucket-name --profile profile --key xxxx.zip

您是对的,获取 object 元数据的唯一方法是使用head-object CLI 调用。 您可以在 CodeBuild 阶段使用以下构建规范来获取带有 s3 源操作的管道的 object 元数据。

version: 0.2

phases:
  build:
    commands:
      - BUCKET_PATH=$(echo $CODEBUILD_SOURCE_VERSION | cut -d ':' -f 6)
      - BUCKET=$(echo $BUCKET_PATH | cut -d '/' -f 1)
      - KEY=$(echo $BUCKET_PATH | cut -d '/' -f 2,3,4)
      - aws s3api head-object --bucket $BUCKET --key $KEY --query Metadata

请注意,更新 s3 源 object 上的元数据也会触发 pipeline with s3 source 操作。

CodeBuild 可以使用 AWS CodePipeline API 访问 CodePipeline 内部的 object 元数据。CodeBuild 可以使用此 API 检索有关管道当前 state 的信息,包括有关源的信息和每个阶段的工件 output 。 要在 CodePipeline 中访问 object 的元数据,您需要使用“GetPipelineExecution”API 操作并在请求中包含“元数据”参数。 这将返回管道执行中每个工件的元数据。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM