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

함수 배포하기

하나 혹은 그 이상의 함수를 배포하기 위해서 필요한 것은 apex deploy 명령어가 전부입니다. Apex의

배포는 멱등성(idempotent)을 갖습니다. 각 함수에 대한 빌드 결과가 생성되면 Apex는 Checksum을 확인하고 이미 배포된 함수와 비교해서 동일하면 배포하지 않습니다.

배포가 끝난 후 Apex는 기존 함수의 오래된 버전을 체크해서 몇 개(retainedVersion에 설정된 수만큼)만 남기고 삭제합니다.

특정 함수만 배포하고 싶다면 apex deploy 뒤에 함수 이름을 지정하면 됩니다. 함수 이름 인자는 deploy, logs, rollback 명령어에서도 사용할 수 있습니다.

예제

현재 디렉토리의 모든 함수를 배포합니다

$ apex deploy

~/dev/myapp 디렉토리에 있는 모든 함수를 배포합니다.

$ apex deploy -C ~/dev/myapp

특정 함수만 배포합니다.

$ apex deploy auth api

auth로 시작하는 모든 함수를 배포합니다.

$ apex deploy auth*

_reporter로 끝나는 모든 함수를 배포합니다.

$ apex deploy *_reporter

함수 실행하기

Apex로 command line에서 함수를 실행할 수 있으며 JSON 이벤트나 혹은 표준 입력 (STDIN) 스트림을 함께 전달할 수 있습니다. 주의할 점은 invoke 명령은 리모트의 람다를 직접 실행하는 것이며 로컬의 함수를 실행하는 것이 아닙니다. 함수는 가장 최신 버전이 실행됩니다.

예제

이벤트 없이 함수 실행하기

$ apex invoke collect-stats

JSON 이벤트를 전달해서 실행하기

$ echo -n '{ "value": "Tobi the ferret" }' | apex invoke uppercase
{ "value": "TOBI THE FERRET" }

파일의 내용으로 실행하기

$ apex invoke uppercase < event.json

클립보드의 내용을 표준 입력으로 전달하여 함수 실행하기

$ pbpaste | apex -C path/to/project invoke auth

phony를 이용해서 데이터를 생성한 후 여러 리퀘스트를 생성하여 함수 실행하기

$ echo -n '{ "user": "{{name}}" }' | phony | apex invoke uppercase
{"user":"DELMER MALONE"}
{"user":"JC REEVES"}
{"user":"LUNA FLETCHER"}
...

스트리밍으로 함수를 실행하고 로그를 출력하기

$ echo -n '{ "user": "{{name}}" }' | phony | apex invoke uppercase --logs
START RequestId: 30e826a4-a6b5-11e5-9257-c1543e9b73ac Version: $LATEST
END RequestId: 30e826a4-a6b5-11e5-9257-c1543e9b73ac
REPORT RequestId: 30e826a4-a6b5-11e5-9257-c1543e9b73ac  Duration: 0.73 ms   Billed Duration: 100 ms     Memory Size: 128 MB Max Memory Used: 10 MB
{"user":"COLTON RHODES"}
START RequestId: 30f0b23c-a6b5-11e5-a034-ad63d48ca53a Version: $LATEST
END RequestId: 30f0b23c-a6b5-11e5-a034-ad63d48ca53a
REPORT RequestId: 30f0b23c-a6b5-11e5-a034-ad63d48ca53a  Duration: 2.56 ms   Billed Duration: 100 ms     Memory Size: 128 MB Max Memory Used: 9 MB
{"user":"CAROLA BECK"}
START RequestId: 30f51e67-a6b5-11e5-8929-f53378ef0f47 Version: $LATEST
END RequestId: 30f51e67-a6b5-11e5-8929-f53378ef0f47
REPORT RequestId: 30f51e67-a6b5-11e5-8929-f53378ef0f47  Duration: 0.22 ms   Billed Duration: 100 ms     Memory Size: 128 MB Max Memory Used: 9 MB
{"user":"TOBI FERRET"}
...

함수 목록

apex list로 함수 목록을 출력할 수 있습니다.

테라폼 변수 출력도 지원합니다.

$ apex list --tfvars
apex_function_bar="arn:aws:lambda:us-west-2:293503197324:function:testing_bar"
apex_function_foo="arn:aws:lambda:us-west-2:293503197324:function:testing_foo"

함수 삭제

함수를 삭제할 때 apex는 정말 삭제할 것인지 물어볼 것입니다. -f, --force 플래그를 설정하면 이 과정을 건너뜁니다. 함수 이름을 지정하면 지정된 함수만 삭제합니다.

예제

모든 함수 삭제

$ apex delete
The following will be deleted:

  - bar
  - foo

Are you sure? (yes/no):

강제 삭제 (삭제할지 묻지 않음)

$ apex delete -f

특정 함수만 삭제

$ apex delete -f foo bar

auth로 시작하는 이름을 가진 함수만 삭제

$ apex delete auth*

AWS 람다 함수 관리 툴 – APEX (3)”에 대한 1개의 생각

  1. 핑백: AWS 주간 소식 모음 – 2017년 8월 7일 - 지락문화예술공작단

답글 남기기

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

WordPress.com 로고

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

Google+ photo

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

Twitter 사진

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

Facebook 사진

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

%s에 연결하는 중