首页 > 解决方案 > 获取 UserData 并将其保存在文本文件中

问题描述

我正在编写脚本,我必须保存 ec2 实例“UserData”并将其保存到文本文件中。

条件 1. 我不想登录每个实例并从那里拉出,因为实例可能未处于“运行”状态。所以我需要在不登录 ec2 实例的情况下执行此操作

条件 2. 我需要从 powershell 脚本中执行。

我找到了 powershell cmdlet “(Get-EC2InstanceAttribute -InstanceId $tid -Attribute userData).UserData”,其中 $tid 是实例 ID。但我不知道这个命令给出的输出格式。AWS CLI 也提供了这种格式。

标签: amazon-web-servicespowershellamazon-ec2powershell-3.0powershell-4.0

解决方案


您得到的“奇怪”格式是用户数据的base64编码。

对powershell无能为力,但如果这有帮助,在linux中你可以获得人类可读的用户数据,如下所示:

user_data=$(aws ec2 describe-instance-attribute \
            --instance-id i-xxxxxxxxxxxxxx \
            --attribute userData \
            --query 'UserData' \
            --output text)

base64 -d <<< ${user_data}

类似的东西在 Windows 中应该是可行的。


推荐阅读