Развертывание AWS с использованием предпочтений развертывания
Я развертываю лямбда-функцию и использую настройки развертывания. Но мне нужно сине-зеленое развертывание для производства и все сразу для стадии разработки. Однако, согласно моему приложенному коду, все идет как Blue Green Deployment даже для разработки.
Я использую приведенный ниже код
AWSTemplateFormatVersion: преобразование "2010-09-09": AWS::Serverless-2016-10-31 Описание: > sam-app
Образец шаблона SAM для sam-приложения
Дополнительная информация о глобалах: https://github.com/awslabs/serverless-application-model/blob/master/docs/globals.rst
Глобалы: Функция: Тайм-аут: 3
Параметры:
Ветвь: Описание: Имя ветви репозитория Тип: Строка По умолчанию: master
Условия: IsProdStage:!Equals [!Ref Branch, 'master' ]
Ресурсы: HelloWorldFunction: Тип: AWS::Serverless::Function # Подробнее о функции Ресурс: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction Свойства awsserverlessfunction: CodeUri: hello_world/ Handler: app.lambda_handler Время выполнения: python3.6 События: HelloWorld: Тип: Api # Дополнительная информация об API Источник события: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#api Свойства: путь: / привет метод: получить
AutoPublishAlias: live
DeploymentPreference:
Type:
Fn::If: [IsProdStage, Canary10Percent5Minutes, AllAtOnce]
Выходы: HelloWorldApi: Описание: "URL-адрес конечной точки шлюза API для этапа Prod для функции Hello World" Значение:!Sub "https://${ServerlessRestApi}.execute-api.${AWS::Region}.amazonaws.com/Prod/hello/" HelloWorldFunction: Описание:" Лямбда-функция Hello World ARN"Значение:!GetAtt HelloWorldFunction.Arn HelloWorldFunctionIamRole: Описание:" Неявная роль IAM, созданная для функции Hello World "Значение:!GetAtt HelloWorldFunctionRole.Arn
Ожидаемый результат - Производство должно иметь сине-зеленое развертывание. Развитие должно иметь Все сразу