AWS Lambda Golang HelloWorld 快速入门

这篇具有很好参考价值的文章主要介绍了AWS Lambda Golang HelloWorld 快速入门。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

操作步骤

以下测试基于 WSL2 Ubuntu 22.04 环境

# 下载最新 golang
wget https://golang.google.cn/dl/go1.21.1.linux-amd64.tar.gz

# 解压
tar -C ~/.local/ -xzf go1.21.1.linux-amd64.tar.gz

# 配置环境变量 PATH
echo 'export PATH=$PATH:~/.local/go/bin' >> ~/.bashrc
source ~/.bashrc

# 确认执行版本
go version
# go version go1.21.1 linux/amd64

# 配置使用国内镜像
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct

# 创建项目文件夹
mkdir aws-lambda-go && cd aws-lambda-go

# 初始化项目
go mod init aws-lambda-go

# 安装依赖
go get github.com/aws/aws-lambda-go/lambda

# 编辑主函数
vim main.go

// main.go
package main

import (
        "fmt"
        "context"
        "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)
}
# 编译
GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -o main main.go

# 打包
zip -jrm main.zip main

来到 Lambda 控制台, 创建新的函数, Runtime 选择 Go 1.x
AWS Lambda Golang HelloWorld 快速入门,AWS,aws,golang,云计算
Code > Upload from > .zip file

AWS Lambda Golang HelloWorld 快速入门,AWS,aws,golang,云计算
选择前面编译并打包的 main.zip 文件上传. 随后创建新的 Test 匹配 Lambda 处理的 Event 数据格式:

{
  "name": "Dexter"
}

AWS Lambda Golang HelloWorld 快速入门,AWS,aws,golang,云计算
Test, 欧耶~报错了!
AWS Lambda Golang HelloWorld 快速入门,AWS,aws,golang,云计算
返回 Code 标签页, 看到默认的 Handler 设置的是 hello, 这和我们写的入口函数名称不匹配, 是导致测试失败的原因.
AWS Lambda Golang HelloWorld 快速入门,AWS,aws,golang,云计算
Edit 修改 Handler 为 main
AWS Lambda Golang HelloWorld 快速入门,AWS,aws,golang,云计算
再次 Test, succeeded!

AWS Lambda Golang HelloWorld 快速入门,AWS,aws,golang,云计算

填坑记录

参考 官方文档 中的编译命令:

GOOS=linux GOARCH=amd64 go build -o bootstrap main.go

编译打包上传后在测试时会报错:

/var/task/main: /lib64/libc.so.6: version `GLIBC_2.32' not found (required by /var/task/main)

需要在编译时加上参数 CGO_ENABLED=0 也就是前面操作步骤中的编译命令才能正确运行. 相关讨论:
https://github.com/aws/aws-lambda-go/issues/340文章来源地址https://www.toymoban.com/news/detail-728490.html

到了这里,关于AWS Lambda Golang HelloWorld 快速入门的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • AWS中Lambda集成SNS

    在Lambda中,创建名为AWSSNSDemo的函数 创建名为:SNSTopicTest的主题        发布消息后,在DynamoDB中, 如果检测到发布的消息数据,则说明集成成功。  

    2024年02月13日
    浏览(36)
  • AWS Lambda 操作 RDS 示例

    创建一个 Lambda 接收调用时传入的数据, 写入 RDS 数据库 Post 表存储文章信息. 表结构如下: id title content create_date 1 我是标题 我是正文内容 2023-10-21 15:20:00 RDS 控制台创建 MySQL 实例, 不允许 Public access (后面 Lambda 需要通过 VPC 访问) Secrets Manager 控制台创建 Credentials for Amazon RDS da

    2024年02月08日
    浏览(36)
  • 【SERVERLESS】AWS Lambda上实操

    通过Serverless的发展历程及带给我们的挑战,引出我们改如何改变思路,化繁为简,趋利避害,更好的利用其优势,来释放企业效能,为创造带来无限可能。 无服务器计算近年来与云原生计算都是在互联网背景下产生,其顾名思义是指开发者在构建和运行应用时无需管理服务

    2024年04月15日
    浏览(34)
  • 使用AWS Lambda函数的最佳实践!

    主题 函数代码 函数配置 指标和警报 处理流 安全最佳实践 有关 Lambda 应用程序最佳实践的更多信息,请参阅 Serverless Land 中的 Application design。 从核心逻辑中分离 Lambda 处理程序。这样您可以创建更容易进行单元测试的函数。在 Node.js 中可能如下所示: 利用执行环境重用来提

    2024年02月07日
    浏览(38)
  • 如何使用 AWS Lambda 运行 selenium

    借助 AWS Lambda 运行 selenium 来爬取网络数据。 与手动从网站收集数据相比,爬虫可以为我们节省很多时间,对于爬虫的每次请求而言,这相当于 AWS Lambda 的每次函数的运行。 AWS Lambda 是一种将脚本部署到云的简单且价格低廉的服务,如果我们要实现在 AWS Lambda 上运行 selenium 实

    2024年02月03日
    浏览(34)
  • Golang快速入门到实践学习笔记

    Go程序设计的一些规则 Go之所以会那么简洁,是因为它有一些默认的行为: 大写字母开头的变量是可导出的,也就是其它包可以读取 的,是公用变量;小写字母开头的就是不可导出的,是私有变量。 大写字母开头的函数也是一样,相当于class 中的带public的公有函数;

    2024年02月20日
    浏览(41)
  • 基于 AWS Lambda 的 SaaS 应用教程

    在本教程中,我们将探讨如何使用 AWS Lambda 构建一个简单的 Software as a Service (SaaS) 应用程序。我们的示例应用将是一个用于短链接生成的服务。我们将使用 Node.js 来编写 Lambda 函数,并使用其他 AWS 服务来管理和扩展我们的应用。 步骤 1: 准备工作 确保你已经拥有 AWS 账户,并

    2024年01月21日
    浏览(32)
  • AWS中lambda与DynamoDB的集成

    前言:我在整个集成过程中,存在最大的问题有两个, 1. 没有考虑到lambda函数的权限,即对DynamoDB或者其他如Kinesis的权限授权,导致无法写入或者读取。 2.最初使用了异步方式调用,导致无法写数据到DynamoDB,把代码改成同步调用即可  创建好之后保存,然后进行部署(deplo

    2024年02月13日
    浏览(56)
  • AWS Lambda - 同步/异步调用,事件源,目标

    Hello大家好,我们今天继续讨论AWS Lambda的内容。 Lambda函数有三种调用方式。 第一种方式是同步调用。 当我们使用API、CLI以及API网关等调用函数时,就是同步调用。 当您同步调用函数时,Lambda会运行该函数并等待响应,当函数完成时将结果同步返回,所以您的代码将等待这个

    2024年02月10日
    浏览(32)
  • mac安装Golang开发环境及快速入门

    目录 一、Mac brew 安装go环境 1.1 安装步骤 1.2 设置GOPATH 及环境变量 1.3 编写第一个go程序 二、快速入门 2.1 快速入门需求 2.2 go学习(自用) 2.2.1 go基础程序 2.2.2 变量声明 2.2.3 常量和枚举 2.2.4 函数与多种返回值 2.2.5 init函数与import导包 2.2.6 import匿名、别名导包 2.2.7 defer调用顺

    2024年02月15日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包