如何将Lambda授权者的PrincipalID传递给另一个Lambda函数

时间:2020-09-01 13:33:21

标签: go aws-lambda authorization aws-api-gateway

我正在使用AWS lambda函数创建一个API。我使用定制的lambda授权器来验证JWT。我正在通过lambda授权者的principalID传递一些数据。我想在另一个lambda函数中使用该PrincipalID。这是我的lambda函数的示例代码。

package main

import (
    "github.com/aws/aws-lambda-go/lambda"
    "log"
  )

type User struct {
    Name string `json:"name"`
    Id string `json:"principalID"`
}

func handler(event User) (id, error){
    
    name := event.Name
    id := event.Id

    log.Println(name)
    log.Println(id)
    return id, nil
}

func main(){
    lambda.Start(handler)
}

在这里,我想将以下json正文传递给API

{
  "name":"XYZ"
}

我也想从lambda授权者到处理程序获取principalID。我尝试使用映射模板"principalID" : "$context.authorizer.principalID"。我可以使用此模板获取principalID,但是无法从json主体获取"name":"XYZ"。如果删除模板,则可以得到"name":"XYZ"。我无法同时获得两个价值。我该怎么做才能同时获得principalID和名称

0 个答案:

没有答案