如何對執行使用者資料指令碼來設定 EC2 Windows 執行個體時的問題進行疑難排解?

1 分的閱讀內容
0

我無法在我的 Amazon Elastic Compute Cloud (Amazon EC2) Windows 執行個體上修改使用者資料或執行使用者資料指令碼。或者,我想查看使用者資料日誌,但不知道在哪裡可以找到這些日誌。

解決方法

您的使用者資料無法在即時啟動時執行,或者您無法設定使用者資料

處理使用者資料時,請遵循下列最佳做法:

  • 將您的使用者資料編碼為 base64 格式。
  • 擷取使用者資料時,必須使用 base64 來解碼資料。如果您使用執行個體中繼資料或 Amazon EC2 主控台擷取資料,則會自動為您解碼。
  • 如果您停止執行個體並修改其使用者資料,則啟動執行個體時不會執行更新的使用者資料。若要解決此問題,請參閱下列 EC2 執行個體重新啟動或啟動時使用者資料不會執行一節。
  • 使用者資料指令碼需要特定的語法。如需指令碼語法的詳細資訊和範例,請參閱使用者資料指令碼
  • 若要驗證您的指令碼語法,請在本機測試環境中執行指令碼。
  • 若要連線到中繼資料服務,EC2 執行個體必須連線到 169.254.169.254
  • 當您使用不使用 Sysprep 的自訂 Windows 映像時,永久路由可能會指向父執行個體的預設閘道。若要解決此問題,請參閱為什麼我的 Amazon EC2 Windows 執行個體會出現「正在等待中繼資料服務」錯誤?

EC2 執行個體重新啟動或啟動時,您的使用者資料不會執行

當 EC2 執行個體最初啟動時,依預設,使用者資料只會執行一次。您可以將執行個體設定為每次執行個體重新啟動或啟動時執行使用者資料。如需詳細資訊,請參閱當我重新啟動或啟動執行個體時,如何在現有 EC2 Windows 執行個體上執行命令?

找不到使用者資料日誌

EC2Launch、EC2Launch v2 和 EC2Config 日誌檔包含來自標準輸出和標準錯誤串流的輸出。您可以在下列位置存取日誌檔:

  • EC2Launch: C:\ProgramData\Amazon\EC2-Windows\Launch\Log\UserdataExecution.log
  • EC2Launch v2: C:\ProgramData\Amazon\EC2Launch\log\agent.log
  • EC2Config: C:\Program Files\Amazon\Ec2ConfigService\Logs\Ec2Config.log

**注意:**依預設,**C:\ ProgramData ** 是隱藏的資料夾。

相關資訊

如何在啟動時在新的 EC2 Windows 執行個體上執行命令?

Microsoft 網站上的 Sysprep (系統準備) 概觀

AWS 官方
AWS 官方已更新 1 個月前