如何在用户数据中获取AWS Instance标签?

Öme*_*lak 3 powershell amazon-ec2 amazon-web-services user-data aws-powershell

我使用aws ec2 userdata和windows powershell脚本.我需要实例引导.我的想法是:

  • EC2实例标签adds.It的关键名称"Version",它的值为"1.0.0.158-branchname"

我试图在userdata中获取版本标记值.我检查了aws http api.它无法返回标签.我写了简单的PowerShell脚本:

$instanceId = (New-Object System.Net.WebClient).DownloadString("http://169.254.169.254/latest/meta-data/instance-id")
aws ec2 describe-tags --filters $filter --query 'Tags[*]'
Run Code Online (Sandbox Code Playgroud)

我可以使用aws http api获取实例ID.我无法获取实例标签,因为AWS ec2 userdata无法启动"aws.exe".

此脚本是正确的 - 它在实例启动之前手动运行.

注意:"aws"是"aws.exe"(https://aws.amazon.com/cli/)

Öme*_*lak 8

我解决了,我的问题是使用aws cli.我使用powershell api并修复它.

$instanceId = (New-Object System.Net.WebClient).DownloadString("http://169.254.169.254/latest/meta-data/instance-id")
$versionTag =  Get-EC2Tag | ` Where-Object {$_.ResourceId -eq $instanceId -and $_.Key -eq 'Version'}
Run Code Online (Sandbox Code Playgroud)