2013-11-01 52 views
5

如果我有使用包含腳本塊的UserData塊要執行的AWS CloudFormation模板,例如:AWS CloudFormation哪裏會存儲UserData?

"UserData": { 
    "Fn::Base64": { 
     "Fn::Join": [ 
      "", 
      [ 
       "#!/bin/bash\n", 
       "apt-get update\n", 
       "apt-get -y upgrade\n", 
      ] 
     ] 
    } 
} 

實例被創建後,

  1. 我認爲這個腳本塊將被保存要執行的地方?
  2. 如果是這樣,我在哪裏可以在EC2實例上找到這個腳本?
  3. 堆棧創建成功後,AWS會刪除此臨時腳本嗎?

我找不到他們在文檔提及。

感謝

回答

4

用戶數據的實例可用於對實例的任何程序來檢索在此位置:

http://169.254.169.254/latest/user-data 

DNS名稱「實例數據」解析爲IP地址,因此,如果您信任DNS待漲,你也可以使用更容易記住:

http://instance-data/latest/user-data 

這裏是亞馬遜的文檔:

http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AESDG-chapter-instancedata.html

+0

謝謝@Eric哈蒙德,這正是我要找的。 –

1
  1. 我認爲這個腳本塊將被保存的地方被執行?

是,Cloudfomration無論您在「UserData」塊內發送了什麼,都存儲userdata。

  • 如果是這樣,我在哪裏可以找到EC2實例這個腳本?
  • 您可以使用用戶數據@/var/lib/cloud/instance/userdata.txt 和userData日誌@/var/log/cloud-init-output.log

  • 堆棧創建成功後,將AWS刪除此臨時腳本? 不,AWS在創建堆棧後不會刪除userdata腳本。您可以將其用於調試目的。
  • 僅供參考:如果您使用自定義AMI,您可以在/var/lib/cloud/instances/*中看到原始實例用戶數據和當前用戶數據。看起來像AWS永遠不會刪除用戶數據歷史記錄。

    希望這有助於爲基本的瞭解。