使用aws-cli将URL保存到AWS参数存储

3st*_*cks 4 amazon-web-services aws-cli aws-parameter-store

好吧,所以我试图以编程方式将我的无服务器生成的API端点存储在参数存储中,以供另一个项目使用。

仅作为示例,我将尝试存储google.com。

aws ssm put-parameter --name /dev/someStore --value https://google.com --type String

这失败了,这是可以理解的。

Error parsing parameter '--value': Unable to retrieve https://google.com: received non 200 status code of 301

但是,如果我将网址用引号引起来...

aws ssm put-parameter --name /dev/someStore --value "https://google.com" --type String

它仍然失败,并显示相同的错误。有什么方法可以阻止cli尝试评估URL并仅保存该死的字符串吗?

jar*_*mod 9

发生这种情况是因为AWSCLI的行为令人怀疑。看到URL时,它将调用HTTP GET作为结果。

您可以按照以下方法解决此问题:

aws ssm put-parameter --cli-input-json '{
  "Name": "/dev/someStore",
  "Value": "https://google.com",
  "Type": "String"
}'
Run Code Online (Sandbox Code Playgroud)

或者,您可以将JSON存储在名为params.json的文件中并调用:

aws ssm put-parameter --cli-input-json file://params.json
Run Code Online (Sandbox Code Playgroud)

您可以在aws / aws-cli / issues / 2507上跟踪根本问题。

  • 噢,天哪,你是传说。我正在撕头发。谢谢你的帮助。 (2认同)

Evg*_*yst 8

默认情况下,AWS CLI 遵循以https://或开头的任何字符串参数http://。获取这些 URL,并将下载的内容用作参数而不是 URL。

要使 CLI 不处理以普通字符串参数为前缀https://http://与普通字符串参数不同的字符串,请运行:

aws configure set cli_follow_urlparam false
Run Code Online (Sandbox Code Playgroud)

cli_follow_urlparam控制 CLI 是否会尝试跟踪以前缀https://或开头的参数中的 URL 链接http://

请参阅https://docs.aws.amazon.com/cli/latest/topic/config-vars.html

问题:

aws ssm put-parameter --name /config/application/some-url --value http://google.com --type String --region eu-central-1 --overwrite

Error parsing parameter '--value': Unable to retrieve http://google.com: received non 200 status code of 301
Run Code Online (Sandbox Code Playgroud)

解决方案:

aws configure set cli_follow_urlparam false
aws ssm put-parameter --name /config/application/some-url --value http://google.com --type String --region eu-central-1 --overwrite

{
    "Version": 1
}
Run Code Online (Sandbox Code Playgroud)


kas*_*tti 5

@jarmod 链接的关于这个主题的 GitHub 讨论也有另一个解决方案。我会在这里复制它给其他人,以避免扫描整个线程。

将以下内容~/.aws/config与存在的任何其他设置一起添加到您的。

[default]
cli_follow_urlparam = false
Run Code Online (Sandbox Code Playgroud)

PS似乎在“从文件加载参数”部分下的AWS文档中也提到了它。