0

我需要一个示例云形成模板来在 AWS 中预置 ec2 实例时添加现场请求。我尝试使用控制台来预置现场实例,但我找不到在 ec2 中添加现场请求的任何确切模板

4

2 回答 2

1

您可以创建 SpotFleet 资源,这是一个示例

SpotFleet:
 Type: AWS::EC2::SpotFleet
 Properties:
   SpotFleetRequestConfigData:
     IamFleetRole: !GetAtt [IAMFleetRole, Arn]
     SpotPrice: '1000'
     TargetCapacity:
       Ref: TargetCapacity
     LaunchSpecifications:
     - EbsOptimized: 'false'
       InstanceType:
         Ref: InstanceType
     ImageId:
       Fn::FindInMap:
       - AWSRegionArch2AMI
       - Ref: AWS::Region
       - Fn::FindInMap:
         - AWSInstanceType2Arch
         - Ref: InstanceType
         - Arch
     SubnetId:
       Ref: Subnet1
     WeightedCapacity: '8'
   - EbsOptimized: 'true'
     InstanceType:
       Ref: InstanceType
     ImageId:
       Fn::FindInMap:
       - AWSRegionArch2AMI
       - Ref: AWS::Region
       - Fn::FindInMap:
       - AWSInstanceType2Arch
       - Ref: InstanceType
       - Arch
     Monitoring:
       Enabled: 'true'
       SecurityGroups:
        - GroupId:
            Fn::GetAtt:
            - SG0
            - GroupId
      SubnetId:
         Ref: Subnet0
      IamInstanceProfile:
        Arn:
        Fn::GetAtt:
        - RootInstanceProfile
        - Arn
      WeightedCapacity: '8'
于 2021-10-21T15:05:32.983 回答
1

您需要创建 Spot-fleet 资源。

例子 :

"SpotFleet": {
  "Type": "AWS::EC2::SpotFleet",
  "Properties": {
    "SpotFleetRequestConfigData": {
     "IamFleetRole": { "Fn::GetAtt": [ "IAMFleetRole", "Arn"] },
     "SpotPrice": "1000",
     "TargetCapacity": { "Ref": "TargetCapacity" },
     "LaunchSpecifications": [
     {
         "EbsOptimized": "false",
         "InstanceType": { "Ref": "InstanceType" },
         "ImageId": { "Fn::FindInMap": [ "AWSRegionArch2AMI", { "Ref": "AWS::Region" },
                      { "Fn::FindInMap": [ "AWSInstanceType2Arch", { "Ref": "InstanceType" }, "Arch" ] }
                     ]},
          "SubnetId": { "Ref": "Subnet1" },
          "WeightedCapacity": "8"
     },
     {
         "EbsOptimized": "true",
         "InstanceType": { "Ref": "InstanceType" },
         "ImageId": { "Fn::FindInMap": [ "AWSRegionArch2AMI", { "Ref": "AWS::Region" },
                      { "Fn::FindInMap": [ "AWSInstanceType2Arch", { "Ref": "InstanceType" }, "Arch" ] }
                     ]},
          "Monitoring": { "Enabled": "true" },
          "SecurityGroups": [ { "GroupId": { "Fn::GetAtt": [ "SG0", "GroupId" ] } } ],
          "SubnetId": { "Ref": "Subnet0" },
          "IamInstanceProfile": { "Arn": { "Fn::GetAtt": [ "RootInstanceProfile", "Arn" ] } },
          "WeightedCapacity": "8"
         }
         ]
     }
   }
}

可以在此链接中找到更多详细信息: https ://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-spotfleet.html

于 2021-10-21T16:44:20.953 回答