Bạn có thể thêm tập lệnh này vào dữ liệu người dùng cloud-init của mình để tải các thẻ EC2 xuống tệp cục bộ:
#!/bin/sh
INSTANCE_ID=`wget -qO- http://instance-data/latest/meta-data/instance-id`
REGION=`wget -qO- http://instance-data/latest/meta-data/placement/availability-zone | sed 's/.$//'`
aws ec2 describe-tags --region $REGION --filter "Name=resource-id,Values=$INSTANCE_ID" --output=text | sed -r 's/TAGS\t(.*)\t.*\t.*\t(.*)/\1="\2"/' > /etc/ec2-tags
Bạn cần cài đặt các công cụ AWS CLI trên hệ thống của mình: bạn có thể cài đặt chúng bằng một packages
phần trong tệp cấu hình đám mây trước tập lệnh, sử dụng AMI đã bao gồm chúng hoặc thêm một apt
hoặc yum
lệnh vào đầu tập lệnh.
Để truy cập các thẻ EC2, bạn cần một chính sách như thế này trong vai trò IAM của phiên bản của bạn:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1409309287000",
"Effect": "Allow",
"Action": [
"ec2:DescribeTags"
],
"Resource": [
"*"
]
}
]
}
Các thẻ EC2 của phiên bản sẽ có sẵn ở /etc/ec2-tags
định dạng sau:
FOO="Bar"
Name="EC2 tags with cloud-init"
Bạn có thể bao gồm tệp nguyên gốc trong tập lệnh shell bằng cách sử dụng . /etc/ec2-tags
, ví dụ:
#!/bin/sh
. /etc/ec2-tags
echo $Name
Các thẻ được tải xuống trong quá trình khởi tạo phiên bản, vì vậy chúng sẽ không phản ánh các thay đổi tiếp theo.
Tập lệnh và chính sách IAM dựa trên câu trả lời của itaifrenkel.