无法在aws cli中分析json字符串以将通知配置添加到s3存储桶

无法在aws cli中分析json字符串以将通知配置添加到s3存储桶,json,aws-cli,Json,Aws Cli,我正在尝试将SNS主题添加到s3 bucket,并使用aws cli命令将通知配置应用到s3bucket,称为“test” 我将SNS主题配置作为json字符串传递,当我尝试打印json字符串时,它会正确打印json值,但不知何故,aws cli会在json字符串中添加逗号 inputevent.sh: #!/bin/bash bucketName=test jsonInput=file:///Users/ish/GitLabProject/validator-cf/inputevent.jso

我正在尝试将SNS主题添加到s3 bucket,并使用aws cli命令将通知配置应用到s3bucket,称为“test”

我将SNS主题配置作为json字符串传递,当我尝试打印json字符串时,它会正确打印json值,但不知何故,aws cli会在json字符串中添加逗号

inputevent.sh:

#!/bin/bash
bucketName=test
jsonInput=file:///Users/ish/GitLabProject/validator-cf/inputevent.json
QueueArn="arn:aws:sns:us-east-1:255353535355:SNSTopic"
template='{ "TopicConfigurations": { "Event": "s3:ObjectCreated:*", "Queue": "%s" } }'


TopicConfiguration=$(printf "$template" "$QueueArn")

echo "$TopicConfiguration"

aws s3api put-bucket-notification-configuration --bucket $bucketName --notification-configuration $TopicConfiguration
错误:

{ "TopicConfigurations": { "Event": "s3:ObjectCreated:*", "Queue": "arn:aws:sns:us-east-1:255353535355:SNSTopic" } }
usage: aws [options] <command> <subcommand> [<subcommand> ...] [parameters]
To see help text, you can run:

  aws help
  aws <command> help
  aws <command> <subcommand> help

Unknown options: {, "Event":, "s3:ObjectCreated:*",, "Queue":, "arn:aws:sns:us-east-1:255353535355:SNSTopic", }, }, "TopicConfigurations":
{“主题配置”:{“事件”:“s3:ObjectCreated:*”,“队列”:“arn:aws:sns:us-east-1:255355:SNSTopic”}
用法:aws[选项][…][参数]
要查看帮助文本,您可以运行:
aws帮助
aws帮助
aws帮助
未知选项:{,“事件”:,“s3:ObjectCreated:*”,“队列”:,“arn:aws:sns:us-east-1:255355:SNSTopic”,},},“主题配置”:

检查您的
模板
变量

基于,在
--通知配置
中的
主题配置
应该是一个数组(因为您可以有多个通知)

尝试将bash脚本中的
模板
变量更新为

template='{ "TopicConfigurations": [{ "Event": "s3:ObjectCreated:*", "Queue": "%s" }] }'
你可以检查一下以得到一个更好的主意