Новая ветка / сцена с использованием Zappa - PullRequest
0 голосов
/ 02 апреля 2019

У меня в данный момент есть 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 {авто, никогда, всегда}] {сертифицировать, развернуть, инициализировать, пакет, шаблон, вызов, управление, откат, расписание, состояние, хвост, отмена развертывания, отмена планирования, обновление, оболочка} ... 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 Ответ

1 голос
/ 10 апреля 2019

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
    }
}
...