An open API service indexing awesome lists of open source software.

https://github.com/lee-lou2/aws-lambda-cookbook-go

AWS Lambda Cookbook in Go
https://github.com/lee-lou2/aws-lambda-cookbook-go

aws-lambda golang lambda server serverless

Last synced: 2 months ago
JSON representation

AWS Lambda Cookbook in Go

Awesome Lists containing this project

README

          

# AWS Lambda Cookbook (Go)

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

## 소개

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

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

## 사용 가능한 Lambda 함수들

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

1. **[001_qr_generator](./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 환경용 실행 파일로 컴파일합니다. 각 예제 디렉토리에서 다음 명령어를 실행합니다:
```bash
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 함수 배포 패키지가 됩니다.
```bash
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 라이선스](./LICENSE) 하에 배포됩니다.