読者の皆様へ:お客様のご要望に応じて、重要なものを逃すことなく、ノイズを低減できる一連の機能を開発しました。興味のあるトピックを選択して、電子メールとWeb通知を入手してください。
AmazonはAWS LambdaにおけるGoのサポートを発表した。AWS上で実行されるサーバレスアプリケーションをGoで開発する方法を切り開いた。
Goは、AmazonがAWS LambdaでNode.js、Python、Java、C#とともにサポートを追加した最新の言語である。
GoコードをAWSデプロイメント用に準備するには、ハンドラ関数内に配置する必要がある。このハンドラ関数は次にlambda.Start()
に渡される。lambda.Start()
は呼び出された後にリターンされることなく、Invoke要求をハンドラに渡すために内部のLambdaエンドポイントと通信する。ハンドラ関数は、リクエストオブジェクトを含む0~2つの引数をとる必要があり、エラーオブジェクトを含む0~2つの値を返す。例えば、次の通りである。
// 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では、Linux用のAWS Lambdaで使用されるGoコードをコンパイルし、AWS Lambdaのデプロイメントの準備を整えるためにそれをzip圧縮する必要がある。これは、例えば次のように実行される。
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::<account-id>:role/<role> \
--handler main
さらに、AWSはAWS X-Ray for Goライブラリを提供している。これによって、X-Rayデーモン用にトレースデータを生成でき、開発したGo関数を解析およびデバッグできる。
開発者がGoを使用してAWS Lambda関数を開発しやすくするために、Amazonはライブラリ、サンプル、ツールを含むGitHubリポジトリを公開している。テスト、構築、AWS LambdaへのGoコードのデプロイの詳細はこちら。
Rate this Article
- Editor Review
- Chief Editor Action