如何解决解析参数'--change-batch'时出错:预期:'=',收到:''作为输入:
我想更新CNAME记录。运行以下powershell脚本时,我得到Error parsing parameter '--change-batch': Expected: '=',received: ' ' for input:
。我在here中看到了另一个aws命令的类似错误。我验证了我正在按照建议使用file://
。我还看到了另一个post,并且验证了我没有双引号或单引号的前后。我能够验证json数据,并确保该文件存在于同一目录中。我不知道发生了什么事。任何帮助表示赞赏。我的powershell脚本在下面。
$json = '{"Changes": [{"Action": "UPSERT","ResourceRecordSet": {"Name": "dev.mydns.com","Type": "CNAME","TTL": 300,"ResourceRecords": [{"Value": "s-########1.server.transfer.us-east-1.amazonaws.com."}]}},{"Action": "UPSERT","ResourceRecordSet": {"Name": "qa.mydns.com","ResourceRecords": [{"Value": "s-########2.server.transfer.us-east-1.amazonaws.com"}]}},"ResourceRecordSet": {"Name": "uat.mydns.com","ResourceRecords": [{"Value": "s-########3.server.transfer.us-east-1.amazonaws.com."}]}}]}'
$json | Out-File "route_update.json"
#I was able to get the file content and print using below commands
<#
$jsondata = Get-Content -Raw -Path route_update.json
Write-Host $jsondata
#>
aws route53 change-resource-record-sets --hosted-zone-id <ZoneId> --change-batch file://route_update.json
解决方法
我能够直接使用json字符串进行操作。
aws route53 change-resource-record-sets --hosted-zone-id <ZoneId> --change-batch '{\"Changes\": [{\"Action\": \"UPSERT\",\"ResourceRecordSet\": {\"Name\": \"dev.mydns.com\",\"Type\": \"CNAME\",\"TTL\": 300,\"ResourceRecords\": [{\"Value\": \"s-########1.server.transfer.us-east-1.amazonaws.com.\"}]}}]}'
,
如果要使用 JSON 文件,相对路径(macOS/Linux)的格式为;
--change-batch file://./dnsUpdates.json
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。