douyou9923 2019-05-01 22:48
浏览 297
已采纳

从Golang中的AWS Lambda函数读取参数

I am passing in events into a AWS lambda function from a events.json file and parsing it in a function handler.

The code is:

type MyEvent struct {
    Param string `json:"param1"`
    Token string `json:"token"`
}

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

func Handler(ctx context.Context, evt json.RawMessage) (events.APIGatewayProxyResponse, error) {

    var myEvent MyEvent
    json.Unmarshal(evt, &myEvent)

    fmt.Println(myEvent.Token)
    fmt.Println(len(myEvent.Token))

    // rest of the code is here
}

The event.json file is:

{
    "param1": "Param",
    "token": "35c760f4-b3dc-4657-b4f3–2c6566d4f42e"
}

The output of the function is

35c760f4-b3dc-4657-b4f3–2c6566d4f42e
38

The value of the token that is being printed is correct but the length is not. The length of the token is 36 but is being interpreted/printed as 38.

Why is this happening ?

PS: I am using the AWS SAM cli to run the program.

  • 写回答

1条回答 默认 最新

  • doushi1964 2019-05-02 03:45
    关注

    running

    func main() {
        s := "35c760f4-b3dc-4657-b4f3–2c6566d4f42e"
        fmt.Println(len(s))
    }
    

    "–" this character comes up as a length of 3. It's just a weird character. Has the character code of 8211, you want 45

    https://unicodelookup.com/#8211/1

    https://unicodelookup.com/#45/1

    len(strings.ReplaceAll(myEvent.Token, "–", "-"))
    

    will give you the right length

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 聚类分析或者python进行数据分析
  • ¥15 逻辑谓词和消解原理的运用
  • ¥15 三菱伺服电机按启动按钮有使能但不动作
  • ¥15 js,页面2返回页面1时定位进入的设备
  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号