如何自定义 AWS Codestar / Cloudformation 模板来创建特定的代码构建项目?
How to customize AWS Codestar / Cloudformation template to create specific codebuild project?
如何自定义 AWS Codestar / Cloudformation 模板以创建特定的代码构建项目
像 lambda 这样的资源很好,SAM > Codestar 项目模板工作正常
问题是当我尝试添加具有特定 docker 图像的 CodeBuild 设置时(需要使用 Python 3.7 而不是默认的 2.7)
将 Yaml 用于 template.yml + buildspec.yml
AWSTemplateFormatVersion: 2010-09-09
Transform:
- AWS::Serverless-2016-10-31
- AWS::CodeStar
Parameters:
ProjectId:
Type: String
Description: CodeStar projectId used to associate new resources to team members
Resources:
HelloWorld:
Type: AWS::Serverless::Function
Properties:
Handler: index.lambda_handler
Runtime: python3.7
Layers:
- arn:aws:lxxxxxxxxxxxxxxxxxxxxxx:1
Role:
- arn:aws:iam::xxxxxxxxxxxxxxxxxxxxxx
CodeBuildProject:
Type: AWS::CodeBuild::Project
Properties:
Description: Codebuild project Validate Packer Template
Artifacts:
Type: CODEPIPELINE
Environment:
Type: LINUX_CONTAINER
ComputeType: BUILD_GENERAL1_SMALL
Image: aws/codebuild/python:3.7.1
Source:
Type: CODEPIPELINE
TimeoutInMinutes: 1
Lambda 创建成功,但 Codebuild 部分被忽略,没有任何反应
编辑 2
我能够编辑 CF 模板以强制创建另一个 CodeBuild Project.Unfortunately,它的功能类似于完全独立的组件
从文档来看,似乎可以在创建后更改资源,应该是更改更改集 CF 部署。
但是在使用默认模板 (sam + Python) 之后,通过代码更改流水线呢?
有没有办法在 CodeStar 的 pipiline 中覆盖代码构建环境(更改要使用的 docker 图像)?
通过控制台,您当然可以更改和更新任何内容 + 覆盖。但是文档中没有关于如何通过 template.yml / template.json 文件
执行此操作的内容
根据我的发现,有几层组件
当您通过控制台创建 Codestar 项目时,您 select 默认模板。这是您需要编辑的,以更改底层 CodePupeline
我找到了解决方法:通过 CLI 创建项目
这样,您可以使用toolchain.yml(也可以通过控制台编辑,这与IAC原则相矛盾)并编辑它,以获得所需的任何类型的自定义管道
如何自定义 AWS Codestar / Cloudformation 模板以创建特定的代码构建项目
像 lambda 这样的资源很好,SAM > Codestar 项目模板工作正常
问题是当我尝试添加具有特定 docker 图像的 CodeBuild 设置时(需要使用 Python 3.7 而不是默认的 2.7) 将 Yaml 用于 template.yml + buildspec.yml
AWSTemplateFormatVersion: 2010-09-09
Transform:
- AWS::Serverless-2016-10-31
- AWS::CodeStar
Parameters:
ProjectId:
Type: String
Description: CodeStar projectId used to associate new resources to team members
Resources:
HelloWorld:
Type: AWS::Serverless::Function
Properties:
Handler: index.lambda_handler
Runtime: python3.7
Layers:
- arn:aws:lxxxxxxxxxxxxxxxxxxxxxx:1
Role:
- arn:aws:iam::xxxxxxxxxxxxxxxxxxxxxx
CodeBuildProject:
Type: AWS::CodeBuild::Project
Properties:
Description: Codebuild project Validate Packer Template
Artifacts:
Type: CODEPIPELINE
Environment:
Type: LINUX_CONTAINER
ComputeType: BUILD_GENERAL1_SMALL
Image: aws/codebuild/python:3.7.1
Source:
Type: CODEPIPELINE
TimeoutInMinutes: 1
Lambda 创建成功,但 Codebuild 部分被忽略,没有任何反应
编辑 2 我能够编辑 CF 模板以强制创建另一个 CodeBuild Project.Unfortunately,它的功能类似于完全独立的组件
从文档来看,似乎可以在创建后更改资源,应该是更改更改集 CF 部署。
但是在使用默认模板 (sam + Python) 之后,通过代码更改流水线呢? 有没有办法在 CodeStar 的 pipiline 中覆盖代码构建环境(更改要使用的 docker 图像)? 通过控制台,您当然可以更改和更新任何内容 + 覆盖。但是文档中没有关于如何通过 template.yml / template.json 文件
执行此操作的内容根据我的发现,有几层组件 当您通过控制台创建 Codestar 项目时,您 select 默认模板。这是您需要编辑的,以更改底层 CodePupeline
我找到了解决方法:通过 CLI 创建项目 这样,您可以使用toolchain.yml(也可以通过控制台编辑,这与IAC原则相矛盾)并编辑它,以获得所需的任何类型的自定义管道