AWS Lambda Golang HelloWorld 快速入门

作者:梅琳marlin2024.01.18 09:14浏览量:9

简介:本文将引导您在 AWS Lambda 上使用 Golang 编写和部署一个简单的 HelloWorld 函数。我们将介绍设置 AWS 账户、安装必要的工具、编写代码、上传代码到 AWS Lambda,以及测试和监控等步骤。

在开始之前,您需要有一个 AWS 账户。如果您还没有 AWS 账户,请先前往 AWS 官网并按照提示进行注册。注册完成后,您将获得一个 AWS 访问密钥和密钥 ID,这两个值将在后续步骤中用于身份验证。
接下来,您需要安装 AWS CLI(命令行界面)以及 Go 编程环境。确保您的系统已经安装了这些工具。
在命令行中输入以下命令来安装 AWS CLI:

  1. aws --version

如果未安装 AWS CLI,将提示您安装。按照屏幕上的指示进行操作即可。
接下来,您需要安装 Go 编程环境。请访问 Go 官网并按照说明进行安装。确保将 Go 的可执行文件添加到系统的环境变量中。
安装完成后,打开终端或命令提示符,创建一个新的 Go 项目目录并进入该目录:

  1. mkdir my-go-lambda
  2. cd my-go-lambda

接下来,在项目目录中创建一个新的 Go 文件,例如 main.go,并将以下代码复制粘贴到文件中:

  1. package main
  2. import "context"
  3. import "fmt"
  4. import "log"
  5. import "github.com/aws/aws-lambda-go/events"
  6. import "github.com/aws/aws-lambda-go/lambda"
  7. func main() {
  8. lambda.Start(handler)
  9. }
  10. func handler(ctx context.Context, request events.APIGatewayProxyRequest) (events.APIGatewayProxyResponse, error) {
  11. fmt.Println("Hello, World!")
  12. return events.APIGatewayProxyResponse{Body: "Hello, World!", StatusCode: 200}, nil
  13. }

这个简单的 Go 程序定义了一个 Lambda 函数,当触发该函数时,将在控制台输出 “Hello, World!”。接下来,我们将在本地构建这个程序并将其上传到 AWS Lambda。
在终端中输入以下命令来构建和打包您的 Lambda 函数:

  1. goland build -o lambda_function .

这将生成一个名为 lambda_function 的可执行文件。接下来,我们将使用 AWS CLI 将该文件上传到 AWS Lambda:

  1. awslambda create-function -f lambda_function -l golang1.x -r us-west-2 -y initial-policy -t my-go-lambda -a arn:aws:iam::123456789012:user/lambda_basic_execution_role -p my-go-lambda -z my-go-lambda-alias --handler main --runtime go1.x --description "My Golang Lambda Function" --timeout 10

请将 arn:aws:iam::123456789012:user/lambda_basic_execution_role 替换为您的 IAM 角色 ARN。此外,my-go-lambda 是您的 Lambda 函数的名称和别名,my-go-lambda-alias 是您的 Lambda 函数的别名,main 是您的 Lambda 函数的处理器函数名,go1.x 是您使用的 Go 版本,10 是您的 Lambda 函数的超时时间(以秒为单位)。您可以根据需要修改这些参数。
上传完成后,您可以使用以下命令测试您的 Lambda 函数:

  1. awslambda invoke -l golang1.x -f my-go-lambda

这将触发您的 Lambda 函数并在控制台输出结果。如果一切正常,您应该看到 “Hello, World!” 的输出。此外,您还可以使用 AWS CloudWatch 来监控和跟踪您的 Lambda 函数的性能和资源使用情况。