I'm trying to feed JSON as a String to CloudFormation, and it's not working.

0

I'm trying to schedule an ECS task using a Scheduler::Schedule CFN resource. Everything works fine until I try to encode the "Input" parameter. "Input" expects a String but ECS needs it to be a JSON object and for the life of me I can't make CFN happy.

For example, assuming my JSON object is:

{"containerOverrides":[{"name":"myapp","command":["mycommand"]}]}

I've tried encoding the JSON object using stringify:

"{\"containerOverrides\":[{\"name\":\"myapp\",\"command\":[\"mycommand\"]}]}"

but CFN responds with "Invalid request provided: JSON syntax error in input for the target: [Source: (String)"

I've also tried HTML encoding:

"{"containerOverrides":[{"name":"myapp","command":["mycommand"]}]}"

but I get the same response from CFN.

If I manually update the Schedule using the AWS Console and then export the Schedule using the CLI I can see the plain JSON in the output. So, the Scheduler service is working with JSON but CFN won't process it properly.

profile picture
RNHurt
질문됨 3달 전181회 조회
1개 답변
1
수락된 답변

I figured out the answer. I was formatting the string incorrectly. In my case I had to use a triple backslash to make CFN happy:

"{\\\"containerOverrides\\\":[{\\\"name\\\":\\\"myapp\\\",\\\"command\\\":[\\\"mycommand\\\"]}]}"
profile picture
RNHurt
답변함 3달 전
  • Thank you for posting this. Wasted a whole day trying to figure this out.

로그인하지 않았습니다. 로그인해야 답변을 게시할 수 있습니다.

좋은 답변은 질문에 명확하게 답하고 건설적인 피드백을 제공하며 질문자의 전문적인 성장을 장려합니다.

질문 답변하기에 대한 가이드라인

관련 콘텐츠