簡體   English   中英

AWS EC2競價型實例PHP在發出現場請求時添加標記

[英]AWS EC2 Spot Instance PHP add tag when making spot request

我希望能夠在通過PHP發出點請求時包含一個標記。 創建按需實例時,您可以創建實例,然后使用它的實例發出以下內容:

$ec2->create_tags($instance_id, array(
      array('Key' => 'Name', 'Value' => 'MyTestMachine'),
    ));

但是,在發布現貨出價時,實例不會立即啟動,因此您必須創建一個觀察者標記來處理此問題...除非您可以在請求階段添加標記。 我還沒有找到任何文件來說明它會如何發展或看起來像是否存在?

答案是,在實際創建實例之前,您無法分配標記。 為了標記這個,我使用了一個監聽器守護進程來監視新實例並在它們啟動后標記它們。

對於未來沒有聽眾尋求解決方案的人來說:

通過在用戶數據中向CLI添加標記請求,您也可以在創建實例標記后使用它。 這在EC2實例上作為許多EC2默認AMI(默認情況下也安裝了CLI)的引導腳本執行。

要做到這一點(使用股票圖像):

  1. 創建具有在EC2上創建標記的權限的IAM 角色
  2. 在您的spot實例請求中,指定角色。
  3. 在您的spot實例請求用戶數據中,包括create tags CLI命令(對於Linux - 如果您使用的是Windows,也可以使用powershell執行等效操作)。 您將看到有一個內聯命令可以從EC2元數據服務獲取實例ID:

     #!/bin/bash aws ec2 create-tags --resources `wget -q -O - http://169.254.169.254/latest/meta-data/instance-id` --tags Key=somekey1,Value=somevalue1 Key=somekey2,Value=somevalue2 

如果您使用CLI或SDK發出現場請求,則可能需要將上面的用戶數據作為base64進行編碼。 AWS Web控制台可以為您執行此操作。

而已!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM