標記新的或現有的 Spot 機群請求及其啟動的執行個體和磁碟區 - Amazon Elastic Compute Cloud

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

標記新的或現有的 Spot 機群請求及其啟動的執行個體和磁碟區

為便於將 Spot 機群請求及其啟動的執行個體和磁碟區分類並進行管理,您可以利用自訂中繼資料來標記這些請求。您可以在建立 Spot Fleet 請求時或之後將標記指派給請求。同樣地,您可以在機群啟動執行個體和磁碟區時或之後,將標籤指派給執行個體和磁碟區。

當您標記機群請求時,由機群啟動的執行個體和磁碟區不會自動加上標記。您需要明確標記由機群啟動的執行個體和磁碟區。您可以選擇僅將標籤指派給機群請求,或僅指派給機群啟動的執行個體,或僅指派給連接至機群啟動之執行個體的磁碟區,或指派給前述所有項目。

注意

您只能為連接至隨需執行個體的磁碟區加標籤。您無法為連接至 競價型執行個體 的磁碟區加標籤。

您可以使用 Amazon EC2 主控台或命令列工具來指派標籤。

如需標籤運作方式的詳細資訊,請參閱標記您的 Amazon EC2 資源

必要條件

授予使用者標記資源的許可。如需詳細資訊,請參閱範例:標籤資源

授予使用者標記資源的許可

建立包含下列項目的 IAM 政策:

  • ec2:CreateTags 動作。這會授予使用者建立標籤的許可。

  • ec2:RequestSpotFleet 動作。這會授予使用者建立 Spot 機群請求的許可。

  • 對於 Resource,您必須指定 "*"。這可讓使用者標記所有資源類型。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "TagSpotFleetRequest", "Effect": "Allow", "Action": [ "ec2:CreateTags", "ec2:RequestSpotFleet" ], "Resource": "*" } ] }
重要

我們目前不支援 spot-fleet-request 資源的資源層級許可。如果您指定 spot-fleet-request 作為資源,當您嘗試標記機群時,會收到未經授權的例外狀況。下列範例說明如何不要設定政策。

{ "Effect": "Allow", "Action": [ "ec2:CreateTags", "ec2:RequestSpotFleet" ], "Resource": "arn:aws:ec2:us-east-1:111122223333:spot-fleet-request/*" }

若要提供存取權,請新增權限至您的使用者、群組或角色:

  • 中的使用者和群組 AWS IAM Identity Center:

    建立權限合集。請按照 AWS IAM Identity Center 使用者指南 中的 建立權限合集 說明進行操作。

  • 透過身分提供者在 IAM 中管理的使用者:

    建立聯合身分的角色。遵循「IAM 使用者指南」的為第三方身分提供者 (聯合) 建立角色中的指示。

  • IAM 使用者:

標記新的 Spot Fleet 以及執行個體和其啟動的磁碟區

若要標記新的 Spot 機群請求及其使用主控台啟動的執行個體和磁碟區
  1. 遵循使用已定義的參數建立 Spot Fleet 請求 (主控台)程序。

  2. 新增標籤的方式取決於您是手動設定機群,還是使用啟動範本。

    • 如果您是手動設定機群,請執行下列動作:

      若要新增標籤,請展開其他啟動參數,選擇新增標籤,然後輸入標籤鍵和值。針對每個標籤,重複執行上述動作。

      對於每個標籤,您可以標記 Spot Fleet 請求和具有相同標籤的執行個體。若要標記兩者,請確定已同時選取執行個體機群。若只要標記 Spot Fleet 請求,請清除 Instances (執行個體)。若只要標記由機群啟動的執行個體,請清除 Fleet (機群)。

      注意

      當您手動設定機群時,並沒有標記磁碟區的選項。磁碟區標籤僅支援連接至 隨需執行個體 的磁碟區。當您手動設定機群時,無法指定隨需執行個體。

    • 如果您是使用啟動範本,請執行下列動作:

      若要將標籤新增至機群請求,請在標籤下選擇建立標籤,然後輸入標籤鍵和值。針對每個標籤,重複執行上述動作。

      若要標記機群中的資源,您必須在啟動範本中指定標籤。

使用 標記新的 Spot Fleet 請求及其啟動的執行個體和磁碟區 AWS CLI

若要在建立 Spot Fleet 請求時加上標記,並在機群啟動執行個體和磁碟區時給它們加上標記,請依下列方式設定 Spot Fleet 請求組態:

Spot Fleet 請求標籤:
  • SpotFleetRequestConfig 中指定 Spot Fleet 請求的標籤。

  • 對於 ResourceType,請指定 spot-fleet-request。若指定其他值,機群請求將會失敗。

  • 對於 Tags,指定金鑰值對。您可以指定多個金鑰值對。

執行個體標籤:
  • LaunchSpecifications 中指定執行個體的標籤。

  • 對於 ResourceType,請指定 instance。若指定其他值,機群請求將會失敗。

  • 對於 Tags,指定金鑰值對。您可以指定多個金鑰值對。

    或者,您可以在 Spot Fleet 請求中參照的啟動範本中,指定執行個體的標籤。

磁碟區標籤:
  • 在 Spot Fleet 請求中參照的啟動範本中,指定磁碟區的標籤。不支援在 LaunchSpecifications 中標記磁碟區。

在下面的例子中,Spot Fleet 請求標記了兩個標籤:Key=Environment and Value=Production 和 Key=Cost-Center and Value=123。由機群啟動的執行個體標記了一個標籤 (這與 Spot Fleet 請求的標籤之一相同):Key=Cost-Center and Value=123。

{ "SpotFleetRequestConfig": { "AllocationStrategy": "priceCapacityOptimized", "ExcessCapacityTerminationPolicy": "default", "IamFleetRole": "arn:aws:iam::111122223333:role/aws-ec2-spot-fleet-tagging-role", "LaunchSpecifications": [ { "ImageId": "ami-0123456789EXAMPLE", "InstanceType": "c4.large", "TagSpecifications": [ { "ResourceType": "instance", "Tags": [ { "Key": "Cost-Center", "Value": "123" } ] } ] } ], "SpotPrice": "5", "TargetCapacity": 2, "TerminateInstancesWithExpiration": true, "Type": "maintain", "ReplaceUnhealthyInstances": true, "InstanceInterruptionBehavior": "terminate", "InstancePoolsToUseCount": 1, "TagSpecifications": [ { "ResourceType": "spot-fleet-request", "Tags": [ { "Key": "Environment", "Value":"Production" }, { "Key": "Cost-Center", "Value":"123" } ] } ] } }
使用 標記 Spot 機群啟動的執行個體 AWS CLI

若要在機群啟動執行個體時加上標記,您可以在 Spot Fleet 請求中參照的啟動範本中指定標籤,或者您可以指定 Spot Fleet 請求組態中的標籤,如下所示:

  • LaunchSpecifications 中指定執行個體的標籤。

  • 對於 ResourceType,請指定 instance。若指定其他值,機群請求將會失敗。

  • 對於 Tags,指定金鑰值對。您可以指定多個金鑰值對。

在下列範例中,機群啟動的執行個體均標記了一個標籤:Key=Cost-Center and Value=123。

{ "SpotFleetRequestConfig": { "AllocationStrategy": "priceCapacityOptimized", "ExcessCapacityTerminationPolicy": "default", "IamFleetRole": "arn:aws:iam::111122223333:role/aws-ec2-spot-fleet-tagging-role", "LaunchSpecifications": [ { "ImageId": "ami-0123456789EXAMPLE", "InstanceType": "c4.large", "TagSpecifications": [ { "ResourceType": "instance", "Tags": [ { "Key": "Cost-Center", "Value": "123" } ] } ] } ], "SpotPrice": "5", "TargetCapacity": 2, "TerminateInstancesWithExpiration": true, "Type": "maintain", "ReplaceUnhealthyInstances": true, "InstanceInterruptionBehavior": "terminate", "InstancePoolsToUseCount": 1 } }
使用 標記連接至 Spot 機群啟動之隨需執行個體的磁碟區 AWS CLI

若要在機群建立磁碟區時標記磁碟區,請在 Spot Fleet 請求中參考的啟動範本中指定標籤。

注意

磁碟區標籤僅支援連接至 隨需執行個體 的磁碟區。您無法為連接至 競價型執行個體 的磁碟區加標籤。

不支援在 LaunchSpecifications 中標記磁碟區。

標記現有 Spot Fleet

若要使用主控台標記現有的 Spot Fleet 請求

建立 Spot 機群請求後,您可以使用主控台為機群請求新增標籤。

  1. https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

  2. 在瀏覽窗格中,選擇 Spot 請求

  3. 選取您的 Spot Fleet 請求。

  4. 選擇標籤索引標籤,然後選擇建立標籤

使用 標記現有的 Spot Fleet 請求 AWS CLI

使用 create-tags 命令來標記現有資源。在下面的例子中,現有的 Spot Fleet 請求會使用 Key=purpose 和 Value=test 標籤。

aws ec2 create-tags \ --resources sfr-11112222-3333-4444-5555-66666EXAMPLE \ --tags Key=purpose,Value=test

檢視 Spot Fleet 請求標籤

若要使用主控台檢視 Spot Fleet 請求標籤
  1. https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

  2. 在瀏覽窗格中,選擇 Spot 請求

  3. 選取您的 Spot Fleet 請求並選擇 Tags (標籤)。

若要描述 Spot Fleet 請求標籤

使用 describe-tag 命令檢視指定資源的標籤。在下面的範例中,會描述指定 Spot Fleet 請求的標籤。

aws ec2 describe-tags \ --filters "Name=resource-id,Values=sfr-11112222-3333-4444-5555-66666EXAMPLE"
{ "Tags": [ { "Key": "Environment", "ResourceId": "sfr-11112222-3333-4444-5555-66666EXAMPLE", "ResourceType": "spot-fleet-request", "Value": "Production" }, { "Key": "Another key", "ResourceId": "sfr-11112222-3333-4444-5555-66666EXAMPLE", "ResourceType": "spot-fleet-request", "Value": "Another value" } ] }

您也可以透過描述 Spot Fleet 請求來檢視 Spot Fleet 請求的標籤。

使用 describe-spot-fleet-requests 命令來檢視指定 Spot Fleet 請求的組態,這包括針對機群請求指定的任何標籤。

aws ec2 describe-spot-fleet-requests \ --spot-fleet-request-ids sfr-11112222-3333-4444-5555-66666EXAMPLE
{ "SpotFleetRequestConfigs": [ { "ActivityStatus": "fulfilled", "CreateTime": "2020-02-13T02:49:19.709Z", "SpotFleetRequestConfig": { "AllocationStrategy": "capacityOptimized", "OnDemandAllocationStrategy": "lowestPrice", "ExcessCapacityTerminationPolicy": "Default", "FulfilledCapacity": 2.0, "OnDemandFulfilledCapacity": 0.0, "IamFleetRole": "arn:aws:iam::111122223333:role/aws-ec2-spot-fleet-tagging-role", "LaunchSpecifications": [ { "ImageId": "ami-0123456789EXAMPLE", "InstanceType": "c4.large" } ], "TargetCapacity": 2, "OnDemandTargetCapacity": 0, "Type": "maintain", "ReplaceUnhealthyInstances": false, "InstanceInterruptionBehavior": "terminate" }, "SpotFleetRequestId": "sfr-11112222-3333-4444-5555-66666EXAMPLE", "SpotFleetRequestState": "active", "Tags": [ { "Key": "Environment", "Value": "Production" }, { "Key": "Another key", "Value": "Another value" } ] } ] }