How can i pass cognito email details($context.authorizer.claims.email) in an api gateway VTL mapping template to a synchronous express workflow

0

I have a rest api gateway with direct integration with aws step functions. I want to get the email of the logged in user and pass it on to the step functions workflow. How can i get the email details in the integration rrequest? I have the following cloudformation but i cannot get the details from $context.authorizer.claims.email being passed on to the step functions workflow despite the other params being passed on. RequestTemplates: application/json: !Sub - |- #set($inputRoot = $input.path('$')) { "params": [

            {
              "OrganisationName": $('$.OrganisationName')
              "OrgCreatedBy": "$context.authorizer.claims.email"
            }
            
            ]
          }
          {
              "input": "$params",
              "stateMachineArn": "${StateMachineArn}"
          }
        - { StateMachineArn: !Ref OrgAdminStateMachine }
1 réponse
1

Finally succeeded ! After trying harder, here is the api gateway body mapping template for any other person out there; The trick is to manipulate the object this way before.

#set($data = $input.path('$'))
#set($input = " { ""OrganisationName"" : ""$data.OrganisationName"", ""OrgStatus"" : ""$data.OrgStatus"", ""OrgCreatedBy"" : ""$context.authorizer.claims.email"" }")
{ 
    "input": "$util.escapeJavaScript($input).replaceAll("\\'", "'")",
    "stateMachineArn": "<put your step machine arn here>"
}

VTL not my cup of tea, there are few resources with examples especially AWS specific VTL. I wish more tutorials are made for this - maybe i will make one!. Lambda would be the go to for somethings but who doesnt want pure serverless and not to worry about compute. Long live AWS! The power this functionality enables for my use case is tremendous!

répondu il y a 2 ans

Vous n'êtes pas connecté. Se connecter pour publier une réponse.

Une bonne réponse répond clairement à la question, contient des commentaires constructifs et encourage le développement professionnel de la personne qui pose la question.

Instructions pour répondre aux questions