Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Konfigurasikan sumber daya Penskalaan Otomatis Aplikasi dengan CloudFormation
Bagian ini memberikan contoh CloudFormation template untuk kebijakan penskalaan Penskalaan Otomatis Aplikasi dan tindakan terjadwal untuk AWS sumber daya yang berbeda.
penting
Ketika cuplikan Penskalaan Otomatis Aplikasi disertakan dalam template, Anda mungkin perlu mendeklarasikan ketergantungan pada sumber daya skalabel tertentu yang dibuat melalui template menggunakan DependsOn atribut. Ini menimpa paralelisme default dan mengarahkan CloudFormation
untuk beroperasi pada sumber daya dalam urutan tertentu. Jika tidak, konfigurasi penskalaan mungkin diterapkan sebelum sumber daya telah disiapkan sepenuhnya.
Untuk informasi lebih lanjut, lihat Atribut DependsOn.
Kategori cuplikan
Membuat kebijakan penskalaan untuk AppStream armada
Cuplikan ini menunjukkan cara membuat kebijakan dan menerapkannya ke AWS::AppStream::Fleet sumber daya menggunakan sumber AWS::ApplicationAutoScaling::ScalingPolicy daya. Sumber AWS::ApplicationAutoScaling::ScalableTarget daya menyatakan target yang dapat diskalakan yang diterapkan kebijakan ini. Application Auto Scaling dapat menskalakan jumlah instance armada minimal 1 instans dan maksimum 20 instans. Kebijakan tersebut menjaga pemanfaatan kapasitas rata-rata armada pada 75 persen, dengan periode cooldown scale-out dan scale-in 300 detik (5 menit).
Ini menggunakan fungsi Rev intrinsik Fn::Join dan untuk membangun ResourceId properti dengan nama logis AWS::AppStream::Fleet sumber daya yang ditentukan dalam template yang sama. Untuk informasi selengkapnya, lihat Refer ensi fungsi intrinsik.
JSON
{ "Resources" : { "ScalableTarget" : { "Type" : "AWS::ApplicationAutoScaling::ScalableTarget", "Properties" : { "MaxCapacity" : 20, "MinCapacity" : 1, "RoleARN" : { "Fn::Sub" : "arn:aws:iam::${AWS::AccountId}:role/aws-service-role/appstream.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_AppStreamFleet" }, "ServiceNamespace" : "appstream", "ScalableDimension" : "appstream:fleet:DesiredCapacity", "ResourceId" : { "Fn::Join" : [ "/", [ "fleet", { "Ref" : "logicalName" } ] ] } } }, "ScalingPolicyAppStreamFleet" : { "Type" : "AWS::ApplicationAutoScaling::ScalingPolicy", "Properties" : { "PolicyName" : { "Fn::Sub" : "${AWS::StackName}-target-tracking-cpu75" }, "PolicyType" : "TargetTrackingScaling", "ServiceNamespace" : "appstream", "ScalableDimension" : "appstream:fleet:DesiredCapacity", "ResourceId" : { "Fn::Join" : [ "/", [ "fleet", { "Ref" : "logicalName" } ] ] }, "TargetTrackingScalingPolicyConfiguration" : { "TargetValue" : 75, "PredefinedMetricSpecification" : { "PredefinedMetricType" : "AppStreamAverageCapacityUtilization" }, "ScaleInCooldown" : 300, "ScaleOutCooldown" : 300 } } } } }
YAML
--- Resources: ScalableTarget: Type: AWS::ApplicationAutoScaling::ScalableTarget Properties: MaxCapacity: 20 MinCapacity: 1 RoleARN: Fn::Sub: 'arn:aws:iam::${AWS::AccountId}:role/aws-service-role/appstream.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_AppStreamFleet' ServiceNamespace: appstream ScalableDimension: appstream:fleet:DesiredCapacity ResourceId: !Join - / - - fleet - !ReflogicalNameScalingPolicyAppStreamFleet: Type: AWS::ApplicationAutoScaling::ScalingPolicy Properties: PolicyName: !Sub ${AWS::StackName}-target-tracking-cpu75 PolicyType: TargetTrackingScaling ServiceNamespace: appstream ScalableDimension: appstream:fleet:DesiredCapacity ResourceId: !Join - / - - fleet - !ReflogicalNameTargetTrackingScalingPolicyConfiguration: TargetValue: 75 PredefinedMetricSpecification: PredefinedMetricType: AppStreamAverageCapacityUtilization ScaleInCooldown: 300 ScaleOutCooldown: 300
Membuat kebijakan penskalaan untuk cluster Aurora DB
Dalam cuplikan ini, Anda mendaftarkan AWS::RDS::DBCluster sumber daya. Sumber AWS::ApplicationAutoScaling::ScalableTarget daya menunjukkan bahwa cluster DB harus diskalakan secara dinamis untuk memiliki dari satu hingga delapan Replika Aurora. Anda juga menerapkan kebijakan penskalaan pelacakan target ke cluster menggunakan AWS::ApplicationAutoScaling::ScalingPolicy sumber daya.
Dalam konfigurasi ini, metrik standar RDSReaderAverageCPUUtilization digunakan untuk menyesuaikan klaster DB Aurora berdasarkan pemanfaatan CPU rata-rata sebesar 40 persen di seluruh Replika Aurora dalam klaster DB Aurora tersebut. Konfigurasi ini menyediakan periode pendinginan penskalaan ke dalam selama 10 menit dan periode pendinginan penskalaan ke luar selama 5 menit.
Contoh ini menggunakan fungsi Fn::Sub intrinsik untuk membangun ResourceId properti dengan nama logis AWS::RDS::DBCluster sumber daya yang ditentukan dalam template yang sama. Untuk informasi selengkapnya, lihat Refer ensi fungsi intrinsik.
JSON
{ "Resources" : { "ScalableTarget" : { "Type" : "AWS::ApplicationAutoScaling::ScalableTarget", "Properties" : { "MaxCapacity" : 8, "MinCapacity" : 1, "RoleARN" : { "Fn::Sub" : "arn:aws:iam::${AWS::AccountId}:role/aws-service-role/rds.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_RDSCluster" }, "ServiceNamespace" : "rds", "ScalableDimension" : "rds:cluster:ReadReplicaCount", "ResourceId" : { "Fn::Sub" : "cluster:${logicalName}" } } }, "ScalingPolicyDBCluster" : { "Type" : "AWS::ApplicationAutoScaling::ScalingPolicy", "Properties" : { "PolicyName" : { "Fn::Sub" : "${AWS::StackName}-target-tracking-cpu40" }, "PolicyType" : "TargetTrackingScaling", "ServiceNamespace" : "rds", "ScalableDimension" : "rds:cluster:ReadReplicaCount", "ResourceId" : { "Fn::Sub" : "cluster:${logicalName}" }, "TargetTrackingScalingPolicyConfiguration" : { "TargetValue" : 40, "PredefinedMetricSpecification" : { "PredefinedMetricType" : "RDSReaderAverageCPUUtilization" }, "ScaleInCooldown" : 600, "ScaleOutCooldown" : 300 } } } } }
YAML
--- Resources: ScalableTarget: Type: AWS::ApplicationAutoScaling::ScalableTarget Properties: MaxCapacity: 8 MinCapacity: 1 RoleARN: Fn::Sub: 'arn:aws:iam::${AWS::AccountId}:role/aws-service-role/rds.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_RDSCluster' ServiceNamespace: rds ScalableDimension: rds:cluster:ReadReplicaCount ResourceId: !Sub cluster:${logicalName} ScalingPolicyDBCluster: Type: AWS::ApplicationAutoScaling::ScalingPolicy Properties: PolicyName: !Sub ${AWS::StackName}-target-tracking-cpu40 PolicyType: TargetTrackingScaling ServiceNamespace: rds ScalableDimension: rds:cluster:ReadReplicaCount ResourceId: !Sub cluster:${logicalName} TargetTrackingScalingPolicyConfiguration: TargetValue: 40 PredefinedMetricSpecification: PredefinedMetricType: RDSReaderAverageCPUUtilization ScaleInCooldown: 600 ScaleOutCooldown: 300
Membuat kebijakan penskalaan untuk tabel DynamoDB
Cuplikan ini menunjukkan cara membuat kebijakan dengan jenis TargetTrackingScaling kebijakan dan menerapkannya ke AWS::DynamoDB::Table sumber daya menggunakan sumber AWS::ApplicationAutoScaling::ScalingPolicy daya. Sumber AWS::ApplicationAutoScaling::ScalableTarget daya menyatakan target yang dapat diskalakan yang diterapkan kebijakan ini, dengan minimal lima unit kapasitas tulis dan maksimum 15. Kebijakan penskalaan menskalakan throughput kapasitas tulis tabel untuk mempertahankan pemanfaatan target pada 50 persen berdasarkan metrik DynamoDBWriteCapacityUtilization yang sudah ditentukan sebelumnya.
Ini menggunakan fungsi Ref intrinsik Fn::Join dan untuk membangun ResourceId properti dengan nama logis AWS::DynamoDB::Table sumber daya yang ditentukan dalam template yang sama. Untuk informasi selengkapnya, lihat Refer ensi fungsi intrinsik.
catatan
Untuk informasi selengkapnya tentang cara membuat CloudFormation template untuk sumber daya DynamoDB, lihat posting blog Cara menggunakan CloudFormation untuk mengonfigurasi penskalaan otomatis untuk tabel dan indeks
JSON
{ "Resources" : { "WriteCapacityScalableTarget" : { "Type" : "AWS::ApplicationAutoScaling::ScalableTarget", "Properties" : { "MaxCapacity" : 15, "MinCapacity" : 5, "RoleARN" : { "Fn::Sub" : "arn:aws:iam::${AWS::AccountId}:role/aws-service-role/dynamodb.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_DynamoDBTable" }, "ServiceNamespace" : "dynamodb", "ScalableDimension" : "dynamodb:table:WriteCapacityUnits", "ResourceId" : { "Fn::Join" : [ "/", [ "table", { "Ref" : "logicalName" } ] ] } } }, "WriteScalingPolicy" : { "Type" : "AWS::ApplicationAutoScaling::ScalingPolicy", "Properties" : { "PolicyName" : "WriteScalingPolicy", "PolicyType" : "TargetTrackingScaling", "ScalingTargetId" : { "Ref" : "WriteCapacityScalableTarget" }, "TargetTrackingScalingPolicyConfiguration" : { "TargetValue" : 50.0, "ScaleInCooldown" : 60, "ScaleOutCooldown" : 60, "PredefinedMetricSpecification" : { "PredefinedMetricType" : "DynamoDBWriteCapacityUtilization" } } } } } }
YAML
--- Resources: WriteCapacityScalableTarget: Type: AWS::ApplicationAutoScaling::ScalableTarget Properties: MaxCapacity: 15 MinCapacity: 5 RoleARN: Fn::Sub: 'arn:aws:iam::${AWS::AccountId}:role/aws-service-role/dynamodb.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_DynamoDBTable' ServiceNamespace: dynamodb ScalableDimension: dynamodb:table:WriteCapacityUnits ResourceId: !Join - / - - table - !ReflogicalNameWriteScalingPolicy: Type: AWS::ApplicationAutoScaling::ScalingPolicy Properties: PolicyName: WriteScalingPolicy PolicyType: TargetTrackingScaling ScalingTargetId: !Ref WriteCapacityScalableTarget TargetTrackingScalingPolicyConfiguration: TargetValue: 50.0 ScaleInCooldown: 60 ScaleOutCooldown: 60 PredefinedMetricSpecification: PredefinedMetricType: DynamoDBWriteCapacityUtilization
Membuat kebijakan penskalaan untuk layanan Amazon ECS (metrik: CPU dan memori rata-rata)
Cuplikan ini menunjukkan cara membuat kebijakan dan menerapkannya ke AWS::ECS::Service sumber daya menggunakan sumber AWS::ApplicationAutoScaling::ScalingPolicy daya. Sumber AWS::ApplicationAutoScaling::ScalableTarget daya menyatakan target yang dapat diskalakan yang diterapkan kebijakan ini. Aplikasi Auto Scaling dapat menskalakan jumlah tugas minimal 1 tugas dan maksimal 6.
Hal itu membuat dua kebijakan penskalaan dengan jenis kebijakan TargetTrackingScaling. Kebijakan yang digunakan untuk menskalakan layanan ECS berdasarkan penggunaan rata-rata CPU dan memori layanan. Ini menggunakan fungsi Ref intrinsik Fn::Join dan untuk membangun ResourceId properti dengan nama logis sumber daya AWS::ECS::Cluster (myContainerCluster) dan AWS::ECS::Service (myService) yang ditentukan dalam template yang sama. Untuk informasi selengkapnya, lihat Refer ensi fungsi intrinsik.
JSON
{ "Resources" : { "ECSScalableTarget" : { "Type" : "AWS::ApplicationAutoScaling::ScalableTarget", "Properties" : { "MaxCapacity" : "6", "MinCapacity" : "1", "RoleARN" : { "Fn::Sub" : "arn:aws:iam::${AWS::AccountId}:role/aws-service-role/ecs.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_ECSService" }, "ServiceNamespace" : "ecs", "ScalableDimension" : "ecs:service:DesiredCount", "ResourceId" : { "Fn::Join" : [ "/", [ "service", { "Ref" : "myContainerCluster" }, { "Fn::GetAtt" : [ "myService", "Name" ] } ] ] } } }, "ServiceScalingPolicyCPU" : { "Type" : "AWS::ApplicationAutoScaling::ScalingPolicy", "Properties" : { "PolicyName" : { "Fn::Sub" : "${AWS::StackName}-target-tracking-cpu70" }, "PolicyType" : "TargetTrackingScaling", "ScalingTargetId" : { "Ref" : "ECSScalableTarget" }, "TargetTrackingScalingPolicyConfiguration" : { "TargetValue" : 70.0, "ScaleInCooldown" : 180, "ScaleOutCooldown" : 60, "PredefinedMetricSpecification" : { "PredefinedMetricType" : "ECSServiceAverageCPUUtilization" } } } }, "ServiceScalingPolicyMem" : { "Type" : "AWS::ApplicationAutoScaling::ScalingPolicy", "Properties" : { "PolicyName" : { "Fn::Sub" : "${AWS::StackName}-target-tracking-mem90" }, "PolicyType" : "TargetTrackingScaling", "ScalingTargetId" : { "Ref" : "ECSScalableTarget" }, "TargetTrackingScalingPolicyConfiguration" : { "TargetValue" : 90.0, "ScaleInCooldown" : 180, "ScaleOutCooldown" : 60, "PredefinedMetricSpecification" : { "PredefinedMetricType" : "ECSServiceAverageMemoryUtilization" } } } } } }
YAML
--- Resources: ECSScalableTarget: Type: AWS::ApplicationAutoScaling::ScalableTarget Properties: MaxCapacity: 6 MinCapacity: 1 RoleARN: Fn::Sub: 'arn:aws:iam::${AWS::AccountId}:role/aws-service-role/ecs.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_ECSService' ServiceNamespace: ecs ScalableDimension: 'ecs:service:DesiredCount' ResourceId: !Join - / - - service - !RefmyContainerCluster- !GetAttmyService.Name ServiceScalingPolicyCPU: Type: AWS::ApplicationAutoScaling::ScalingPolicy Properties: PolicyName: !Sub ${AWS::StackName}-target-tracking-cpu70 PolicyType: TargetTrackingScaling ScalingTargetId: !Ref ECSScalableTarget TargetTrackingScalingPolicyConfiguration: TargetValue: 70.0 ScaleInCooldown: 180 ScaleOutCooldown: 60 PredefinedMetricSpecification: PredefinedMetricType: ECSServiceAverageCPUUtilization ServiceScalingPolicyMem: Type: AWS::ApplicationAutoScaling::ScalingPolicy Properties: PolicyName: !Sub ${AWS::StackName}-target-tracking-mem90 PolicyType: TargetTrackingScaling ScalingTargetId: !Ref ECSScalableTarget TargetTrackingScalingPolicyConfiguration: TargetValue: 90.0 ScaleInCooldown: 180 ScaleOutCooldown: 60 PredefinedMetricSpecification: PredefinedMetricType: ECSServiceAverageMemoryUtilization
Membuat kebijakan penskalaan untuk layanan Amazon ECS (metrik: jumlah permintaan rata-rata per target)
Contoh berikut menerapkan kebijakan penskalaan pelacakan target dengan metrik ALBRequestCountPerTarget yang telah ditetapkan ke layanan ECS. Kebijakan ini digunakan untuk menambah kapasitas layanan ECS ketika jumlah permintaan per target (per menit) melebihi nilai target. Karena nilai DisableScaleIn diatur menjadi true, kebijakan pelacakan target tidak akan menghapus kapasitas dari target yang dapat diskalakan.
Ini menggunakan fungsi Fn::GetAtt intrinsik Fn::Join dan untuk membangun ResourceLabel properti dengan nama logis sumber daya AWS::ElasticLoadBalancingV2::LoadBalancer (myLoadBalancer) dan AWS::ElasticLoadBalancingV2::TargetGroup (myTargetGroup) yang ditentukan dalam template yang sama. Untuk informasi selengkapnya, lihat Refer ensi fungsi intrinsik.
Properti MaxCapacity dan MinCapacity pada target yang dapat diskalakan dan properti TargetValue nilai parameter referensi kebijakan penskalaan yang Anda teruskan ke templat saat membuat atau memperbarui tumpukan.
JSON
{ "Resources" : { "ECSScalableTarget" : { "Type" : "AWS::ApplicationAutoScaling::ScalableTarget", "Properties" : { "MaxCapacity" : { "Ref" : "MaxCount" }, "MinCapacity" : { "Ref" : "MinCount" }, "RoleARN" : { "Fn::Sub" : "arn:aws:iam::${AWS::AccountId}:role/aws-service-role/ecs.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_ECSService" }, "ServiceNamespace" : "ecs", "ScalableDimension" : "ecs:service:DesiredCount", "ResourceId" : { "Fn::Join" : [ "/", [ "service", { "Ref" : "myContainerCluster" }, { "Fn::GetAtt" : [ "myService", "Name" ] } ] ] } } }, "ServiceScalingPolicyALB" : { "Type" : "AWS::ApplicationAutoScaling::ScalingPolicy", "Properties" : { "PolicyName" : "alb-requests-per-target-per-minute", "PolicyType" : "TargetTrackingScaling", "ScalingTargetId" : { "Ref" : "ECSScalableTarget" }, "TargetTrackingScalingPolicyConfiguration" : { "TargetValue" : { "Ref" : "ALBPolicyTargetValue" }, "ScaleInCooldown" : 180, "ScaleOutCooldown" : 30, "DisableScaleIn" : true, "PredefinedMetricSpecification" : { "PredefinedMetricType" : "ALBRequestCountPerTarget", "ResourceLabel" : { "Fn::Join" : [ "/", [ { "Fn::GetAtt" : [ "myLoadBalancer", "LoadBalancerFullName" ] }, { "Fn::GetAtt" : [ "myTargetGroup", "TargetGroupFullName" ] } ] ] } } } } } } }
YAML
--- Resources: ECSScalableTarget: Type: AWS::ApplicationAutoScaling::ScalableTarget Properties: MaxCapacity: !Ref MaxCount MinCapacity: !Ref MinCount RoleARN: Fn::Sub: 'arn:aws:iam::${AWS::AccountId}:role/aws-service-role/ecs.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_ECSService' ServiceNamespace: ecs ScalableDimension: 'ecs:service:DesiredCount' ResourceId: !Join - / - - service - !RefmyContainerCluster- !GetAttmyService.Name ServiceScalingPolicyALB: Type: AWS::ApplicationAutoScaling::ScalingPolicy Properties: PolicyName: alb-requests-per-target-per-minute PolicyType: TargetTrackingScaling ScalingTargetId: !Ref ECSScalableTarget TargetTrackingScalingPolicyConfiguration: TargetValue: !Ref ALBPolicyTargetValue ScaleInCooldown: 180 ScaleOutCooldown: 30 DisableScaleIn: true PredefinedMetricSpecification: PredefinedMetricType: ALBRequestCountPerTarget ResourceLabel: !Join - '/' - - !GetAttmyLoadBalancer.LoadBalancerFullName - !GetAttmyTargetGroup.TargetGroupFullName
Buat tindakan terjadwal dengan ekspresi cron untuk fungsi Lambda
Cuplikan ini mendaftarkan konkurensi yang disediakan untuk fungsi alias (AWS::Lambda::Alias) bernama BLUE menggunakan sumber daya. AWS::ApplicationAutoScaling::ScalableTarget Hal itu juga membuat tindakan terjadwal dengan jadwal berulang menggunakan ekspresi cron. Zona waktu untuk jadwal berulang adalah UTC.
Ini menggunakan fungsi Ref intrinsik Fn::Join dan dalam RoleARN properti untuk menentukan ARN dari peran terkait layanan. Ini menggunakan fungsi Fn::Sub intrinsik untuk membangun ResourceId properti dengan nama logis dari AWS::Serverless::Function sumber daya AWS::Lambda::Function atau yang ditentukan dalam template yang sama. Untuk informasi selengkapnya, lihat Refer ensi fungsi intrinsik.
catatan
Anda tidak dapat mengalokasikan konkurensi yang disediakan pada alias yang menunjuk ke versi yang tidak dipublikasikan (). $LATEST
Untuk informasi selengkapnya tentang cara membuat CloudFormation template untuk sumber daya Lambda, lihat posting blog Pen jadwalan AWS Lambda Provisioned Concurrency untuk penggunaan puncak berulang
JSON
{ "ScalableTarget" : { "Type" : "AWS::ApplicationAutoScaling::ScalableTarget", "Properties" : { "MaxCapacity" : 250, "MinCapacity" : 0, "RoleARN" : { "Fn::Join" : [ ":", [ "arn:aws:iam:", { "Ref" : "AWS::AccountId" }, "role/aws-service-role/lambda.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_LambdaConcurrency" ] ] }, "ServiceNamespace" : "lambda", "ScalableDimension" : "lambda:function:ProvisionedConcurrency", "ResourceId" : { "Fn::Sub" : "function:${logicalName}:BLUE" }, "ScheduledActions" : [ { "ScalableTargetAction" : { "MinCapacity" : "250" }, "ScheduledActionName" : "my-scale-out-scheduled-action", "Schedule" : "cron(0 18 * * ? *)", "EndTime" : "2022-12-31T12:00:00.000Z" } ] } } }
YAML
ScalableTarget: Type: AWS::ApplicationAutoScaling::ScalableTarget Properties: MaxCapacity: 250 MinCapacity: 0 RoleARN: !Join - ':' - - 'arn:aws:iam:' - !Ref 'AWS::AccountId' - role/aws-service-role/lambda.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_LambdaConcurrency ServiceNamespace: lambda ScalableDimension: lambda:function:ProvisionedConcurrency ResourceId: !Sub function:${logicalName}:BLUE ScheduledActions: - ScalableTargetAction: MinCapacity: 250 ScheduledActionName: my-scale-out-scheduled-action Schedule: 'cron(0 18 * * ? *)' EndTime: '2022-12-31T12:00:00.000Z'
Membuat tindakan terjadwal dengan ekspresi at untuk Armada Spot
Cuplikan ini menunjukkan cara membuat dua tindakan terjadwal yang terjadi hanya sekali untuk AWS::EC2::SpotFleet sumber daya yang menggunakan sumber AWS::ApplicationAutoScaling::ScalableTarget daya. Zona waktu untuk setiap tindakan terjadwal satu kali adalah UTC.
Ini menggunakan fungsi Fn::Join dan Ref intrinsik untuk membangun ResourceId properti dengan nama logis dari AWS::EC2::SpotFleet sumber daya yang ditentukan dalam template yang sama. Untuk informasi selengkapnya, lihat Refer ensi fungsi intrinsik.
catatan
Permintaan Armada Spot harus memiliki jenis permintaan maintain. Penskalaan otomatis tidak didukung untuk permintaan tipe , atau blok Spot.
JSON
{ "Resources" : { "SpotFleetScalableTarget" : { "Type" : "AWS::ApplicationAutoScaling::ScalableTarget", "Properties" : { "MaxCapacity" : 0, "MinCapacity" : 0, "RoleARN" : { "Fn::Sub" : "arn:aws:iam::${AWS::AccountId}:role/aws-service-role/ec2.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_EC2SpotFleetRequest" }, "ServiceNamespace" : "ec2", "ScalableDimension" : "ec2:spot-fleet-request:TargetCapacity", "ResourceId" : { "Fn::Join" : [ "/", [ "spot-fleet-request", { "Ref" : "logicalName" } ] ] }, "ScheduledActions" : [ { "ScalableTargetAction" : { "MaxCapacity" : "10", "MinCapacity" : "10" }, "ScheduledActionName" : "my-scale-out-scheduled-action", "Schedule" : "at(2022-05-20T13:00:00)" }, { "ScalableTargetAction" : { "MaxCapacity" : "0", "MinCapacity" : "0" }, "ScheduledActionName" : "my-scale-in-scheduled-action", "Schedule" : "at(2022-05-20T21:00:00)" } ] } } } }
YAML
--- Resources: SpotFleetScalableTarget: Type: AWS::ApplicationAutoScaling::ScalableTarget Properties: MaxCapacity: 0 MinCapacity: 0 RoleARN: Fn::Sub: 'arn:aws:iam::${AWS::AccountId}:role/aws-service-role/ec2.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_EC2SpotFleetRequest' ServiceNamespace: ec2 ScalableDimension: 'ec2:spot-fleet-request:TargetCapacity' ResourceId: !Join - / - - spot-fleet-request - !ReflogicalNameScheduledActions: - ScalableTargetAction: MaxCapacity: 10 MinCapacity: 10 ScheduledActionName: my-scale-out-scheduled-action Schedule: 'at(2022-05-20T13:00:00)' - ScalableTargetAction: MaxCapacity: 0 MinCapacity: 0 ScheduledActionName: my-scale-in-scheduled-action Schedule: 'at(2022-05-20T21:00:00)'