如何在 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。先决条件是:

有了这个,我在 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

亲切的问候 ;)