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

1 分钟阅读
0

我想在启动新的 Amazon Elastic Compute Cloud (Amazon EC2) Windows 实例时运行自定义脚本。

简短描述

在 Amazon EC2 中启动实例时,可以选择以下选项:

  • 将用户数据传递给实例以执行常见的自动配置任务
  • 在实例启动后运行脚本

如果您要运行在实例启动时启动的脚本,请将该脚本添加到用户数据中。用户数据由 EC2Config(Windows Server 2012 R2 及更早版本)、EC2Launch 或 EC2Launch V2(Windows Server 2016 及更新版本)进行处理。

解决方法

向用户数据添加脚本时,请将其包含在特殊标签中。此标签用于确定命令是在命令提示符窗口中运行还是使用 Windows PowerShell 运行。有关详细信息,请参阅在 Windows 实例启动时运行命令

要在启动时运行自定义脚本,请在启动和配置新的 EC2 Windows 实例时指定其用户数据。在标准配置中,可以激活 AWS Windows 亚马逊机器映像 (AMI),以便在首次启动时运行用户数据。

创建自定义脚本以便在启动时运行用户数据

您可以指定是否希望在实例下一次重启之际运行用户数据脚本。或者,您可以指定每次实例重启时都运行用户数据脚本。按照以下步骤创建自定义脚本:

  1. 打开 Amazon EC2 控制台,然后从导航窗格中选择 AMI

  2. 选择一个 AMI,然后选择启动

  3. 选择实例类型。然后,选择下一步: 配置实例详细信息

  4. 对于高级详细信息,请在用户数据文本框中输入您的自定义脚本。

    自定义脚本可以灵活地作为批处理脚本、Windows PowerShell 脚本、YAML 配置脚本和 Base64 编码运行。要允许脚本运行,请在将脚本添加到用户数据时将其包含在特定的标签中。例如,您可以使用 powershell 标签指定 Windows PowerShell 脚本。有关脚本类型和示例脚本语法的更多信息,请参阅用户数据脚本
    **注意:**首次启动后,用户数据不会自动运行。如果脚本包含 persist 标签,则启动程序将在后续重启或启动期间运行用户数据。

  5. 要在每次重启实例时运行用户数据脚本,请添加以下命令:

    <persist>true</persist>
  6. 完成启动向导以启动实例。

**注意:**您可以选择在现有的 Amazon EC2 Windows 实例上运行自定义脚本。有关详细信息,请参阅重启或启动实例时如何在现有 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
AWS 官方
AWS 官方已更新 7 个月前