我的编程空间,编程开发者的网络收藏夹
学习永远不晚

解决 AWS Lambda 出现“内部服务器错误”的 Go 设置问题

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

解决 AWS Lambda 出现“内部服务器错误”的 Go 设置问题

编程并不是一个机械性的工作,而是需要有思考,有创新的工作,语法是固定的,但解决问题的思路则是依靠人的思维,这就需要我们坚持学习和更新自己的知识。今天编程网就整理分享《解决 AWS Lambda 出现“内部服务器错误”的 Go 设置问题》,文章讲解的知识点主要包括,如果你对Golang方面的知识点感兴趣,就不要错过编程网,在这可以对大家的知识积累有所帮助,助力开发能力的提升。

问题内容

我正在使用 go 文档中的示例函数:

package main

import (
    "context"
    "fmt"

    "github.com/aws/aws-lambda-go/lambda"
)

type MyEvent struct {
    Name string `json:"name"`
}

func HandleRequest(ctx context.Context, name MyEvent) (string, error) {
    return fmt.Sprintf("Hello %s!", name.Name), nil
}

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

如果我使用测试事件控制台并输入 { "name": "john" } 它工作正常。

但是,如果我转到“添加触发器”,单击“api 网关”,然后单击“创建新 api”,将“安全性”设置为“打开”,将其他所有内容保留为默认值,然后单击“添加”,然后单击“保存”。

如果我看到底部列出的 url 作为“api 端点:”并单击它,我会收到“内部服务器错误”。

如果我执行 curl -xpost -d "{ \"name\": \"paul\" }" https://aws-url-endpoint/amazonaws.com/default/mytestfunction

我收到“内部服务器错误”。

我做错了什么?


解决方案


出现 内部服务器错误 的最常见原因之一是您的 Lambda 函数崩溃或未返回触发服务所期望的内容。

在这种情况下,我怀疑两者都有。

当您通过 API Gateway 代理时,您的事件负载不仅仅是您发布的内容。您可以在此处了解有关事件形状的更多信息,包括 API 网关请求的事件:(https://docs.aws.amazon.com/lambda/latest/dg/eventsources.html#eventsources-api-gateway-request)。

您的 lambda 正在崩溃,因为您从 API Gateway 获取的事件无法转换为您的 type MyEvent struct,因为它没有 name 属性;事实上,请求正文实际上位于 event.body 中,作为必须解码的字符串。

可以在此处找到有关使用 lambda 的 API 网关响应预期事件的良好指南 (https://serverless.com/framework/docs/providers/aws/events/apigateway/)

我遇到了此问题,并通过在代码中使用 AWS 结构类型修复了该问题。

p>

我遵循可用的示例函数 here 并使用来自“github.com/aws/aws-lambda-go/events”的 events.APIGatewayProxyRequestevents.APIGatewayProxyResponse 作为我的 DTO。 APIGatewayProxyRequest 是您的处理程序需要的参数,events.APIGatewayProxyResponse 是您的处理程序需要返回的参数。

今天带大家了解了的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注编程网公众号,一起学习编程~

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

解决 AWS Lambda 出现“内部服务器错误”的 Go 设置问题

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

解决 AWS Lambda 出现“内部服务器错误”的 Go 设置问题

编程并不是一个机械性的工作,而是需要有思考,有创新的工作,语法是固定的,但解决问题的思路则是依靠人的思维,这就需要我们坚持学习和更新自己的知识。今天编程网就整理分享《解决 AWS Lambda 出现“内部服务器错误”的 Go 设置问题》,文
解决 AWS Lambda 出现“内部服务器错误”的 Go 设置问题
2024-04-04

亚马逊服务器出现内部错误:解决方法

1.了解内部错误的原因亚马逊服务器出现内部错误可能有多种原因,包括但不限于以下几点:-服务器负载过高-网络连接问题-代码错误或漏洞-数据库问题-服务器配置错误2.检查服务器负载首先,你可以检查服务器的负载情况。如果服务器负载过高,可能会导致内部错误。你可以使用亚马逊提供的监控工具,如亚马逊云监控(AmazonCloudWatch)来查看服务器的负载情况。如果负载过高,你可以考虑优化代码或增加服务器资源。3.检查网络连接内...
2023-10-27

全网多种方法解决Invalid Host header(无效的主机头)服务器域名访问出现的错误

文章目录 1. 复现错误 2. 分析错误 3. 解决错误 4. 其他方法解决该错误 1. 复现错误 在搭建vue-cli环境,用nginx做代理服务器,访问时却显示:Invalid Host header。 2.
2023-08-23

Android开发中调用系统相册上传图片到服务器OPPO等部分手机上出现短暂的显示桌面问题的解决方法

要原因是主体样式设置的问题:这里把appTheme设置一个style即可: @color/white