在2016年windows ami中使用cloudformation中的用户数据

时间:2017-04-04 10:16:35

标签: amazon-web-services amazon-ec2 aws-lambda powershell-v3.0

当我使用cloudformation创建一个windows ec2实例时,我正在尝试添加userdate来运行一些自定义脚本。 (Windows 2016)

 "UserData" : {
        "Fn::Base64" : {
            "Fn::Join" : [
                "",
                [
                    "<powershell> \n",
                    "C:\\ProgramData\\Amazon\\EC2-Windows\\Launch\\Scripts\\InitializeI‌​nstance.ps1 \n",
                    "C:\\ProgramData\\Amazon\\EC2-Windows\\Launch\\Scripts\\create_folder.ps1 \n",
                    "New-Item -Path c:\\test3 -ItemType directory",
                    "</powershell>"
                ]
            ]
        }
    },

以上脚本似乎不起作用。 基本上我需要运行一些自定义脚本(我已在基本映像中添加)和一些powershell命令。

1 个答案:

答案 0 :(得分:0)

默认情况下,2016 Windows AMI中不执行UserData部分。

您必须手动执行以下步骤;

  1. 登录到实例。打开Powershell端子。
  2. 转到目录C:\ ProgramData \ Amazon \ EC2-Windows \ Launch \ Scripts。
  3. 运行 InitializeInstance.ps -Schedule命令。

下次启动后,将执行用户数据部分。

我相信现在您遇到另一个无法手动登录到实例的问题。 然后,您可以做的是通过自定义Windows 2016 AMI并添加以下步骤来创建自己的AMI。

参考:https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2-windows-user-data.html