首先,确保您的用户数据以正确的形式传递给 EC2 实例,例如 EC2 控制台中的用户数据字段中。为了测试,您可以将命令写入用户数据输入框,例如“Write-Output 'Hello World'”,并启动 EC2 实例。
确保您的实例规范配置了 PowerShell 脚本执行策略(ExecutionPolicy) 以允许脚本运行。
在 EC2 实例的事件日志中查看事件详细信息。这些日志将包含有关 EC2 实例启动时所执行的任何用户数据的详细信息。
以下是一个示例 PowerShell 脚本,可以验证用户数据是否被正确运行。
$OutputPath = 'C:\AWS_UserData_Output.txt' $OutputText = 'User Data was executed successfully!' Invoke-WebRequest -Uri 'http://169.254.169.254/latest/meta-data/instance-id' -UseBasicParsing | Out-File -FilePath $OutputPath -Append Write-Output $OutputText | Out-File -FilePath $OutputPath -Append
这个脚本将输出 EC2 实例的实例 ID 和一段文本,在 C:\AWS_UserData_Output.txt 文件中。
如果这些步骤都没有解决您的问题,可以考虑将您的 PowerShell 脚本转换为云初始化脚本(CloudInit)。
以下是一个示例云初始化脚本,执行与示例 PowerShell 脚本相同的操作:
#cloud-config runcmd:
这个脚本在 EC2 实例启动时执行,将输出写入到 C:\AWS_UserData_Output.txt 文件中。