AWS Lambda已支援用Go語言編寫的無伺服器應用

來源:互聯網
上載者:User

AWS Lambda已支援用Go語言編寫的無伺服器應用

Go語言是亞馬遜最近才在AWS Lambda提供支援的語言之一,其它語言套件括Node.js、Python、Java和C#。

為了讓你的Go代碼能夠在AWS上部署,你的代碼首先必須位於一個處理常式 (handler) 函數內,然後AWS會將這個函數傳入lambda.Start()。在被調用時,lambda.Start()並不產生傳回值,它會與Lambda內部端點進行通訊,並將調用請求傳遞給處理常式。該處理常式函數可能會有0-2個參數,其中包括請求對象,並且該函數可能會返回0-2個值,其中包括一個error對象,例如:

// main.gopackage mainimport (  "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.gozip 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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.