素晴らしいニュースですが、今はGolangでコードを書いた経験のないこれらの行を書いているので、記事の執筆と並行して切り株やくぼみを通り抜けて、Goで最初に動作するラムダに行きます。
Goをインストールしてワークスペースをセットアップする
実際には、 Goのインストールを開始する必要があります。 私のマシンはIntelプロセッサー上のWindows 10です。 ここでは複雑なことは何もありません:ダウンロード、実行。 GoがPATH環境変数に<インストールパス> \ binへのパスを登録したことを確認するか、検証のためにcli(cmdなど)を実行します。
プロジェクトフォルダーを作成します。
C:\Users\a_gol\go>cd C:\Go C:\Go>mkdir workspace C:\Go>set GOPATH=C:\Go\workspace C:\Go>cd %GOPATH% C:\Go\workspace>
コードを編集するには、 Sublime Text 3を使用するため、Goに適合させる必要があります。 これを行うには、 パッケージコントロールをインストールし、それを使用して( 設定->パッケージコントロール->パッケージのインストール-> GoSublime )、 GoSublimeプラグインをダウンロードします。
Sublime Textを再起動します。
Sublime Textの設定の詳細については、 こちらを参照してください 。
では、最初のHello、worldで Goを試してください!
- Sublime Textでプロジェクトフォルダー%GOPATH%(この職場があります)を開きます。
- 新しいhello.goファイルを作成します
- コードを追加します。
package main import "fmt" func main() { fmt.Printf("hello, world\n") }
- Goコンソールを起動します(ctrl + b)
- コンソールからプログラムを起動します : hello.goを実行します

ラムダオンゴー
ラムダを記述してテストしてみましょう。ラムダは、json形式の2つのフィールドから入力オブジェクトを取得し、json形式の応答と成功した完了の識別子を提供します。
リクエスト:
{ "id": 12345, "value": "some-value" }
答えは:
{ "message": "processed request ID 12345", "ok": true }
この例は記事で説明されています 。
package main import ( "fmt" "github.com/aws/aws-lambda-go/lambda" ) type Request struct { ID float64 `json:"id"` Value string `json:"value"` } type Response struct { Message string `json:"message"` Ok bool `json:"ok"` } func Handler(request Request) (Response, error) { return Response{ Message: fmt.Sprintf("Processed request ID %f", request.ID), Ok: true, }, nil } func main() { lambda.Start(Handler) }
lambdaのアーカイブを構築するには、 aws-lambda-goライブラリをダウンロードする必要があります。 ここで、Linux、macOS、およびWindowsで実行する必要があるアーカイブを作成する手順を確認できます。
すべてをステップで実行しましょう。
- パッケージをダウンロードします。
go get -u github.com/aws/aws-lambda-go/cmd/build-lambda-zip
- cmdを使用して環境変数を設定します。
set GOOS=linux set GOARCH=amd64
- Goコンソールでは、次のコマンドを実行してアーカイブを収集できます。アーカイブはラムダに展開します(これらのコマンドはWindows用で、他の軸用です )。
go build -o main main.go %USERPROFILE%\Go\bin\build-lambda-zip.exe -o main.zip main
これらの手順の後、main.zipアーカイブが表示され、ラムダにダウンロードする必要があります。

AmazonでLambdaを作成する
AWSコンソールからラムダを作成します。
これを行うには、次のものが必要です。
- 目的の地域でLambdaサービスを選択します
- 関数の作成をクリックします
- フィールドに入力します
- 作成後、ラムダコンソールが開きます。Functionコードブロックで、[アップロード]ボタンをクリックしてmain.zipアーカイブをロードする必要があります。 [ハンドラ]フィールドでmainを指定することを忘れないでください。
- コンソールの上部で、[保存]をクリックします。
ラムダをテストします。 これを行うには、コンソールの上部にある[テスト]ボタンをクリックしてテストを作成します。 テスト入力を追加して保存します。
{ "id": 12345, "value": "some-value" }

[テスト]ボタンをクリックして、コンソールの上部でこのテストスクリプトを呼び出すことができます。

Pot穴
環境変数が設定されていません
{ "errorMessage": "fork/exec /var/task/main: exec format error", "errorType": "PathError" }
set GOOS=linux set GOARCH=amd64
cmdでチェックアウトします:
echo %GOOS% echo %GOARCH%
可能性のあるバンプ
1.関数コードブロックの[ハンドラー]フィールドにmainが記述されていません。デフォルトではhelloがあります。
{ "errorMessage": "fork/exec /var/task/hello: no such file or directory", "errorType": "PathError" }
2.テストjsonが正しく設定されていません。
次のようになります。
{ "id": 12345, "value": "some-value" }