Новая ветка / сцена с использованием Zappa
В настоящее время у меня есть API на AWS Lambda с использованием Zappa/Flask (Py 3.7)
Мой файл zappa_Settings.json выглядит так:
{
"beta": {
"app_function": "application.application",
"profile_name": "changed",
"project_name": "changed",
"runtime": "python3.7",
"s3_bucket": "zappa-<obscured>"
}
}
Однако сейчас мы работаем над новым набором функций, и смысл подсказывает, что у нас есть отдельная ветвь или этап, например, "тестирование", где мы их развертываем и оцениваем на зрелость, прежде чем переходить в живую среду.
Проблема в том, что, как я ни стараюсь, я не могу создать новый этап из консоли:
zappa init
падает с
click.exceptions.ClickException: у этого проекта уже есть файл zappa_settings.json!
zappa init stage2
производит
использование: zappa [-h] [-v] [--color {авто, никогда, всегда}] {сертифицировать, развернуть, init, пакет, шаблон, вызвать, управлять, откат, расписание, состояние, хвост, отменить развертывание, отменить,update,shell} ... zappa: ошибка: нераспознанные аргументы: stage2
zappa deploy stage2
выходы
(botocore 1.12.86 (/home/user/Code/Python/project/lib/python3.6/site-packages), Requirement.parse('botocore<1.11.0,>=1.10.82'), {'boto3'})
Calling deploy for stage stage2..
Error: Please define stage 'stage2' in your Zappa settings.
Теперь, если я вручную создаю запись для этапа, мне нужно иметь корзину s3 для развертывания. Безопасно ли использовать один и тот же из первого экземпляра? Что мне делать здесь, чтобы развернуть новый этап?
1 ответ
zappa init
это просто, чтобы вы начали с zappa_settings.json
файл, вам не нужно запускать его каждый раз, чтобы отредактировать.
например.
{
"beta": {
"app_function": "application.application",
"profile_name": "changed",
"project_name": "changed",
"runtime": "python3.7",
"s3_bucket": "zappa-<obscured>"
},
"stage2": {
"app_function": "application.application",
"profile_name": "changed",
"project_name": "changed",
"runtime": "python3.7",
"s3_bucket": "zappa-<obscured>"
}
}
Однако это может быть лучше написано как.
{
"common": {
"app_function": "application.application",
"profile_name": "changed",
"project_name": "changed",
"runtime": "python3.7",
"s3_bucket": "zappa-<obscured>"
},
"beta": {
"extends": "common"
// additional overrides here
},
"stage2": {
"extends": "common"
// additional overrides here
}
}