如何解决调用GetChange操作时发生错误NoSuchChange
我有以下bash脚本:
#!/bin/sh
# Update the DNS
RECORD=$1
if [ -z "${RECORD}" ]; then
echo "Please provide a valid record (URL endpoint)"
exit 1
fi
ID=$(aws route53 change-resource-record-sets --hosted-zone-id ZONEID --cli-input-json "{\"HostedZoneId\":\"Z1R8UBAEXAMPLE\",\"ChangeBatch\":{\"Changes\":[{\"Action\":\"UPSERT\",\"ResourceRecordSet\":{\"Name\":\"www.domain.tld.\",\"Type\":\"CNAME\",\"TTL\":300,\"ResourceRecords\":[{\"Value\":\"${RECORD}\"}]}}]}}" | grep "/change/" | cut -c 15- | sed -e 's/"//g' | sed 's/\(.*\),/\1 /'))
echo "Change ID: ${ID}"
aws route53 get-change --id ${ID} | grep INSYNC
while [ $? -ne 0 ]
do
echo "WAITING FOR DNS TO UPDATE... PLEASE WAIT"
sleep 5s
aws route53 get-change --id ${ID} | grep INSYNC
done
由于某种原因,返回的ID
在末尾附加了一个,
,即使我已经用| grep "/change/" | cut -c 15- | sed -e 's/"//g' | sed 's/\(.*\),/\1 /')
明确地将其删除了
我也尝试过| jq -r '.ChangeInfo.Id'
,但是,
仍被附加到ID
我想念什么?
任何建议都值得赞赏
解决方法
您可以使用--output
option和wait
command
您可以执行类似的操作(未经测试)
ID=$(aws route53 change-resource-record-sets \
--hosted-zone-id ZONEID \
--cli-input-json "{\"HostedZoneId\":\"Z1R8UBAEXAMPLE\",\"ChangeBatch\":{\"Changes\":[{\"Action\":\"UPSERT\",\"ResourceRecordSet\":{\"Name\":\"www.domain.tld.\",\"Type\":\"CNAME\",\"TTL\":300,\"ResourceRecords\":[{\"Value\":\"${RECORD}\"}]}}]}}" \
--query 'ChangeInfo.Id' \
--output text)
aws route53 wait resource-record-sets-changed --id $ID
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。