【发布时间】:2019-08-12 07:54:44
【问题描述】:
我有一个用户数据 Powershell 脚本,我希望我的 EC2 实例在启动时执行。
这是一个简单的脚本,用于检索当前 EC2 实例的标签。
$InstanceId = (Invoke-WebRequest -Uri http://169.254.169.254/latest/meta-data/instance-id -UseBasicParsing).Content
$Env = (Get-EC2Tag -Filter @{Name="resource-type";Value="instance"},@{Name="key";Value="Environment"} | Where-Object ResourceId -eq "$InstanceId").Value
$Role = (Get-EC2Tag -Filter @{Name="resource-type";Value="instance"},@{Name="key";Value="Role"} | Where-Object ResourceId -eq "$InstanceId").Value
当我在 EC2 中运行此代码时,它可以完美运行,但是当我将它作为用户数据/启动脚本运行时,它可能由于 Internet 连接而无法运行:
Get-EC2Tag : 尝试访问服务的名称解析失败 区域 ap-southeast-2(提供给 -Region 参数或来自 配置的外壳默认值)。无法连接到远程服务器。 可能的原因: - 区域可能指定不正确(您是否指定了可用区?)。 - 该服务可能在该地区不可用。 - 没有网络连接。
我怀疑 Internet 连接一定是根本原因,因为最初,我尝试克隆包含我的脚本的 git 存储库,但它也因超时错误而失败!
如何在实例启动时检索当前实例的标签?
如果我在远程连接到我的 Windows EC2 实例后运行它,它会完美运行。
【问题讨论】:
标签: amazon-web-services amazon-ec2