Golang Lambda 배포
문제
종종 우리는 SAM이나 서버리스를 사용하지 않고 AWS에서 Golang Lambda를 구축하고 배포하는 간단한 방법을 원합니다.
CLI를 사용하여 간단한 Golang 람다를 배포하는 방법을 살펴보겠습니다. 이 예는 나중에 이를 CI/CD 파이프라인에 통합하기 위한 빌딩 블록을 제공합니다.
비디오 연습
서면 지침은 아래에 있지만 Golang Lambda를 배포하는 방법을 보여주는 간단한 비디오 연습이 있습니다.
해결책
1) 전제 조건
이 문서에서는 다음을 이미 설치했다고 가정합니다.
2) main.go 파일 생성
루트 디렉터리에 main.go라는 파일을 만듭니다.
다음은 빠른 Hello World 스크립트입니다.
package main
import (
"log"
"context"
"github.com/aws/aws-lambda-go/events"
"github.com/aws/aws-lambda-go/lambda"
)
func handler(ctx context.Context, request events.APIGatewayProxyRequest) error {
log.Println("HelloWorld from Golang Lambda")
return nil
}
func main() {
lambda.Start(handler)
}
3) 메이크파일 생성
루트 디렉터리에 Makefile이라는 파일을 만듭니다.
함수 이름 및 지역에 대한 매개변수를 편집하십시오.
export GOOS=linux
export GOARCH=amd64
export CGO_ENABLED=0
.DEFAULT_GOAL := deploy
deploy:
go build -o hello
zip -r function.zip hello
aws lambda update-function-code --function-name "BlogHelloWorldExample" --zip-file fileb://function.zip --region="eu-west-1" | jq .
참고: 오류
Makefile:6: *** missing separator. Stop.
가 표시되면 공백을 탭으로 바꾸십시오.4) Golang 종속성 설치
이 단계는 한 번만 수행하면 됩니다.
go mod init example.com/demo
go get github.com/aws/aws-lambda-go/events
go get github.com/aws/aws-lambda-go/lambda
5) 메이크파일 실행
다음 CLI 명령을 실행하여 예제 Lambda를 빌드, 압축 및 배포합니다.
make deploy
이제 다음과 유사한 출력이 표시됩니다.
{
"FunctionName": "BlogHelloWorldExample",
"FunctionArn": "arn:aws:lambda:eu-west-1:xyz:function:BlogHelloWorldExample",
"Runtime": "go1.x",
"Role": "arn:aws:iam::xyz:role/service-role/BlogHelloWorldExample-role-xyz",
"Handler": "hello",
"CodeSize": xyz,
"Description": "",
"Timeout": 15,
"MemorySize": 512,
"LastModified": "2022-06-07T11:09:28.000+0000",
"CodeSha256": "xyz",
"Version": "$LATEST",
"TracingConfig": {
"Mode": "PassThrough"
},
"RevisionId": "xyz",
"State": "Active",
"LastUpdateStatus": "InProgress",
"LastUpdateStatusReason": "The function is being created.",
"LastUpdateStatusReasonCode": "Creating"
}
요약
그게 다야! 이제 람다가 배포되어야 합니다. 이것이 파이프라인 구축을 위한 빠른 출발점이 되기를 바랍니다.
Reference
이 문제에 관하여(Golang Lambda 배포), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/rhuaridh/deploy-a-golang-lambda-3c6f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)