Amazon web services 当值包含空格时,从Powershell Put项调用的AWS CLI DynamoDB将失败

Amazon web services 当值包含空格时,从Powershell Put项调用的AWS CLI DynamoDB将失败,amazon-web-services,powershell,amazon-dynamodb,Amazon Web Services,Powershell,Amazon Dynamodb,因此,假设我试图通过命令行(不是在文件中,因为我不会为每次调用这个脚本都编写一个文件)将这个JSON发布到dynamo DB表中 {\"TeamId\":{\"S\":\"One_Space_123\"},\"TeamName\":{\"S\":\"One_Space\"},\"Environment\":{\"S\":\"ct

因此,假设我试图通过命令行(不是在文件中,因为我不会为每次调用这个脚本都编写一个文件)将这个JSON发布到dynamo DB表中

{\"TeamId\":{\"S\":\"One_Space_123\"},\"TeamName\":{\"S\":\"One_Space\"},\"Environment\":{\"S\":\"cte\"},\"StartDate\":{\"S\":\"null\"},\"EndDate\":{\"S\":\"null\"},\"CreatedDate\":{\"S\":\"today\"},\"CreatedBy\":{\"S\":\"someones user\"},\"EmailDistributionList\":{\"S\":\"test@test.com\"},\"RemedyGroup\":{\"S\":\"OneSpace\"},\"ScomSubscriptionId\":{\"S\":\"guid-ab22-2345\"},\"ZabbixActionId\":{\"S\":\"11\"},\"SnsTopic\":{\"M\":{\"TopicName\":{\"S\":\"ATopicName\"},\"TopicArn\":{\"S\":\"AtopicArn1234\"},\"CreatedDate\":{\"S\":\"today\"},\"CreatedBy\":{\"S\":\"someones user\"}}}}
然后CLI的结果如下所示:

Unknown options: Space"},"ScomSubscriptionId":{"S":"guid-ab22-2345"},"ZabbixActionId":{"S":"11"},"SnsTopic":{"M":{"TopicName":{"S":"ATopicName"},"TopicArn":{"S":"AtopicArn1234"},"CreatedDate":{"S":"today"},"CreatedBy":{"S":"someones, user"}}}}, user"},"EmailDistributionList":{"S":"test@test.com"},"RemedyGroup":{"S":"One
{\"TeamId\":{\"S\":\"One_Space_123\"},\"TeamName\":{\"S\":\"One_Space\"},\"Environment\":{\"S\":\"cte\"},\"StartDate\":{\"S\":\"null\"},\"EndDate\":{\"S\":\"null\"},\"CreatedDate\":{\"S\":\"today\"},\"CreatedBy\":{\"S\":\"someonesuser\"},\"EmailDistributionList\":{\"S\":\"test@test.com\"},\"RemedyGroup\":{\"S\":\"OneSpace\"},\"ScomSubscriptionId\":{\"S\":\"guid-ab22-2345\"},\"ZabbixActionId\":{\"S\":\"11\"},\"SnsTopic\":{\"M\":{\"TopicName\":{\"S\":\"ATopicName\"},\"TopicArn\":{\"S\":\"AtopicArn1234\"},\"CreatedDate\":{\"S\":\"today\"},\"CreatedBy\":{\"S\":\"someonesuser\"}}}}
如您所见,在上面的示例中,TeamName属性为“一个空格”时失败。如果我将该值更改为“OneSpace”,那么它在“someones user”填充的“CreatedBy”属性上开始失败,但是如果我从所有属性中删除所有空格,我可以突然将此json成功地传递给dynamoDB

在一个工作示例中,json如下所示:

Unknown options: Space"},"ScomSubscriptionId":{"S":"guid-ab22-2345"},"ZabbixActionId":{"S":"11"},"SnsTopic":{"M":{"TopicName":{"S":"ATopicName"},"TopicArn":{"S":"AtopicArn1234"},"CreatedDate":{"S":"today"},"CreatedBy":{"S":"someones, user"}}}}, user"},"EmailDistributionList":{"S":"test@test.com"},"RemedyGroup":{"S":"One
{\"TeamId\":{\"S\":\"One_Space_123\"},\"TeamName\":{\"S\":\"One_Space\"},\"Environment\":{\"S\":\"cte\"},\"StartDate\":{\"S\":\"null\"},\"EndDate\":{\"S\":\"null\"},\"CreatedDate\":{\"S\":\"today\"},\"CreatedBy\":{\"S\":\"someonesuser\"},\"EmailDistributionList\":{\"S\":\"test@test.com\"},\"RemedyGroup\":{\"S\":\"OneSpace\"},\"ScomSubscriptionId\":{\"S\":\"guid-ab22-2345\"},\"ZabbixActionId\":{\"S\":\"11\"},\"SnsTopic\":{\"M\":{\"TopicName\":{\"S\":\"ATopicName\"},\"TopicArn\":{\"S\":\"AtopicArn1234\"},\"CreatedDate\":{\"S\":\"today\"},\"CreatedBy\":{\"S\":\"someonesuser\"}}}}
我找不到任何文档告诉我我不能有空格,如果我从文件中读到它,它会把它和空格一起发布,那个么有什么用呢?如果有人对这件事有任何建议,我当然很感激

就Powershell的价值而言,当前的执行看起来是这样的(尽管我尝试了引用$dbTeamTableEntry变量的各种组合)

    $dbEntry = aws.exe dynamodb put-item --region $region --table-name $table --item "$($dbTeamTableEntry)"

好吧,它实际上并没有回答我的问题,所以我现在将这个问题留待讨论,也许有人可以提供一个正确的答案,但我确实通过从我的convertto json中删除-compress来解决这个问题。出于某种原因,当我得到一个压缩的json正文时,它会出现这个问题,但当它是一个完全未压缩的json时,它不会出现这个问题。好吧,它实际上不会y回答我的问题,所以我现在就把这个问题留待讨论,也许有人可以提供一个正确的答案,但我确实通过从我的convertto json中删除-compress解决了这个问题。出于某种原因,当我得到一个压缩的json正文时,它会出现这个问题,但当它是一个完全未压缩的json时,它不会出现这个问题。