1
AWS Route 53, python3 및 boto3을 사용하여 동적 DNS 업데이터 스크립트를 사용하려고합니다.경로 53에서 boto3을 사용하여 DNS 레코드를 업데이트 할 수 없습니다.
- 들이 일치하는 경우 (그렇다면 출구)
- 업데이트 DNS (기존 IP를 대체 루트 (53) DNS
- 체크 현재 IP 검색 인터넷 서비스에서 컴퓨터의 IP를 검색 : 그것은 다음과 같은 기능 현재 사용중)
4 단계가 작동하지 않습니다. 그 코드는 다음과 같습니다. my_ip
에는 1.2.3.4
과 같은 문자열이 있습니다. 직접 문자열 ("Value": "1.2.3.4"
)로 바꾸려고 시도했지만 오류가 수정되지 않았습니다. hosted_zone_id
은 IP 주소를 가져 오는 데 이미 사용되었으므로 정확합니다. record_name
은 "microbug.uk."
입니다.
response = client.change_resource_record_sets(
HostedZoneId=hosted_zone_id,
ChangeBatch={
"Comment": "Automatic DNS update",
"Changes": [
{
"Action": "UPSERT",
"ResourceRecordSet": {
"Name": record_name,
"Type": "A",
"Region": "eu-west-1",
"TTL": 180,
"ResourceRecords": [
{
"Value": my_ip
},
],
}
},
]
}
)
이것은 오류를 발생한다 :
Traceback (most recent call last):
File "update-dns.py", line 42, in <module>
"Value": my_ip
File "/usr/lib/python3.5/site-packages/botocore/client.py", line 278, in _api_call
return self._make_api_call(operation_name, kwargs)
File "/usr/lib/python3.5/site-packages/botocore/client.py", line 572, in _make_api_call
raise ClientError(parsed_response, operation_name)
botocore.exceptions.ClientError: An error occurred (InvalidInput) when calling the ChangeResourceRecordSets operation: Invalid request
어떤 제안? 미리 감사드립니다.
편집 :
$ cat ~/.aws/config
[default]
region = eu-west-1
output = json
~/.aws/config 파일의 내용을 사용자 인증 정보와 함께 붙여 넣을 수 있으며 my_ip는 큰 따옴표 나 작은 따옴표로 묶어야합니다. – error2007s
@ error2007s 파일을 게시했습니다. my_ip는 스크립트의 다른 위치에 문자열 값 (예 :'my_ip = "8.8.8.8"')이있는 변수입니다. – microbug