我正在将AWS CDK(带有Python)用于在Fargate上运行的容器化应用程序。我想在GitLab CI进程中运行cdk deploy
,并将git标记作为环境变量传递,以替换在Fargate中运行的容器。我目前正在使用CloudFormation(aws cloudformation update-stack ...
)做类似的事情。还有其他人通过AWS CDK进行CI / CD吗?有更好的方法吗?
此外,我应该为该工作的基本图像使用什么?我当时以为我可以从python容器开始安装节点,反之亦然。也许有一个我还找不到的预制容器。
这里似乎开始运作良好:
CDK:
image: python:3.8
stage: deploy
before_script:
- apt-get -qq update && apt-get -y install nodejs npm
- node -v
- npm i -g aws-cdk
- cd awscdk
- pip3 install -r requirements.txt
script:
- cdk diff
- cdk deploy --require-approval never
如果您拥有lambda或ECS资产,则绝对必须在CI / CD管道内使用CDK部署,否则,您可以运行CDK合成器并将生成的Cloudformation传递给AWS Code Deploy。这意味着您将花费大量的CI / CD进行部署,这可能会耗尽您的免费层构建时间,或者仅意味着您需要支付更多费用(AWS Code Deploy是免费的)]
我在CircleCi中对Golang做类似的事情。我使用Go基本映像并安装nodejs和cdk。我使用此基础映像来构建我的所有go二进制文件,vuejs前端并编译cdk打字稿并进行部署。
FROM golang:1.13 RUN go get -u -d github.com/magefile/mage WORKDIR $GOPATH/src/github.com/magefile/mage RUN go run bootstrap.go RUN curl -sL https://deb.nodesource.com/setup_12.x | bash - RUN apt-get install -y nodejs RUN npm i -g [email protected] RUN npm i -g typescript RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - RUN echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list RUN apt update && apt install yarn
我希望能有所帮助。