AWS 람다 함수 관리 툴 – APEX (4)

함수 빌드하기

Apex는 배포를 위해 Zip 파일을 생성합니다. 그러나 가끔은 디버그를 위해서 zip 파일 내부에 어떤 내용들이 포함되어 있는지 확인하는 것이 유용할 수 있습니다. apex build 명령은 zip 파일을 생성하고 그 과정을 표준 출력 (STDOUT)으로 보냅니다.

예제

함수를 빌드해서 out.zip로 만들기

$ apex build foo > out.zip

이전 버전으로 되돌리기

함수의 버전을 이전 버전 혹은 특정 버전으로 되돌릴 수 있습니다.

예제

바로 이전 버전으로 되돌리기

$ apex rollback foo

특정 버전으로 되돌리기

$ apex rollback foo 5

--dry-run 플래그로 롤백 미리 보기

$ apex rollback --dry-run lowercase

~ alias testing_lowercase
 alias: current
 version: 2

$ apex rollback --dry-run uppercase 1

~ alias testing_uppercase
 version: 1
 alias: current

버전에 앨리어스 지정하기

aliax 명령어로 하나 혹은 그 이상의 함수 버전에 앨리어스를 설정할 수 있습니다.

예제

모든 함수의 앨리어스를 prod로 설정

$ apex alias prod

api_로 시작하는 이름을 가진 모든 함수의 앨리어스를 prod로 설정

$ apex alias prod api_*

버전이 5인 모든 함수의 앨리어스를 prod로 설정

$ apex alias -v 5 prod

특정 함수의 앨리어스를 stage로 설정

$ apex alias stage myfunction

특정 함수의 버전 10의 앨리어스를 stage로 설정

$ apex alias -v 10 stage myfunction

앨리어스가 dev인 특정 함수의 앨리어스를 stage로 변경 (dev에서 stage로 승격)

$ apex alias stage dev myfunction

함수 훅 (Function hooks)

Apex는 함수의 생명 주기에 맞춰 shell command가 실행될 수 있게 hook 개념을 지원합니다. 예를 들어 이런 hook은 배포하기 전에 문법 체크 (lint)나 테스트를 실행하도록 할 수 있으며 Babel, CoffeeScript 등의 트랜스 파일에도 연결될 수 있습니다.

Hook은 project.json 파일에 설정하며 Hook은 함수 디렉토리에서 실행됩니다. 만약 hook의 실행 결과 응답 코드가 0보다 크면 Apex는 실행을 중단하고 에러를 표시할 것입니다.

Hook 지원

  • build -> zip 파일로 함수를 빌드하기 전에 실행 (바이너리로 컴파일하거나 소스 코드의 트랜스폼에 이용)
  • deploy -> 함수가 배포되기 전에 실행 (테스트, lint 등에 이용)
  • clean -> 함수가 배포되고 난 후에 실행된다 (빌드 결과물 정리 등에 이용)

예제

아래 예제는 Apex 내부적으로 Golang 지원을 위해 설정된 hook의 내용입니다.

{
    "hooks": {
        "build": "GOOS=linux GOARCH=amd64 go build -o main main.go",
        "clean": "rm -f main"
    }
}

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

w

%s에 연결하는 중