vij*_*hmi 3 amazon-web-services aws-cli ssm
执行以下命令时出现错误。但是据我所知,语法是正确的。
指令1:
aws ssm put-parameter --name /Finance/Payroll/elixir3131 --value "P@sSwW)rd" --type SecureString
Run Code Online (Sandbox Code Playgroud)
指令2:
aws ssm put-parameter --name "/Finance/Payroll/elixir3131" --value "P@sSwW)rd" --type SecureString
Run Code Online (Sandbox Code Playgroud)
对于我得到的两个命令:
调用PutParameter操作时发生错误(ValidationException):参数名称必须是标准名称。
AWS CLI Version : aws-cli/1.14.16 Python/2.7.9 Windows/7 botocore/1.8.20
Run Code Online (Sandbox Code Playgroud)
Gab*_*oux 35
aws-sdk我使用npm 包遇到了同样的错误:
ValidationException:参数名称必须是完全限定名称。
如果Name参数包含/,则它也必须以 开头/。
这是一个已确认的工作打字稿示例(假设设置了AWS_PROFILE和env 变量):AWS_REGION
#!/usr/bin/env ts-node
import * as AWS from 'aws-sdk'
const secret = {
Name: "/Finance/Payroll/elixir3131",
Value: "P@sSwW)rd",
Type: "SecureString"
}
const ssm = new AWS.SSM()
ssm.putParameter(secret, (err, data) => {
if (err) {
console.log(err, err.stack);
} else {
console.log(data);
}
});
Run Code Online (Sandbox Code Playgroud)
响应应如下所示:
{ Version: 1, Tier: 'Standard' }
Run Code Online (Sandbox Code Playgroud)
小智 7
我知道这已经被标记为已回答,但是 --cli-input-json 解决方案对我不起作用,因为我需要传递该值的文件名并将该文件的内容读出到参数中。对我来说,这个问题也出现在 Windows 上的 Git bash 中,问题是因为 Git bash 尝试查找以 / 开头的任何内容,并在其前面放置一个系统路径。我的解决方法是将名称字段用双引号引起来,并在第一个 / 之前放置一个空格,以便 Git Bash 会忽略它。看起来像这样
aws ssm put-parameter --name " /my/parameter/store/path/here" --value "somevalue" --type "SecureString"
Run Code Online (Sandbox Code Playgroud)
小智 6
我在Windows 10上使用Git-Bash遇到了相同的问题
解决此“功能”的一种方法是使用 --cli-input-json
例如
aws ssm put-parameter --cli-input-json '{"name": "/Finance/Payroll/elixir3131", "value": "P@sSwW)rd", "type": "SecureString"}'
Run Code Online (Sandbox Code Playgroud)
这里似乎确实对此功能/问题(以及上述解决方案)进行了一些讨论:https : //github.com/aws/aws-cli/issues/2507
编辑:这是正确的命令:
aws ssm put-parameter --cli-input-json '{\"Name\": \"/Finance/Payroll/elixir3131d\", \"Value\": \"P@sSwW)rd\", \"Type\": \"SecureString\"}'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1566 次 |
| 最近记录: |