У меня есть несколько 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
)?