我无法在 Amazon Elastic Compute Cloud (Amazon EC2) Windows 实例上修改用户数据或运行用户数据脚本。或者,我想查看用户数据日志,但不知道在哪里找到这些日志。
解决方法
在即时启动时,您的用户数据不运行,或者您无法配置用户数据
处理用户数据时,请遵循以下最佳实践:
- 将您的用户数据编码为 base64 格式。
- 检索用户数据时,必须使用 base64 对数据进行解码。如果您使用实例元数据或 Amazon EC2 控制台检索数据,则会自动为您解码。
- 如果您停止一个实例并修改您的用户数据,则当您启动该实例时,已更新的用户数据不会运行。要解决此问题,请参阅以下“EC2 实例重启或启动时您的用户数据不运行”部分。
- 用户数据脚本需要特定语法。有关脚本语法的详细信息和示例,请参阅用户数据脚本。
- 要验证您的脚本语法,请在本地测试环境中运行脚本。
- 要连接到元数据服务,EC2 实例必须连接到 169.254.169.254。
- 在使用一个未采用 Sysprep 的自定义 Windows 镜像时,永久路由可能会指向父类实例的默认网关。要解决此问题,请参阅为什么我的 Amazon EC2 Windows 实例收到“Waiting for the metadata service”(正在等待元数据服务)错误?
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(系统准备)概述