AWS SSM放置参数Validation Exception

时间:2018-10-22 01:05:14

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

执行以下命令时出现错误。但是据我所知,语法是正确的。

命令1:

(1..49).to_a.shuffle.first(6).sort

命令2:

const functions = require('firebase-functions');
const admin = require('firebase-admin');
const cors = require('cors')({ origin: true, });

exports.storePostData = functions.https.onRequest((request, response) => {
  return cors((request, response) => {

    admin.database().ref('posts').push({
      id: request.body.id,
      title: request.body.title,
      location: request.body.location,
      image: request.body.image
    })
      .then(() => {
        response.status(201).json({message: 'Data stored', id: request.body.id});
      })
      .catch((err) => {
        response.status(500).json({error: err});
      });

  });
});

对于我得到的两个命令:

  

调用PutParameter操作时发生错误(ValidationException):参数名称必须是标准名称。

aws ssm put-parameter --name /Finance/Payroll/elixir3131 --value "P@sSwW)rd" --type SecureString

2 个答案:

答案 0 :(得分:2)

在Windows 10上使用Git-Bash遇到了相同的问题

解决此“功能”的一种方法是使用--cli-input-json

例如

aws ssm put-parameter --cli-input-json '{"name": "/Finance/Payroll/elixir3131", "value": "P@sSwW)rd", "type": "SecureString"}'

这里似乎确实对此功能/问题(以及上述解决方案)进行了一些讨论: 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\"}'

答案 1 :(得分:1)

我尝试了两个命令。在Windows 10 x64 Pro上没有问题。

AWS Systems Manager最近发生了很大变化。我将升级您的AWS CLI版本,然后重试。您的版本已于2017年12月22日发布。当前版本为1.16.38(10-19-2018)。

aws-cli/1.16.15 Python/3.6.1 Windows/10 botocore/1.12.5

Installing the AWS Command Line Interface