本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
為了協助分類和管理您的 Spot 執行個體請求,您可以使用自訂中繼資料來標記它們。您可以在建立 Spot 執行個體請求時或之後將標記指派給請求。您可以使用 Amazon EC2 主控台或命令列工具來指派標籤。
當您標記 Spot 執行個體請求時,系統不會自動標記 Spot 執行個體請求所啟動的執行個體和磁碟區。您需要明確標記 Spot 執行個體請求啟動的執行個體和磁碟區。您可以在啟動期間或之後將標籤指派給 Spot 執行個體和磁碟區。
如需標籤運作方式的詳細資訊,請參閱標記您的 Amazon EC2 資源。
先決條件
授予使用者標記資源的許可。如需有關 IAM 政策和政策範例的詳細資訊,請參閱 範例:標籤資源。
您建立的 IAM 政策取決於建立 Spot 執行個體請求時使用的方法。
若要授予使用者許可,以便在使用啟動執行個體精靈或 run-instances 時標記資源
建立包含下列項目的 IAM 政策:
-
ec2:RunInstances
動作。這會授予使用者啟動執行個體的許可。
-
對於 Resource
,請指定 spot-instances-request
。這可讓使用者建立 Spot 執行個體請求,它們會請求 Spot 執行個體。
-
ec2:CreateTags
動作。這會授予使用者建立標籤的許可。
-
對於 Resource
,請指定 *
。這可讓使用者標記執行個體啟動期間建立的所有資源。
- JSON
-
-
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowLaunchInstances",
"Effect": "Allow",
"Action": [
"ec2:RunInstances"
],
"Resource": [
"arn:aws:ec2:us-east-1::image/*",
"arn:aws:ec2:us-east-1:*:subnet/*",
"arn:aws:ec2:us-east-1:*:network-interface/*",
"arn:aws:ec2:us-east-1:*:security-group/*",
"arn:aws:ec2:us-east-1:*:key-pair/*",
"arn:aws:ec2:us-east-1:*:volume/*",
"arn:aws:ec2:us-east-1:*:instance/*",
"arn:aws:ec2:us-east-1:*:spot-instances-request/*"
]
},
{
"Sid": "TagSpotInstanceRequests",
"Effect": "Allow",
"Action": "ec2:CreateTags",
"Resource": "*"
}
]
}
當您使用 RunInstances 動作來建立 Spot 執行個體請求,並在建立時標記 Spot 執行個體請求時,您必須知道 Amazon EC2 如何評估 RunInstances 陳述式中的 spot-instances-request
資源,其在 IAM 政策中的評估方式如下:
因此,對於 spot-instances-request
資源,下列規則適用於 IAM 政策:
-
如果您使用 RunInstances 來建立 Spot 執行個體請求,而且您不打算在建立時標記 Spot 執行個體請求,則不需要明確允許 spot-instances-request
資源;呼叫將會成功。
-
如果您使用 RunInstances 來建立 Spot 執行個體請求,並打算在建立時標記 Spot 執行個體請求,則必須在 RunInstances 允許陳述式中包含 spot-instances-request
資源,否則呼叫將會失敗。
-
如果您使用 RunInstances 建立 Spot 執行個體請求,並打算在建立時標記 Spot 執行個體請求,則必須在 CreateTags 允許陳述式中指定 spot-instances-request
資源或包含 *
萬用字元,否則呼叫將會失敗。
例如,IAM 政策 (包括 Spot 執行個體請求不支援的政策),請參閱 使用 競價型執行個體。
若要授予使用者許可,以便在使用 request-spot-instances 時標記資源
建立包含下列項目的 IAM 政策:
-
ec2:RequestSpotInstances
動作。這會授予使用者建立 Spot 執行個體請求的許可。
-
ec2:CreateTags
動作。這會授予使用者建立標籤的許可。
-
對於 Resource
,請指定 spot-instances-request
。這允許使用者只標記 Spot 執行個體請求。
- JSON
-
-
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "TagSpotInstanceRequest",
"Effect": "Allow",
"Action": [
"ec2:RequestSpotInstances",
"ec2:CreateTags"
],
"Resource": "arn:aws:ec2:us-east-1
:111122223333
:spot-instances-request/*"
}
]
}
標記新的 Spot 執行個體請求
在 AWS CLI 和 PowerShell 範例中,設定 Spot 執行個體請求,如下所示:
- Console
-
標記新的 Spot 執行個體請求
-
遵循管理您的 Spot 執行個體程序。
-
若要新增標記,請在新增標記頁面上選擇新增標記,然後輸入標記的金鑰和值。為每個額外的標籤選擇新增其他標籤。
對於每個標籤,您可以用相同的標籤來標記 Spot 執行個體請求、Spot 執行個體以及磁碟區。若要標記所有這三個項目,請確保已選取執行個體、磁碟區和 Spot 執行個體請求。若只要標記一個或兩個,請確定已選取要標記的資源,並清除其他資源。
-
完成建立 Spot 執行個體請求的必要欄位,然後選擇 Launch (啟動)。如需詳細資訊,請參閱管理您的 Spot 執行個體。
- AWS CLI
-
標記新的 Spot 執行個體請求
使用 request-spot-instances 命令搭配 --tag-specification
選項。
標籤規格會將兩個標籤新增至 Spot 執行個體請求: Environment=Production
和 Cost-Center=123
。
aws ec2 request-spot-instances \
--instance-count 5
\
--type "one-time" \
--launch-specification file://specification.json
\
--tag-specification 'ResourceType=spot-instances-request,Tags=[{Key=Environment
,Value=Production
},{Key=Cost-Center
,Value=123
}]'
- PowerShell
-
標記新的 Spot 執行個體請求
使用 Request-EC2SpotInstance cmdlet 搭配 -TagSpecification
參數。
-TagSpecification $tagspec
標籤規格定義如下。它會將兩個標籤新增至 Spot 執行個體請求: Environment=Production
和 Cost-Center=123
。
$tag1 = @{Key="Environment"; Value="Production"}
$tag2 = @{Key="Cost-Center"; Value="123"}
$tagspec = New-Object Amazon.EC2.Model.TagSpecification
$tagspec.ResourceType = "spot-instances-request"
$tagspec.Tags = @($tag1,$tag2)
標記現有的 Spot 執行個體請求
- Console
-
若要使用主控台標記現有的 Spot 執行個體
在您的 Spot 執行個體請求啟動 Spot 執行個體之後,您可以使用主控台將標籤新增到執行個體。如需詳細資訊,請參閱使用主控台新增標籤。
- AWS CLI
-
標記現有的 Spot 執行個體請求或 Spot 執行個體
使用建立標籤命令來標記現有資源。在下列範例中,現有的 Spot 執行個體請求和 Spot 執行個體會以 標記purpose=test
。
aws ec2 create-tags \
--resources sir-0e54a519c9EXAMPLE
i-1234567890abcdef0
\
--tags Key=purpose
,Value=test
- PowerShell
-
標記現有的 Spot 執行個體請求或 Spot 執行個體
使用 New-EC2Tag cmdlet。下列範例會將 標籤新增至purpose=test
現有的 Spot 執行個體請求和 Spot 執行個體。
New-EC2Tag `
-Resource sir-0e54a519c9EXAMPLE
, i-1234567890abcdef0
`
-Tag @{Key="purpose
"; Value="test
"}
- Console
-
- AWS CLI
-
若要描述 Spot 執行個體請求標籤
使用 describe-spot-instance-requests 命令來檢視指定 Spot 執行個體請求的組態,其中包括為請求指定的任何標籤。
aws ec2 describe-spot-instance-requests \
--spot-instance-request-ids sir-0e54a519c9EXAMPLE
\
--query "SpotInstanceRequests[*].Tags"
下列為範例輸出。
[
[
{
"Key": "Environment",
"Value": "Production"
},
{
"Key": "Department",
"Value": "101"
}
]
]
- PowerShell
-
若要描述 Spot 執行個體請求標籤
使用 Get-EC2SpotInstanceRequest cmdlet。
(Get-EC2SpotInstanceRequest `
-SpotInstanceRequestId sir-0e54a519c9EXAMPLE
).Tags
下列為範例輸出。
Key Value
--- -----
Environment Production
Department 101