AWS Lambda已支持用Go语言编写的无服务器应用

  • A+
所属分类:Linux编程
摘要

Go语言是亚马逊最近才在AWS Lambda提供支持的语言之一,其它语言包括Node.js、Python、Java和C#。

Go语言是亚马逊最近才在AWS Lambda提供支持的语言之一,其它语言包括Node.js、Python、Java和C#。

为了让你的Go代码能够在AWS上部署,你的代码首先必须位于一个处理程序 (handler) 函数内,然后AWS会将这个函数传入lambda.Start()。在被调用时,lambda.Start()并不生成返回值,它会与Lambda内部端点进行通信,并将调用请求传递给处理程序。该处理程序函数可能会有0-2个参数,其中包括请求对象,并且该函数可能会返回0-2个值,其中包括一个error对象,例如:

// main.go

package main



import (

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

)



func hello(request Request) (string, error) {

  return "Hello!", nil

}



func main() {

  // Make the handler available for Remote Procedure Call by AWS Lambda

  lambda.Start(hello)

}

AWS要求编写的Go代码必须能在AWS Lambda for Linux里使用,并且需要将代码压缩为zip文件,以便于在AWS Lambda中进行部署。你可以运行以下代码来实现它:

GOOS=linux go build -o main main.go

zip main.zip main

该zip文件的名字必须与被部署的Lambda函数的Handler配置属性相匹配。

在代码被压缩为zip文件后,你就可以通过以下AWS CLI来部署它了:

$ aws lambda create-function \

--region us-west-1 \

--function-name HelloFunction \

--zip-file fileb://./main.zip \

--runtime go1.x \

--tracing-config Mode=Active

--role arn:aws:iam:::role/ \

--handler main

此外,AWS还为Go提供了AWS X-Ray。AWS X-Ray是一组类库,它可以生成跟踪数据,以便于X-Ray守护进程(daemon)分析和调试Go函数。

为了让开发者用Go来开发AWS Lambda函数更加简便,亚马逊公布了一个GitHub资源库,其中包含大量库、样本和工具。你可以点击此链接获取更多有关如何在AWS上测试、构建和部署Go代码的信息。

除非注明,否则均为@蒲公英网原创文章,转载必须以链接形式标明本文链接

本文链接:https://www.aipgy.com/81336.html

avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: