Skip to content

lee-lou2/aws-lambda-cookbook-go

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

AWS Lambda Cookbook (Go)

이 저장소는 Go 언어를 사용하여 AWS Lambda 함수를 개발하는 다양한 예제를 제공하는 쿡북입니다.

소개

AWS Lambda는 서버 관리 없이 코드를 실행할 수 있게 해주는 서버리스 컴퓨팅 서비스입니다. 이 저장소는 Go를 사용하여 Lambda 함수를 작성하고 배포하는 실용적인 예제들을 모아두었습니다.

각 예제는 특정 사용 사례를 다루며, 필요한 코드와 함께 간단한 설명을 포함합니다.

사용 가능한 Lambda 함수들

현재 다음 예제들을 사용할 수 있습니다:

  1. 001_qr_generator: 주어진 URL, 크기, 색상 파라미터를 기반으로 QR 코드를 생성하는 Lambda 함수입니다.
    • API Gateway를 통해 트리거되며, 생성된 QR 코드 이미지를 Base64 인코딩된 PNG 형식으로 반환합니다.
    • 색상 이름 또는 16진수 코드를 지원하며, 배경색과 투명도 설정도 가능합니다.
    • API 사용법:
      • API Gateway 엔드포인트에 GET 요청을 보냅니다.
      • 쿼리 파라미터:
        • url (필수): QR 코드로 인코딩할 URL.
        • size (선택, 기본값: 256): QR 코드 이미지 크기 (픽셀 단위).
        • color (선택, 기본값: black): QR 코드 색상 (색상 이름 또는 16진수 코드, 예: red, #FF0000).
        • bg (선택, 기본값: white): 배경색 (색상 이름 또는 16진수 코드, 예: blue, #0000FF). 투명 배경은 transparent 사용.
      • 예시: [YOUR_API_GATEWAY_ENDPOINT]?url=https://example.com&size=512&color=blue&bg=transparent

Lambda 함수 빌드 및 배포

Go로 작성된 Lambda 함수를 빌드하고 AWS에 배포하는 일반적인 단계는 다음과 같습니다:

  1. Go 코드 컴파일: Lambda 함수 코드를 Linux 환경용 실행 파일로 컴파일합니다. 각 예제 디렉토리에서 다음 명령어를 실행합니다:

    GOOS=linux GOARCH=amd64 go build -o bootstrap main.go
    # Mac(Apple Silicon)
    GOOS=darwin GOARCH=arm64 go build -o bootstrap main.go
    # Mac(Intel)
    GOOS=linux GOARCH=arm64 go build -o bootstrap main.go
    • GOOS=linux: 대상 운영체제를 Linux로 설정합니다.
    • GOARCH=amd64: 대상 아키텍처를 64비트 AMD/Intel로 설정합니다.
    • -o bootstrap: 출력 파일 이름을 bootstrap으로 지정합니다. AWS Lambda Go 런타임은 이 이름의 파일을 실행합니다.
    • main.go: 컴파일할 Go 소스 파일입니다.
  2. 배포 패키지 생성: 컴파일된 bootstrap 실행 파일을 ZIP 파일로 압축합니다. 이 ZIP 파일이 Lambda 함수 배포 패키지가 됩니다.

    zip deployment.zip bootstrap
  3. AWS Lambda 함수 생성 및 업로드:

    • AWS Management Console, AWS CLI 또는 IaC 도구(예: Terraform, AWS SAM)를 사용하여 Lambda 함수를 생성합니다.
    • 함수 설정 시 런타임으로 Amazon Linux 2023 을 선택합니다.
    • 생성된 deployment.zip 파일을 Lambda 함수 코드로 업로드합니다.
    • 핸들러 이름은 일반적으로 bootstrap을 사용하며, 이는 컴파일된 실행 파일의 이름과 일치해야 합니다.
  4. 트리거 설정 (선택 사항): 필요에 따라 API Gateway, S3 이벤트, CloudWatch Events 등 Lambda 함수를 호출할 트리거를 설정합니다.

  5. 환경 변수 및 권한 설정: 함수 실행에 필요한 환경 변수(예: API 키)나 AWS 서비스 접근 권한(IAM 역할)을 설정합니다.

각 예제 디렉토리에는 해당 함수를 빌드하고 배포하는 데 필요한 구체적인 지침이나 스크립트가 포함될 수 있습니다.

기여

새로운 Lambda 함수 예제나 기존 예제 개선에 대한 기여를 환영합니다. Pull Request를 생성하거나 이슈를 등록해주세요.

라이선스

이 프로젝트는 MIT 라이선스 하에 배포됩니다.

About

AWS Lambda Cookbook in Go

Topics

Resources

License

Stars

Watchers

Forks

Languages