【问题标题】:Why am I getting an error when querying SSM parameters via get-parameters-by-path?为什么通过 get-parameters-by-path 查询 SSM 参数时出现错误?
【发布时间】:2020-12-30 02:22:36
【问题描述】:

我正在尝试通过路径(在 Gitbash 中)查询一些 SSM 参数:

aws --region eu-west-2 --profile some-profile ssm get-parameters-by-path --path /prefix/prefix2

存在许多与此前缀匹配的参数,例如

/prefix/prefix2/p1
/prefix/prefix2/p2
...

我收到以下错误:

调用时发生错误(ValidationException) GetParametersByPath 操作:参数不符合 参数名称要求。参数名称必须以 正斜杠“/”。不能以“aws”或“ssm”为前缀 (不区分大小写)。它只能使用字母、数字或 以下符号: . (句点)、-(连字符)、_(下划线)。特别的 不允许使用字符。所有子路径(如果指定)必须使用 正斜杠符号“/”。有效示例: /get/parameters2-/by1./path0_.

如果前缀以“/”结尾,我会得到同样的错误。问题的原因是什么?

【问题讨论】:

  • 您使用的是什么版本的 AWS CLI?可以在命令行运行这个命令吗?
  • aws --version == aws-cli/2.0.48 Python/3.7.7 Windows/10 exe/AMD64,它是最新版本的 CLI 工具。
  • 啊,由于某种原因,它与 Gitbash 不兼容。 Windows CMD 有效。
  • 我刚刚尝试过,并且也在我的 Mac 上工作过。 Gitbash 似乎有问题。
  • 单引号、双引号、无引号 - 都给出相同的错误。

标签: amazon-web-services aws-ssm


【解决方案1】:

如果您使用的是基于 Windows 的命令,请使用:

aws ssm get-parameters-by-path --path '//dev//another//path'

(双斜线)

这解决了我在 Windows 上的问题。

【讨论】:

    【解决方案2】:

    如果您在 Windows 上使用基于 MSYS 的 bash,请确保使用前缀 MSYS2_ARG_CONV_EXCL=* 以防止它扩展 /prefix/prefix2 到 windows 路径。

    【讨论】:

      【解决方案3】:

      对于 windows Git Bash,您需要在 Environemnt 变量中使用 MSYS2_ARG_CONV_EXCL="*" (就像@Dylan Nicholson 提到的那样),或者只使用如下导出

      所需的具体代码如下

      export MSYS2_ARG_CONV_EXCL="*"
      

      之后就可以正常调用命令了

      aws ssm describe-parameters --parameter-filters "Key=Name,Values=/dev/another/path"
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-01-26
        • 2011-05-26
        • 1970-01-01
        • 2018-06-15
        • 2013-08-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多