> 백엔드 개발 > Golang > Go aws-lambda 및 terraform의 exec 형식 오류

Go aws-lambda 및 terraform의 exec 형식 오류

WBOY
풀어 주다: 2024-02-13 19:30:09
앞으로
861명이 탐색했습니다.

go aws-lambda 与 terraform 中的 exec 格式错误

PHP 편집자 Xinyi는 "go aws-lambda 및 terraform의 실행 형식 오류"라는 일반적인 문제를 소개합니다. aws-lambda 및 terraform을 사용하여 함수를 생성할 때 Exec 형식 오류 문제가 발생할 수 있습니다. 이는 함수 코드 또는 Terraform 구성의 오류로 인한 것일 수 있습니다. 이 문서는 aws-lambda 함수를 성공적으로 생성하고 실행할 수 있도록 이 문제를 이해하고 해결하는 데 도움이 될 것입니다.

질문 내용

실제로 terraform을 사용하여 golang 람다를 호출할 때 매우 드문 문제에 직면했습니다. 그래서 기본적으로 저는 terraform을 사용하여 람다, golang이 포함된 API 게이트웨이와 같은 모든 리소스를 배포합니다. 문제는 terraform을 사용하여 golang 람다 바이너리 .zip 파일을 람다에 배포할 때 경로를 사용하여 요청을 확인할 때 exec 형식 오류가 반환된다는 것입니다. 간단한 js 람다 함수를 테스트한 결과 Terraform의 모든 코드는 훌륭하고 형식이 지정되었으며 제대로 작동합니다. 바이너리 아키텍처 문제인 것 같지만, 저는 aws에서 사용하는 람다와 동일한 바이너리 아키텍처를 사용하고 있습니다. 누구든지 도움을 줄 수 있다면 Provide.al2를 사용하여 동일한 문제가 있었고 exec 형식 오류가 발생했습니다.

몇 가지 디버깅 정보

1-디렉토리 구조

으아악

2- Terraform 람다 함수 리소스

으아악

3-빌드 명령

으아악

이렇게 하면 빌드 파일 main이 생성되고 람다 terraform 파일에서 사용할 수 있도록 main.zip으로 패키징됩니다. (amd64는 x86_64의 실행 파일입니다)

amd64를 사용하여 빌드하는 것과 같은 솔루션을 제공하려고 시도했지만 람다 호출에 대해 알지 못하고 go에서 이 실행 파일로 바이너리를 실행할 수 없다고 말합니다.

해결 방법

환경 설정은 정확하지만 사용자가 틀렸습니다. 명령으로 설정합니다.

으아악

이 동작cd 命令设置 GOOS、GOARCH 和 CGO_ENABLED,而不是为 go build이 설정되었습니다.

이것을 시도해 보세요:

으아악

위 내용은 Go aws-lambda 및 terraform의 exec 형식 오류의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:stackoverflow.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿