Новая ветка / сцена с использованием 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
    }
}
Другие вопросы по тегам