【发布时间】:2021-05-13 07:05:35
【问题描述】:
我们有一个 n 号自动缩放组。 ec2 实例。我们创建了一个 route53 记录集(多 wieght),它指向自动缩放组的 IP 地址。对于每个 ec2 扩展操作,我想查询自动扩展组中正在运行的实例并使用 userdata 脚本更新 dns。
我正在使用 aws cli 来查询在 autoscaling 组中运行的 ec2 实例:
aws autoscaling describe-auto-scaling-instances --region us-east-1 --output text --query "AutoScalingInstances[?AutoScalingGroupName=='myapp-asg'].InstanceId" | xargs -n1 aws ec2 describe-instances --instance-ids $ID --region us-east-1 --query "Reservations[].Instances[].PrivateIpAddress" --output text
这会以以下格式提供自动缩放组中的所有 IP 地址:
20.91.0.1
20.91.0.2
20.91.0.3
20.91.0.4
使用 aws cli 我想更新 dns。以下是我正在使用的命令:
aws --region us-east-1 route53 change-resource-record-sets --hosted-zone-id "Zone-id" --change-batch '{"Changes": [{"Action": "UPSERT","ResourceRecordSet": {"Name": "'"myrecord.mydomain.com"'","Type": "A","TTL": 60,"Weight": 200,"SetIdentifier":"myrecord","ResourceRecords": [{"Value": "20.91.0.1"},{"Value": "20.91.0.2"}]}}]}'
如何自动化从第一个命令获得的 ipadress 以更新第二个命令中记录集的值
【问题讨论】:
标签: amazon-web-services shell aws-cli amazon-route53 aws-auto-scaling