Jenkins Pipeline上的AWS cli“期望属性名称用双引号引起来”

akh*_*hna 0 amazon-ec2 amazon-web-services amazon-ecs jenkins jenkins-pipeline

我收到一条错误消息

期望的属性名称用双引号引起来:第1行第3列(字符2)

在Jenkins管道上运行AWS CLI以创建EC2容器服务的任务定义时。有趣的是,该脚本能够在命令行中运行而没有任何错误。

aws ecs register-task-definition --family ${FAMILY} --container-definitions "[{\"name\":\"wildfly\",\"image\":\"${REPOSITORY}\",\"memory\":3024,\"essential\":true,\"portMappings\":[{\"containerPort\":8080,\"hostPort\":8080,\"protocol\":\"tcp\"}]}]"` 
Run Code Online (Sandbox Code Playgroud)

这是完整的错误信息

aws ecs register-task-definition --family wildfly2-b47 --container-definitions [{name:wildfly, image:****/backend:b47, memory:3024, essential:true, portMappings:[{containerPort:8080, hostPort:8080, protocol:tcp}]}]
Run Code Online (Sandbox Code Playgroud)

期望的属性名称用双引号引起来:第1行第3列(字符2)

这是詹金斯阶段代码

aws ecs register-task-definition --family ${FAMILY} --container-definitions "[{\"name\":\"wildfly\",\"image\":\"${REPOSITORY}\",\"memory\":3024,\"essential\":true,\"portMappings\":[{\"containerPort\":8080,\"hostPort\":8080,\"protocol\":\"tcp\"}]}]"` 
Run Code Online (Sandbox Code Playgroud)

请帮我

Ste*_*ing 6

看看--container-definitions零件。您已经通过语法突出显示了它:

--container-definitions "[{"name":
Run Code Online (Sandbox Code Playgroud)

您在双引号name内使用双引号(在周围)。

以下应改为:

--container-definitions '[{"name": ...}]'
Run Code Online (Sandbox Code Playgroud)