如何在 cdk.json 中为 python 或 python3 分配 "app":"python app.py"
How to assign "app":"python app.py" in cdk.json for python or python3
我是 cdk 的新手。如何将 cdk 或 cdk.json 设置为 运行,其中 python 可执行文件可能被命名为 'python' 或 'python3',具体取决于平台?
cdk init --language python 在我的本地 Windows PC 上使用行
创建 cdk.json
"app": "python app.py"
Jenkins CI/CD 执行应用程序时出现故障。 Jenkins 构建失败,因为基于 linux 的 Jenkins 期望 'python3'.
当前的解决方案是在我们提交 github 时编辑 cdk.json,Jenkins 会自动构建较低的环境。有没有更好的方法?
直接在cdk.json
中使用python3:
{
"app": "python3 app.py",
"context": {
"@aws-cdk/core:enableStackNameDuplicates": "true",
"aws-cdk:enableDiffNoFail": "true",
"@aws-cdk/core:stackRelativeExports": "true",
"@aws-cdk/aws-ecr-assets:dockerIgnoreSupport": true
}
}
或将 python symlink
别名为 python3
:
lrwxrwxrwx 1 root root 18 Nov 8 14:20 /usr/bin/python -> /usr/bin/python3.8
我遇到了一些问题,但最终,在 cdk.json 文件中使用 python3 没有任何区别。我有一个 windows OS。先决条件是:
- 拥有所有配置文件(在 .aws 中具有正确参数的配置和凭据)
- Node.js 并安装了 AWS Cli (https://docs.aws.amazon.com/cdk/latest/guide/work-with.html#work-with-prerequisites)
有了这个,我在 windows 终端
中执行了下面的行
npm install -g aws-cdk
我项目的下一步(我使用 vscode),我创建了一个文件夹来执行 cdk(我将其命名为“cdk”,但它可以是任何东西)。
- mkdir cdk(在项目中创建我的文件夹)
- cd cdk(进入我的文件夹)
- cdk init app --language python(设置语言)
- source .venv/bin/activate(创建并激活虚拟环境)
- 在requirements.txt
中添加“aws_cdk.aws_s3”
在执行cdk deploy之前先执行pip install -r requirements.txt然后使用cdk synth测试是否一切正常好的,或者如果某些错误必须更正。
使用git操作时,在npm命令前使用sudo并在运行命令中添加cd 所以 git 可以导航到 cdk 文件夹。没有那些,我有以下错误。
--在命令行、cdk.json 或 ~/.cdk.json
中都需要应用程序
下面是部署作业在我的 git 操作文件中的配置方式:
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: '3.x'
- uses: actions/setup-node@v2-beta
with:
node-version: '12'
- name: Install dependencies
run: |
sudo npm install -g aws-cdk
cd 2_continuous_integration_and_tests/CDK
pip install -r requirements.txt
- name: Deploy
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }}
run: |
cd 2_continuous_integration_and_tests/CDK
cdk synth
cdk deploy
亲切的问候
;)
我是 cdk 的新手。如何将 cdk 或 cdk.json 设置为 运行,其中 python 可执行文件可能被命名为 'python' 或 'python3',具体取决于平台?
cdk init --language python 在我的本地 Windows PC 上使用行
创建 cdk.json"app": "python app.py"
Jenkins CI/CD 执行应用程序时出现故障。 Jenkins 构建失败,因为基于 linux 的 Jenkins 期望 'python3'.
当前的解决方案是在我们提交 github 时编辑 cdk.json,Jenkins 会自动构建较低的环境。有没有更好的方法?
直接在cdk.json
中使用python3:
{
"app": "python3 app.py",
"context": {
"@aws-cdk/core:enableStackNameDuplicates": "true",
"aws-cdk:enableDiffNoFail": "true",
"@aws-cdk/core:stackRelativeExports": "true",
"@aws-cdk/aws-ecr-assets:dockerIgnoreSupport": true
}
}
或将 python symlink
别名为 python3
:
lrwxrwxrwx 1 root root 18 Nov 8 14:20 /usr/bin/python -> /usr/bin/python3.8
我遇到了一些问题,但最终,在 cdk.json 文件中使用 python3 没有任何区别。我有一个 windows OS。先决条件是:
- 拥有所有配置文件(在 .aws 中具有正确参数的配置和凭据)
- Node.js 并安装了 AWS Cli (https://docs.aws.amazon.com/cdk/latest/guide/work-with.html#work-with-prerequisites)
有了这个,我在 windows 终端
中执行了下面的行npm install -g aws-cdk
我项目的下一步(我使用 vscode),我创建了一个文件夹来执行 cdk(我将其命名为“cdk”,但它可以是任何东西)。
- mkdir cdk(在项目中创建我的文件夹)
- cd cdk(进入我的文件夹)
- cdk init app --language python(设置语言)
- source .venv/bin/activate(创建并激活虚拟环境)
- 在requirements.txt 中添加“aws_cdk.aws_s3”
在执行cdk deploy之前先执行pip install -r requirements.txt然后使用cdk synth测试是否一切正常好的,或者如果某些错误必须更正。
使用git操作时,在npm命令前使用sudo并在运行命令中添加cd 所以 git 可以导航到 cdk 文件夹。没有那些,我有以下错误。 --在命令行、cdk.json 或 ~/.cdk.json
中都需要应用程序下面是部署作业在我的 git 操作文件中的配置方式:
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: '3.x'
- uses: actions/setup-node@v2-beta
with:
node-version: '12'
- name: Install dependencies
run: |
sudo npm install -g aws-cdk
cd 2_continuous_integration_and_tests/CDK
pip install -r requirements.txt
- name: Deploy
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }}
run: |
cd 2_continuous_integration_and_tests/CDK
cdk synth
cdk deploy
亲切的问候 ;)