Как назначить «app»: «python app.py » в cdk.json для python или python3

#python #aws-cdk

#python #aws-cdk

Вопрос:

Я довольно новичок в cdk. Как мне настроить cdk или cdk.json для запуска, где исполняемый файл python может называться «python» или «python3» в зависимости от платформы?

cdk init —язык python создает cdk.json на моем локальном ПК с Windows со строкой

 "app": "python app.py"
  

Сбой возникает, когда Jenkins CI / CD запускает приложение. Сборка Jenkins завершается неудачно, поскольку Jenkins на базе Linux ожидает «python3».

Текущее решение заключается в редактировании cdk.json, когда мы переходим на github, и Дженкинс автоматически создает нижние среды. Есть ли лучший способ?

Ответ №1:

Использование python3 непосредственно в cdk.json :

 {
  "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
  

Комментарии:

1. Мои извинения. Я пропустил ваш ответ. Я сделал именно это, переключившись на терминал Linux… по многим причинам. Как только я избавился от Windows, проблемы, подобные этой, исчезли. Другие разработчики все еще застряли с переключением python на python3 во время развертывания.

Ответ №2:

У меня было несколько проблем, но, в конце концов, использование python3 в файле cdk.json не имело никакого значения. У меня ОС Windows. Предварительные условия были:

Получив это, я выполнил строку ниже в своем терминале Windows

 npm install -g aws-cdk   

Следующим шагом в моем проекте (я использую vscode) я создал папку для выполнения cdk (и я назвал ее «cdk», но это может быть что угодно).

  • mkdir cdk (для создания моей папки в проекте)
  • cd cdk (для ввода в мою папку)
  • cdk инициализирует приложение — язык python (для установки языка)
  • source .venv/bin/activate (для создания и активации виртуальной среды)
  • добавьте «aws_cdk.aws_s3» в requirements.txt

Перед выполнением развертывания cdk выполните pip install -r requirements.txt и используйте cdk synth, чтобы проверить, все ли в порядке или какая-то ошибка должна быть исправлена.

При использовании действий git используйте sudo перед командой npm и добавьте в команду run 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  

С уважением 😉