php 편집자 Baicao가 이번에는 golang의 AWS Lambda에 대한 질문을 가져왔습니다. AWS SQS를 사용하여 Lambda 함수를 트리거할 때 유형 오류가 발생할 수 있습니다. 이 문제로 인해 Lambda 함수가 SQS 메시지를 정상적으로 처리할 수 없게 되어 개발자에게 불필요한 문제가 발생할 수 있습니다. 이 기사에서는 이 문제의 원인을 살펴보고 개발자가 이러한 유형 오류 딜레마를 성공적으로 해결하는 데 도움이 되는 솔루션을 제공할 것입니다.
API 게이트웨이와 SQS로 트리거되는 람다를 개발 중입니다.
으아악하지만 sqs 또는 apigateway 이벤트를 사용할 때 내 스위치 유형이 인식되지 않습니다. 이는 항상 기본 문에 속합니다. 예를 들어 sqs의 경우 다음 이벤트를 사용합니다.
으아악다음 메시지를 받았습니다:
으아악내가 뭘 잘못했는지 아세요? 나는 golang을 처음 사용하기 때문에 여기서 길을 잃었습니다.
그리고regcode.handlersqs
에 직접 이벤트를 보내려고 했는데 유형 변환 오류가 발생했습니다. 이렇게:
sqsevent가 비어 있습니다.
내가 뭘 잘못했는지 아시나요?
AWS 람다 핸들러는func
中参数的类型,然后创建与您的签名匹配的event
유형을 반영합니다.
그러면func
的第二个参数声明为event events.SQSEvent
,AWS 将获取其类型events.SQSEvent
이런 객체를 생성하여 전달하세요.
마찬가지로,func
中使用event events.APIGatewayProxyRequest
,AWS 将反映event
应该是events.APIGatewayProxyRequest
만들면 됩니다.
즉, AWS는 수신 요청이 SQS에서 오는지 API에서 오는지 확인하지 않습니다. 이는 핸들러의 서명에 따라서만 결정됩니다. 따라서 당신이func
中使用event 接口{}
,AWS 将准确创建您指定要创建的内容,即interface{}
에 있고 다른 유형이 아닌 경우.
이것이 스위치가 작동하지 않는 이유입니다. 이 문제를 해결하는 가장 쉬운 방법은 두 개의 람다 함수(SQS용과 API용)를 사용하는 것입니다.
위 내용은 유형 오류가 있는 sqs에 의해 트리거된 golang의 aws 람다의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!