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

如何从 Go Lambda 函数返回 HTML?

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

北京

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

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

看不清楚,换张图片

免费获取短信验证码

如何从 Go Lambda 函数返回 HTML?

php小编新一在介绍如何从 Go Lambda 函数返回 HTML时,将为大家详细解答这个问题。Go Lambda 函数是一种在云计算中运行的函数,返回 HTML 页面对于许多 Web 开发人员来说是一个常见的需求。在本文中,我们将探讨如何使用 Go 编写 Lambda 函数,并将其返回为 HTML 页面,以供前端使用。通过本文的指导,您将能够轻松实现从 Go Lambda 函数返回 HTML 的功能。现在就让我们开始吧!

问题内容

我有一个 go 程序,当点击 url 时,它以 html 格式提供波形信息。它在带有 nginx 反向代理的虚拟机上运行。

我正在尝试将代码移至 aws lambda,但我很难理解如何触发和返回 html。

原始代码执行了其逻辑,并在下面的片段中将数据作为模板 html 呈现。

func indexhandler(w http.responsewriter, r *http.request) {
    getweather()
    getsurf()
    checksurf(forecastgroup)
    p := codcallpage{title: "swell forecast", runtime: htmlrundate, dailyhtmldata: dailymatchingswells}
    codcalltemplateinit.execute(w, p)
}

func main() {
    http.handlefunc("/", indexhandler)
    http.listenandserve(":8000", nil)
}

我相信我不再需要 nginx 代理,而是需要调用 lambda 函数来运行我的代码。所以我将代码更改为以下内容。

func indexhandler(w http.responsewriter, r *http.request) {
    getweather()
    getsurf()
    checksurf(forecastgroup)
    p := codcallpage{title: "swell forecast", runtime: htmlrundate, dailyhtmldata: dailymatchingswells}
    codcalltemplateinit.execute(w, p)
}

func handler(ctx context.context, request events.apigatewayproxyrequest) error {
    log.println("via lambda !!")
    http.handlefunc("/", indexhandler)
}

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

当我运行 aws 测试时,lba 函数使用默认的 json 文本。

{
  "key1": "value1",
  "key2": "value2",
  "key3": "value3"
}

超时时出现错误:

{
  "errorMessage": "2023-06-08T08:43:13.714Z d6e2acc0-b1da-4e92-820b-63f8f5050947 Task timed out after 15.01 seconds"
}

我不确定 lambda 函数是否忽略了测试,或者该函数没有以正确的方式返回 html,或者 lambda 函数是否需要 json 而不是 html?有什么指示可以帮助我理解以及我应该看哪里吗?

解决方法

无需在 lambda 函数上运行 http 服务器。这段代码应该可以工作

func indexhandler(ctx context.context, req events.apigatewayproxyrequest) (string, error)  {
        getweather()
        getsurf()
        checksurf(forecastgroup)
        p := codcallpage{title: "swell forecast", runtime: htmlrundate, dailyhtmldata: dailymatchingswells}
        var res bytes.buffer
        if err := codcalltemplateinit.execute(&res, p); err != nil {
          return "", err 
        }
        return res.string(), nil
}


func main() {
        lambda.start(indexhandler)
}

使用aws api网关代理,您需要返回return events.apigatewayproxyresponse,因此indexhandler将有所不同。

func indexHandler(ctx context.Context, req events.APIGatewayProxyRequest) (events.APIGatewayProxyResponse, error)  {
        GetWeather()
        GetSurf()
        CheckSurf(ForecastGroup)
        p := CodCallPage{Title: "Swell Forecast", RunTime: htmlRunDate, DailyHtmlData: DailyMatchingSwells}
        var res bytes.Buffer
        if err := codcallTemplateInit.Execute(&res, p); err != nil {
          return events.APIGatewayProxyResponse{StatusCode: 400, Body: err.Error()}, err 
        }
        return events.APIGatewayProxyResponse{Body: res.String(), StatusCode: 200}, nil
}

以上就是如何从 Go Lambda 函数返回 HTML?的详细内容,更多请关注编程网其它相关文章!

免责声明:

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

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

如何从 Go Lambda 函数返回 HTML?

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

下载Word文档

猜你喜欢

如何从 Go Lambda 函数返回 HTML?

php小编新一在介绍如何从 Go Lambda 函数返回 HTML时,将为大家详细解答这个问题。Go Lambda 函数是一种在云计算中运行的函数,返回 HTML 页面对于许多 Web 开发人员来说是一个常见的需求。在本文中,我们将探讨如何
如何从 Go Lambda 函数返回 HTML?
2024-02-08

如何从 PHP 函数返回数据?

php 函数可以通过以下方式返回数据:使用 return 语句隐式类型转换返回数组返回一个对象如何从 PHP 函数返回数据PHP 函数可以返回数据,允许我们在函数调用时访问函数计算的结果。这里介绍了返回数据的几种方法:1. 使用 ret
如何从 PHP 函数返回数据?
2024-04-10

如何从 PHP 函数返回数据?

php 函数可以通过以下方式返回数据:使用 return 语句隐式类型转换返回数组返回一个对象如何从 PHP 函数返回数据PHP 函数可以返回数据,允许我们在函数调用时访问函数计算的结果。这里介绍了返回数据的几种方法:1. 使用 ret
如何从 PHP 函数返回数据?
2024-04-10

当 go 中计时器完成时如何从函数返回?

问题内容我是刚开始开发玩具测验 cli 程序。我正在尝试实现一个计时器,以便当计时器结束时,测验就结束了。这是我的初步实现。func StartTimer(quizFinished chan bool, timer *time.Tim
当 go 中计时器完成时如何从函数返回?
2024-02-06

python如何从函数返回多个值

这篇文章将为大家详细讲解有关python如何从函数返回多个值,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。从函数返回多个值。支持此功能的编程语言并不多。但是,Python 中的函数确实会返回多个值。请参考
2023-06-27

PHP 函数如何返回回调函数?

php 函数可以通过使用以下语法返回回调函数:定义函数以返回回调函数:function returncallback(): callable回调函数可以接受任何参数并返回任何类型的值确保回调函数是可调用的(函数、闭包或可调用的对象)回调函数
PHP 函数如何返回回调函数?
2024-04-10

Go 中如何返回带有参数的函数?

从现在开始,努力学习吧!本文《Go 中如何返回带有参数的函数?》主要讲解了等等相关知识点,我会在编程网中持续更新相关的系列文章,欢迎大家关注并积极留言建议。下面就先一起来看一下本篇正文内容吧,希望能帮到你!问题内容我已经在 j??s 中完成
Go 中如何返回带有参数的函数?
2024-04-04

PHP 函数如何返回 NULL?

php 函数有两种方式返回 null:显式返回 null 或不返回任何值。显式返回 null 使用 return null 语句,而如果不返回任何值,则函数默认返回 null。PHP 函数如何返回 NULL?NULL 是 PHP 中一个特
PHP 函数如何返回 NULL?
2024-04-12

没有返回值的Go函数如何修改数据?

来到编程网的大家,相信都是编程学习爱好者,希望在这里学习Golang相关编程知识。下面本篇文章就来带大家聊聊《没有返回值的Go函数如何修改数据?》,介绍一下,希望对大家的知识积累有所帮助,助力实战开发!问题内容我不明白 bubblesort
没有返回值的Go函数如何修改数据?
2024-04-05

JavaScript如何从箭头函数返回对象/表达式

小编给大家分享一下JavaScript如何从箭头函数返回对象/表达式,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!从箭头函数返回对象/表达式const getSt
2023-06-27

Golang函数如何返回多值?

go 中函数可以通过逗号分隔的多个变量返回多个值。语法为:func functionname(parameters) (returnvalue1, returnvalue2, ..., returnvaluen type) {}。实例:fu
Golang函数如何返回多值?
2024-04-11

PHP 函数如何返回对象?

php 函数可以通过使用 return 语句后跟对象实例来返回对象,从而将数据封装到自定义结构中。语法:function get_object(): object {}。这允许创建具有自定义属性和方法的对象,并以对象的形式处理数据。PHP
PHP 函数如何返回对象?
2024-04-10

PHP 函数如何返回错误?

php 函数返回错误可以通过以下方式:直接返回一个错误值:使用 error_get_last() 函数获取上一个错误信息。抛出一个异常:使用 throw 关键字创建一个异常对象,包含有关错误的详细信息。PHP 函数如何返回错误在 PHP
PHP 函数如何返回错误?
2024-04-10

PHP 函数如何返回资源?

php函数通过内置函数分配系统资源(数据库连接、文件句柄等)以返回资源句柄:1. fopen - 文件处理;2. fsockopen - 网络连接;3. mysqli_connect - 数据库连接;4. curl_init - http请
PHP 函数如何返回资源?
2024-04-10

PHP 函数如何返回常量?

php 函数使用 return 语句返回常量,常量是不可更改的命名值。语法:return constant_name; 1. 定义一个常量;2. 创建一个返回该常量的函数;3. 使用 return 关键字后跟常量名称返回常量。PHP 函数如
PHP 函数如何返回常量?
2024-04-10

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录