Могу ли я поделиться ScalableTarget или ScalingPolicy в CloudFormation? - PullRequest
0 голосов
/ 17 февраля 2020

У меня есть несколько AWS лямбд, определенных в моем шаблоне CloudFormation. Я хочу определить масштабирование для ProvisionedConcurrency для всех них, скажем, иметь минимум 1 подготовленную лямбду и максимум 4.

Тогда у меня есть конфигурация масштабирования для одной лямбды, которая выглядит следующим образом:

HelloWorldScalingTarget:
  Type: AWS::ApplicationAutoScaling::ScalableTarget
  Properties:
    MaxCapacity: 4
    MinCapacity: 1
    ResourceId: !Sub function:${HelloWorld}:live
    RoleARN: !Sub arn:aws:iam::${AWS::AccountId}:role/aws-service-role/lambda.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_Lambda
    ScalableDimension: lambda:function:ProvisionedConcurrency
    ServiceNamespace: lambda

HelloWorldScalingPolicy:
  Type: AWS::ApplicationAutoScaling::ScalingPolicy
  Properties:
    PolicyName: utilization
    PolicyType: TargetTrackingScaling
    ScalingTargetId: !Ref HelloWorldScalingTarget
    TargetTrackingScalingPolicyConfiguration:
      TargetValue: 0.8
      PredefinedMetricSpecification:
        PredefinedMetricType: LambdaProvisionedConcurrencyUtilization

Проблема в том, что мне нужно ссылаться на каждую лямбду по имени и иметь отдельные ScalableTarget и ScalingPolicy для каждой лямбды. Но ScalingPolicy одинаково для всех лямбд.

Есть ли способ удалить это дублирование и разделить ScalingPolicy между лямбдами (или ScalableTarget)?

1 Ответ

1 голос
/ 22 февраля 2020

Логически нет способа сделать это. Лямбда не представляет отдельный экземпляр, она представляет слой, который может порождать несколько экземпляров для запуска вашей функции на основе запросов, поступающих на вашу лямбду.

Поскольку каждая лямбда может иметь разные свойства, такие как время выполнения и память, политика масштабирования для каждой лямбды будет влиять только на экземпляры, которые она создает. что делает невозможным совместное использование политики масштабирования между несколькими лямбдами c, поскольку значение использования будет различным для каждой лямбды в зависимости от его свойств.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...