Условное ветвление документа автоматизации AWS SSM - PullRequest
0 голосов
/ 17 мая 2019

пытается выполнить какое-то условное ветвление в SSM: документ автоматизации.

У меня есть лямбда-функция, которая проверяет определенное условие и отправляет параметр в SSM.

Затем я хочу прочитать параметр (используя aws: invokeLambdaFunction) и использовать параметр в качестве переменной для выполнения ветвления (используя aws: branch). Вот как я это делаю

Я полностью застрял, поэтому любая помощь будет принята с благодарностью


            "Type": "AWS::SSM::Document",

            "Properties": {

                "DocumentType": "Automation",

                "Content": {

                    "description": "This automation document triggers Golden AMI creation workflow.",

                    "schemaVersion": "0.3",

                    "assumeRole": {

                        "Fn::GetAtt": [

                            "AutomationServiceRole",

                            "Arn"

                        ]

                    },

                    "parameters":{

                       the various parameters

                    },

                    "mainSteps": [

                    {

                        "name": "testUpdateNeeded",

                        "action":"aws:invokeLambdaFunction",

                        "timeoutSeconds":1200,

                        "maxAttempts":1,

                        "onFailure":"Abort",

                        "inputs":{

                        "FunctionName":"arn:aws:lambda:MY_ARN_CODE"

                        }

                    },

                    {

                        "name":"assertExecutionParameter",

                        "action":"aws:executeAwsApi",

                        "maxAttempts":1,

                        "onFailure":"Abort",

                        "inputs":{

                            "Service":"ssm",

                            "Api":"GetParameter",

                            "Name":"ssmExecutionParameter"

                        },

                        "outputs":{

                            "Name":"ExecutionParameter",

                            "Selector":"$.Parameter.Value",

                            "Type": "String"

                        }

                    },

                    {

                        "name":"branch",

                        "action":"aws:branch",

                        "inputs":{

                            "Choices":[

                                {

                                    "NextStep":"lastStep",

                                    "Variable":"assertExecutionParameter.ExecutionParameter",

                                    "StringEquals":"Dont trigger"

                                }

                            ],

                            "Default":"startInstances"

                        }

                    },

Я не могу понять, как вывести возвращаемое значение из вызова API. На самом деле, я продолжаю получать следующую ошибку

 `JSON not well-formed. at Line: 1, Column: 2669 (Service: AmazonSSM; Status Code: 400; Error Code: InvalidDocumentContent; Request ID: 142a0482-6065-4715-978c-22ceb6685985)` 

указывает, что форматирование ему не нравится, но указывает не на ту строку. Если я удалю


    "Name":"ExecutionParameter",

    "Selector":"$.Parameter.Value",

    "Type": "String"

}

затем стек обновляется, но я не могу выполнить шаг ветвления, не имея вывода из предыдущего шага ....

...