Amazon web services 我可以在CloudFormation中共享ScalableTarget或ScalingPolicy吗?
我在CloudFormation模板中定义了多个AWS lambda。我想为所有配置的Concurrency定义缩放比例,比如最小配置1个lambda,最大配置4个lambda 然后我有一个lambda的缩放配置,如下所示:Amazon web services 我可以在CloudFormation中共享ScalableTarget或ScalingPolicy吗?,amazon-web-services,aws-lambda,amazon-cloudformation,autoscaling,aws-sam,Amazon Web Services,Aws Lambda,Amazon Cloudformation,Autoscaling,Aws Sam,我在CloudFormation模板中定义了多个AWS lambda。我想为所有配置的Concurrency定义缩放比例,比如最小配置1个lambda,最大配置4个lambda 然后我有一个lambda的缩放配置,如下所示: HelloWorldScalingTarget: Type: AWS::ApplicationAutoScaling::ScalableTarget Properties: MaxCapacity: 4 MinCapacity: 1 Reso
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
问题是我需要按名称引用每个lambda,并为每个lambda提供单独的ScalableTarget和ScalingPolicy。但是缩放策略对于所有lambda都是相同的
有没有办法在lambdas或ScalableTarget之间删除此重复并共享缩放策略?从逻辑上讲,没有办法做到这一点。Lambda并不表示单个实例,它表示一个层,该层能够根据到达Lambda的请求生成多个实例来运行函数 由于每个lambda可以具有不同的属性,如运行时和内存,因此每个lambda的缩放策略将影响它仅创建的实例。这使得在多个lambda之间共享缩放策略是不现实的,因为每个lambda的利用率值根据其属性而不同