AWS Lambda, Ruby 언어 공식 지원프로그래밍 언어 루비(Ruby) 공식 지원을 발표
AWS 람다AWS Lambda는 아마존 웹 서비스에서 제공하는 서버리스 애플리케이션 실행 환경입니다. 현재까지 람다에서는 공식적으로 C#, 파워셸PowerShell, 고Go, 자바Java, 자바스크립트JavaScript, 파이썬Python 언어를 지원했습니다. 그리고 re:Invent 2018에서 루비Ruby 언어 지원이 공식적으로 추가되었습니다. 루비 사용자로서 더없이 반가운 소식합니다. 😎
공식적으로 2018년 11월 29일 릴리즈되었으며 서울 리전에서도 지금 바로 사용해볼 수 있습니다. 여기서는 간단한 루비 코드 예제를 람다 함수로 만들고 실행하는 방법을 소개하겠습니다.*
* 아래 에제를 실행하려면 IAM 액세스 키를 발급하고 AWS CLI 설정을 할 필요가 있습니다. 자세한 내용은 44bits의 아마존 웹 서비스 IAM 사용자의 액세스 키 발급 및 관리와 아마존 웹서비스 커맨드라인 인터페이스(AWS CLI) 기초 글을 참고해주세요.
먼저 작업 디렉터리를 하나 만들고 그 아래에 hello_world.rb
함수를 작성합니다.
람다에서는 greeting
함수를 실행합니다. 단순히 "Hello, world"
문자열을 반환하는 함수입니다. 이 코드를 hello_world.zip
파일로 압축합니다.
$ zip hello_world.zip hello_world.rb
lambda create-function
명령어로 람다 함수를 생성합니다.
$ aws lambda create-function \
--function-name hello_ruby \
--runtime ruby2.5 \
--memory-size 128 \
--handler hello_world.greeting \
--role <ROLE_ARN> \
--zip-file fileb://hello_world.zip
이걸로 루비로 작성한 람다 함수 준비를 모두 마쳤습니다. 곧바로 invoke
명령어를 통해 이 람다 함수를 실행해보겠습니다. 실행 결과는 output.txt
에 저장됩니다.
$ aws lambda invoke --function-name hello_ruby output.txt
{
"StatusCode": 200,
"ExecutedVersion": "$LATEST"
}
output.txt
의 내용을 출력해보면, greeting
함수의 반환값이 기록된 것을 확인할 수 있습니다.
$ cat output.txt
"Hello, world!"
좀 더 상세한 루비 코드 실행 예제는 AWS 공식 블로그의 글을 참고해주세요.
루비 공식 지원과 함께 커스텀 런터임 지원에 대한 발표도 있었습니다. 현재 awslabs 아래에 러스트Rust와 C++ 런타임이 공개되어있고, 이를 사용하는 것이 가능합니다.