文章目录
aws(学习笔记第四十七课) codepipeline-docker-build
- 使用
CodeBuild
来build一个docker Image
- 将它
push
到一个ECR
学习内容:
- 在不同的
stack
之前传递参数props
- 使用
ssm store
来保存parameters
- 后面的
push.sh
能够从ssm store
取得参数
1. 代码连接和修改
1.1 代码链接
代码链接(codepipeline-docker-build)
1.2 代码手动修改部分
2. 代码整体架构
2.1 base.py
准备S3 bucket
以及codebuild project
- 准备
s3 bucket
里面保存上传的source.zip
- 利用
SSM(Session Manager)
保存参数 - 创建
codebuild project
进行build
- 将
codebuild project
生成的docker image
保存push
到ecr
中
2.2 base.py
准备S3 bucket
以及codebuild project
- 创建
source stage
,这里是监视S3 bucket
的上传的source.zip
- 创建
build stage
,这里input
是source stage
的output
- 最后将
pipeline.pipeline_name
保存到SSM SessionManager
3. 执行pipeline
python -m venv .venv
source .venv/Scripts/activate
pip -r requirements.txt
cdk --require-approval never deploy --all # 因为这里存在多个stacks,所以使用--all
3.1 执行cdk
3.2 检查ECR Ecs Container Registry
3.2 检查pipeline
3.3 检查ssm
这里还是求助了AI
查看到了cdk
登录的参数。
4. 执行push.sh
来模拟代码上传到s3 bucket
4.1 执行环境
这里选择cloudshell
进行执行,因为手头没有合适的linux
环境。
而且,可以看出,这里的~/.aws/
下面的文件,是root
账号的aws
的credentials
。在练习阶段使用,没有问题。
4.2 进行git clone
git clone https://gitcode.com/gh_mirrors/aw/aws-cdk-examples
4.3 执行./push.sh
/home/cloudshell-user/aws-cdk-examples/python/codepipeline-docker-build
修改下自己的region
执行./push.sh
4.4 观察codepipeline
可以看出source stage
执行成功,但是build stage
执行失败,接下来主要进行解析错误。未完待续。。。