通过cli在aws api网关中添加阶段变量

时间:2017-12-08 17:43:19

标签: aws-api-gateway aws-cli

通过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=".."。文档对我没有多大帮助。

2 个答案:

答案 0 :(得分:3)

经过多次试验和错误后我才开始工作:

  

aws apigateway update-stage --rest-api-id $ api_id --stage-name   'test_stage' - 补丁操作   OP = “替换”,路径= /变量/服务器,值= “8.8.8.8”

op =“replace”工作而非“添加”(对我来说很奇怪,因为我正在尝试添加变量)。变量名称位于路径中,之后是值。在以这种方式执行命令后,AWS返回以下响应:

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

答案 1 :(得分:0)

尝试两件事

用单引号替换双引号

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中的参数