运行用户数据脚本配置 EC2 Windows 实例时,如何排除故障?

1 分钟阅读
0

我无法在 Amazon Elastic Compute Cloud (Amazon EC2) Windows 实例上修改用户数据或运行用户数据脚本。或者,我想查看用户数据日志,但不知道其具体位置。

解决方案

您已修改或配置了用户数据,但用户数据不会在实例启动时运行。或者,您无法配置用户数据

处理用户数据时,请遵循以下标准:

  • 必须对用户数据进行 Base64 编码。
  • 在对用户数据进行 base64 编码之前,其原始形式限制为 16 KB。
  • 在检索用户数据时必须对其进行 Base64 解码。如果您使用实例元数据或 Amazon EC2 控制台检索数据,则会自动为您解码。
  • 如果您停止一个实例,然后修改其用户数据,则在启动该实例时,已更新的用户数据不会运行。
  • 用户数据脚本需要特定语法。有关脚本语法的详细信息和示例,请参阅 User data scripts
  • 在本地测试环境中运行脚本,以验证语法。
  • EC2 实例必须连接到 169.254.169.254 上的元数据服务。
  • 在使用一个未采用 Sysprep 的自定义 Windows 镜像时,永久路由可能会指向父类实例的默认网关。有关详细信息,请参阅 Why does my Amazon EC2 Windows instance generate a "Waiting for the metadata service" error?

在默认情况下,当 EC2 实例重启或启动时,用户数据不会运行

EC2 实例初次启动时,在默认情况下,用户数据仅运行一次。可以将实例配置为在每次重启或启动实例时运行用户数据。

有关详细信息,请参阅 How do I run a command on an existing EC2 Windows instance when I reboot or start the instance?

找不到用户数据日志

EC2Launch、EC2Launch v2 和 EC2Config 的日志文件包含标准输出和标准错误流的输出。可以在下列位置访问日志文件:

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

**注意:**在默认情况下,C:\ProgramData 是一个隐藏文件夹。

相关信息

如何在新 EC2 Windows 实例启动时运行命令?

Microsoft 网站上的 Sysprep(系统准备)概述

AWS 官方
AWS 官方已更新 8 个月前