【问题标题】:how to use aws route53 list-resource-record-sets cli如何使用 aws route53 list-resource-record-sets cli
【发布时间】:2020-06-08 05:34:13
【问题描述】:

我正在尝试使用 aws route53 cli 命令通过查询列出 zoneId 中的资源记录集

aws route53 list-resource-record-sets \
  --hosted-zone-id $zoneId \
  --query "ResourceRecordSets[?Name == 'abcd.example.com.']"

但是我收到了这个错误

Bad value for --query "ResourceRecordSets[?Name: Bad jmespath expression: Unclosed " delimiter: "ResourceRecordSets[?Name

我尝试了几种方法

aws route53 list-resource-record-sets \
  --hosted-zone-id $zoneId \
  --query \"ResourceRecordSets[?Name == 'abcd.jazz.t-mobile.com.']\"
aws route53 list-resource-record-sets \
  --hosted-zone-id $zoneId \
  --query \"ResourceRecordSets[?Name == \'abcd.jazz.t-mobile.com.\']\"

但是每次我遇到同样的错误时,我做错了什么? 另外我不是在终端中运行它,而是在 jenkins 脚本中运行,所以我按照以下方式进行操作

sh(aws route53 list-resource-record-sets \
  --hosted-zone-id $zoneId \
  --query "ResourceRecordSets[?Name == 'abcd.example.com.']")

【问题讨论】:

    标签: escaping aws-cli amazon-route53 jmespath


    【解决方案1】:

    尝试使用反引号来包装您要搜索的值

    aws route53 list-resource-record-sets \
      --hosted-zone-id $zoneId \
      --query 'ResourceRecordSets[?Name==`abcd.example.com.`]'
    

    基于docs

    在 JMESPath 查询表达式中指定文字值(例如上面的“us-west-2”)时,您必须将值括在反引号 (` `) 中才能正确读取。

    【讨论】:

    • 当您在 HostedZone 中有超过 100 条记录时,这是否有效?
    • @Pawel 就像我现在有 146 条记录一样。
    【解决方案2】:

    这对我有用。试试在命令中不要额外的 "。

    aws route53 list-resource-record-sets --hosted-zone-id $zoneid --query "ResourceRecordSets[?Name == 'domain.com.']"
    

    AWS Docs

    【讨论】:

    • 试过这个,但给出了同样的错误。同样正如我所提到的,我必须使用 " 来包装命令,因为我在 jenkins 中使用 sh 脚本执行此命令
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-29
    • 2023-03-24
    相关资源
    最近更新 更多