php editor Xinyi では、「go aws-lambda および terraform での実行形式エラー」という一般的な問題を紹介します。 aws-lambda と terraform を使用して関数を作成する場合、Exec 形式エラーの問題が発生する可能性があります。これは、関数コードまたは Terraform 構成のエラーが原因である可能性があります。この記事は、この問題を理解して解決し、aws-lambda 関数を正常に作成して実行できるようにするのに役立ちます。
実は、terraformを使ってgolang lambdaを呼び出す際に、非常に稀な問題に遭遇しました。したがって、基本的には terraform を使用して、ラムダ、Golang を使用した API ゲートウェイなどのすべてのリソースをデプロイします。問題は、terraform を使用して golang lambda バイナリ .zip ファイルを lambda にデプロイすると、exec ルートを使用してリクエストをチェックすると、exec フォーマット エラーが返されることです。 terraform のすべてのコードは素晴らしく、単純な js ラムダ関数をテストしたようにフォーマットされており、正常に動作します。バイナリ アーキテクチャの問題だと思いますが、AWS で使用しているラムダと同じバイナリ アーキテクチャを使用しています。誰かが助けてくれれば、私もProvide.al2を使用して同じ問題が発生し、execフォーマットエラーが発生しました。
デバッグ情報
1-ディレクトリ構造
リーリー2- terraform ラムダ関数リソース
リーリー3-ビルドコマンド
リーリーこれにより、ビルド ファイル main が作成され、lambda terraform ファイルで使用できるように main.zip としてパッケージ化されます。 (amd64はx86_64の実行ファイルです)
amd64 でビルドするなどの解決策を提供しようとしましたが、ラムダで go を呼び出すと、この実行可能ファイルではバイナリを実行できないと言われます。
お使いの環境 設定は正しいですが、間違ったコマンドに設定してください。
リーリーこの動作は、go build
ではなく、cd
コマンドに対して GOOS、GOARCH、および CGO_ENABLED を設定します。
以上がgo aws-lambda と terraform での exec フォーマット エラーの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。