具有AWS Code管道的自定义版本标签

Rod*_*ott 6 amazon-web-services amazon-elastic-beanstalk aws-codepipeline aws-codebuild

我将AWS CodePipeline与CodeBuild结合使用来构建应用程序并将其部署到ElasticBeanstalk。

CodePipeline生成如下版本名称: code-pipeline-1122334455667-MyApp-1ac31f7c-1343-471x-a7e8-46b24f1785a

是否可以自定义这些标签?

小智 8

如果您使用 AWS CodeBuild 操作提供程序而不是 AWS ElasticBeanstalk 部署操作提供程序,则可以设置版本标签。

CodeBuild 能够在buildspec 中运行 AWS CLI 命令,您可以使用它

  1. 将您的构建工件上传到 S3(文档
  2. 在 Elastic Beanstalk 中创建一个版本(文档
  3. 部署版本(文档

以下是上传带有自定义标签、文件名和描述的工件的示例构建规范。

版本:0.2

阶段:
  建造:
    命令:
      - mvn 清洁包
      - 导出 POM_VERSION=$(mvn -q -Dexec.executable=echo -Dexec.args='${project.version}' --non-recursive exec:exec)
      - 导出 JAR_NAME='application-'$POM_VERSION'.jar'
      - 导出 EB_VERSION=$POM_VERSION'-'$(date +%s)
      - aws s3 cp target/application.jar s3://bucket-name/$JAR_NAME
      - aws elasticbeanstalk create-application-version --application-name "Application Name" --version-label "$EB_VERSION" --description "$CommitMessage" --source-bundle S3Bucket=bucket-name,S3Key=$JAR_NAME
      - aws elasticbeanstalk 更新环境 --application-name "应用程序名称" --version-label "$EB_VERSION" --environment-name "EnvironmentName"

注意事项

  • $CommitMessage来自 CodePipeline 作为环境变量
  • 日期附加到版本名称以避免命名冲突。