手机版
你好,游客 登录 注册
背景:
阅读新闻

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

[日期:2018-02-08] 来源:infoq.com  作者:Sergio De Simone ,译者 张兰月 [字体: ]

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代码的信息。

查看英文原文AWS Lambda Now Supports Go for Serverless Applications

本文永久更新链接地址http://www.linuxidc.com/Linux/2018-02/150820.htm

linux
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款