【问题标题】:Add stage variable in aws api gateway via cli通过 cli 在 aws api 网关中添加阶段变量
【发布时间】:2018-11-29 05:01:58
【问题描述】:

通过 aws cli 执行此操作的正确语法是什么?

aws apigateway update-stage --rest-api-id $api_id --stage-name 'test_stage' --patch-operations op="add",path=/variables,value="{server:8.8.8.8}"

我无法正确理解value=".." 的最后一部分。文档对我帮助不大。

【问题讨论】:

    标签: aws-api-gateway aws-cli


    【解决方案1】:

    经过多次尝试和错误,我终于成功了:

    aws apigateway update-stage --rest-api-id $api_id --stage-name 'test_stage' -- 补丁操作 op="replace",path=/variables/server,value="8.8.8.8"

    op="replace" 代替 "add" 起作用(对我来说很奇怪,因为我试图添加一个变量)。变量名在路径中,然后是值。 AWS 以这种方式执行命令后返回以下响应:

    {
        "stageName": "test_stage", 
        "variables": {
            "server": "8.8.8.8"
        }, 
        "cacheClusterEnabled": false, 
        "cacheClusterStatus": "NOT_AVAILABLE", 
        "deploymentId": "kg39574", 
        "lastUpdatedDate": 1512838534, 
        "createdDate": 1512705498, 
        "methodSettings": {}
    }
    

    【讨论】:

    • 供将来参考,这是我们 API 参考中的文档docs.aws.amazon.com/apigateway/api-reference/link-relation/…
    • 当我在舞台名称周围添加单引号时,它向我抱怨。您可能需要将其删除。
    • 我们如何一次添加多个值?我有很多阶段变量,当我想重新创建它们时发现很难,有没有从另一个 API 网关复制的选项?。
    【解决方案2】:

    尝试两件事

    用单引号代替双引号

    aws apigateway update-stage \
    --rest-api-id $api_id \
    --stage-name 'test_stage' \
    --patch-operations op='add',path=/variables,value='{server:8.8.8.8}'
    

    转义 {} 字符

    aws apigateway update-stage \
    --rest-api-id $api_id \
    --stage-name 'test_stage' \
    --patch-operations op="add",path=/variables,value="\{server:8.8.8.8\}"
    

    Reference 用于 cli 中的参数

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-05
      • 2022-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-06
      • 1970-01-01
      相关资源
      最近更新 更多