2012-03-30 98 views
3

我希望在通過PHP發出請求時能夠包含標籤。當創建點播情況下,您可以創建實例,然後使用它的實例發出以下內容:AWS EC2競價型實例PHP在添加標籤請求時添加標籤

​​

然而,發出即期競價時,該實例不會馬上開始,所以你必須創建一個觀察者標籤來處理這個......除非您可以在請求階段添加標籤。我還沒有找到任何文件來顯示它會如何或看起來像它是否存在?

回答

3

答案是,只有實際創建實例後才能分配標記。爲了標記這一點,我使用了一個監聽器守護進程來觀察新實例並在啓動後標記它們。

+0

你是如何創建偵聽器守護進程的? – 2013-08-02 23:59:29

1

對於未來的人們尋找一個解決這個沒有聽衆:

你也可以擁有實例標籤本身一旦其創建的,通過在用戶數據的標籤請求CLI。這在EC2實例上作爲啓動時的腳本在許多EC2默認AMI上執行(默認情況下也安裝了CLI)。

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

  1. 創建權限在EC2上創建標籤的IAM 作用
  2. 在您的現場實例請求中,指定角色。
  3. 在你的現場實例請求用戶數據中,包含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 
    

您可能需要的eNode上述用戶數據爲base64,如果你使用的CLI或SDK進行現場請求。 AWS Web控制檯可以爲您完成此操作,否則您可以按如下方式傳遞用戶數據:

user="$(cat /scripts/userdata.sh | base64 -w 0)" 

aws ec2 request-spot-instances \"UserData\": \"$user\",\"InstanceType\": \"m1.small\"}" 

就是這樣!