如何在AWS CLI Bash中转义大括号

时间:2018-05-25 19:56:54

标签: bash amazon-web-services aws-cli

我正在尝试使用AWS CLI Lambda来替换环境变量。然而,我想要替换的值有一对花括号和CLI抱怨json格式,即使我已经把整个东西放在单引号中。这是我的命令:

aws lambda update-function-configuration --function-name myFunc --environment Variables={URL='http://example.com/api/{0}'}

这是错误:

Error parsing parameter '--environment': Expected: ',', received: '}' for input:

有趣的是,如果我删除了右括号},它就可以了:

aws lambda update-function-configuration --function-name myFunc --environment Variables={URL='http://example.com/api/{0'}

请帮助!!!

3 个答案:

答案 0 :(得分:2)

用双引号括起来:

Variables="{URL='http://example.com/api/{0}'}"

aws lambda update-function-configuration --function-name myFunc --environment Variables="{URL='http://example.com/api/{0}'}"
  

调用时发生错误(ResourceNotFoundException)   UpdateFunctionConfiguration操作:找不到函数:   ARN:AWS:拉姆达:US-西-1:1234567890:功能:myFunc的

答案 1 :(得分:1)

aws lambda update-function-configuration --function-name myFunc --environment "Variables={URL='http://example.com/api/{0}'}"

以下是关于aws cli中双引号的详细问题 https://github.com/aws/aws-cli/issues/2638

答案 2 :(得分:0)

这有效,但是我的命令却不同。

aws apigateway update-resource \
    --rest-api-id <rest_api_id> \
    --resource-id <resource_id> \
    --patch-operations 'op=replace,path=/pathPart,value="{something}"'

要点是:

  • 对于整个论点,单引号为
  • 使用双引号将外花括号括起来。