#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. Предварительные условия были:
- Имейте все файлы конфигурации (config и учетные данные с правильными параметрами в .aws)
- Node.js и установленный интерфейс командной строки AWS (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 инициализирует приложение — язык 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
С уважением 😉