Docker 개발 환경 for Lambda Rust runtime

AWS Lambda에서 일하는 Rust runtime을 쉽게 만들기 위해 Docker 개발 환경의 lambda-rust-builder를 제작했다.
https://github.com/anyakichi/docker-lambda-rust-builder
https://hub.docker.com/r/anyakichi/lambda-rust-builder

시험해 보다


Docker를 설치할 환경을 준비하십시오.거기에 딘 명령을 설치하고 PATH도 통과한다.
$ curl -o ~/.local/bin/din https://raw.githubusercontent.com/anyakichi/docker-buildenv/master/din.sh
$ PATH=$HOME/.local/bin:$PATH
그러면 샘플용 lambda-rust-sample을 만들어 보세요.
lambda-rust-sample는 받은 데이터를 직접 반환하는 프로그램입니다.
$ mkdir workspace && cd workspace
$ din anyakichi/lambda-rust-builder
[builder@workspace build]$ extract
[builder@workspace build]$ setup
[builder@workspace lambda-rust-sample]$ build
[builder@workspace lambda-rust-sample]$ echo '{"data":"test"}' \
  | DOCKER_LAMBDA_USE_STDIN=1 /var/runtime/init -bootstrap target/release/lambda-rust-sample
네, 움직였어요.
계속해서 AWS로 실제 운행해 보자.
[builder@workspace lambda-rust-sample]$ package
lambda-rust-sample.zip 이 파일은 잘 만들어야 하기 때문에 aws 명령이든 웹 컨트롤러든 상관없습니다. 업로드하십시오. (role 매개 변수의 관계로 aws 명령 예시를 표시하기 어렵습니다.)실행 환경이 provided(Amazon Linux1)인 환경입니다.컨테이너에서 빼내도 서류는 그대로 놔둬야 한다.
업로드 후 실행(콘솔에서도 가능).
$ aws lambda invoke --function-name lambda-rust-sample \
  --payload '{"data":"test"}' /dev/stdout
네, 끝났습니다.간단하네.

컨테이너 외부에서 액세스


Docker 컨테이너는 Lambda의 운행 환경(실제로 아까도 표준 입력에서 데이터를 전달하는 형식으로 실행되었기 때문)이기 때문에 다음에 호스트 측에서 요청을 해보도록 하겠습니다.
워크스페이스에서 이번에는 런 명령을 직접 실행해보자(9001 포트도 공개).
$ cd workspace
$ din -p 9001:9001 anyakichi/lambda-rust-builder run
이렇게 Lambda가 API 모드(?)이동, 다른 터미널 창에서
$ curl -d '{"data":"test"}' http://localhost:9001/2015-03-31/functions/myfunction/invocations
이렇게 하면 테스트할 수 있어요.

사소한 일


  • Amazon Linux2의 환경에서 Pkg-config의 상태가 좋지 않은 것 같고 Openssl-Sys 등의 구축이 실패했습니다.그래서 Docker 환경도 Amazon Linux1로 바뀌었고, AWS 측도 이에 협조하고 있다.

  • 딘을 사용하는 이 시스템은 Docker 개발 환경이라고 불리며 삽입식 펌웨어(Yocto와 AOSP 등)를 구축하기 위해 제작됐으나 대체로 무엇이든 사용할 수 있다.
  • Rust와 Lambda는 문턱이 전혀 높지 않으니 꼭 해 보세요.

    좋은 웹페이지 즐겨찾기