2017-11-04 2 views
0

어떻게 든 단일 레코드를 업데이트하거나 삭제하거나 route53의 기존 SRV 레코드를 새로 추가 할 수없고 실행 한 내용을 덮어 쓰고 있습니다.route53의 SRV 레코드를 업데이트 할 수 없습니다

echo '{ "Comment": "'$COMMENT'", "Changes":[ { "Action": "UPSERT", "ResourceRecordSet": { "ResourceRecords": [ { "Value": "0 0 7000 '"$FQDN"'" } ], "Name": "'_proctest._tcp."$DNSN"'", "Type": "SRV", "TTL": 5} } ] }' | aws route53 change-resource-record-sets --hosted-zone-id "${ZONEID##*/}" --change-batch file:///dev/stdin --query '[ChangeInfo.Comment, ChangeInfo.Id, ChangeInfo.Status, ChangeInfo.SubmittedAt]' --output text 

bash에서이를 피할 수있는 방법이 있습니까?

답변

0

UPSERT : 리소스 레코드 세트가 아직없는 경우 AWS가 만듭니다. 자원 집합이 존재하면 Amazon Route 53은 요청에있는 값으로 자원 집합을 업데이트합니다.

[ { "Value": "0 0 7000 '"$FQDN"'" } ] 

그것은 단지 하나의 요소의 배열입니다 :

http://docs.aws.amazon.com/cli/latest/reference/route53/change-resource-record-sets.html

당신은 기록 을 변경하는 경로 (53)를 요구하고이에 값을 설정합니다.

기존 값을 유지한다는 것은 기존 레코드와 새 레코드의 전체 배열을 전달한다는 의미입니다. 레코드는 원자 단위로 취급되는 "집합"입니다. 세트에서 수정할 수있는 API 요청을 보낼 수 없습니다.

+0

좋아, 먼저 변수에 기존 SRV 레코드를 읽고 저장해야한다는 것을 의미합니다. 그리고 그 변수에 필요한 모든 것을 수정해야합니다. 이후 모든 레코드를 다시 덮어 쓰게 될 Route53에 다시 적용해야합니다. 그렇다면, 나는 한 번에 하나 이상의 인스턴스에서 이것을 실행할 예정이라면 어떻게 도움이 될지 모르겠습니다. 도와 줘서 고마워 !!! –

관련 문제