참고
Rust 런타임 클라이언트
이 페이지에서는 Rust 함수를 컴파일한 다음 Cargo Lambda
Sections
사전 조건
macOS, Windows 또는 Linux에서 Rust 함수 빌드
다음 단계에서는 Rust를 사용하여 첫 번째 Lambda 함수에 대한 프로젝트를 생성하고 Cargo Lambda
-
macOS, Windows 및 Linux에서 Lambda용 Rust 함수를 컴파일하는 Cargo 하위 명령인 Cargo Lambda를 설치합니다.
Python 3이 설치된 시스템에 Cargo Lambda를 설치하려면 pip를 사용합니다.
pip3 install cargo-lambda
macOS 또는 Linux에 Cargo Lambda를 설치하려면 Homebrew를 사용합니다.
brew tap cargo-lambda/cargo-lambda brew install cargo-lambda
Windows에 Cargo Lambda를 설치하려면 Scoop
을 사용합니다. scoop bucket add cargo-lambda scoop install cargo-lambda/cargo-lambda
다른 옵션은 Cargo Lambda 설명서의 설치
를 참조하세요. -
패키지 구조를 생성합니다. 이 명령은
src/main.rs
에 몇 가지 기본 함수 코드를 생성합니다. 이 코드를 테스트에 사용하거나 사용자 고유의 코드로 바꿀 수 있습니다.cargo lambda new
my-function
-
패키지의 루트 디렉터리 내에서 build
하위 명령을 실행하여 함수의 코드를 컴파일합니다. cargo lambda build --release
(선택 사항) Lambda에서 AWS Graviton2를 사용하려면
--arm64
플래그를 추가하여 ARM CPU용 코드를 컴파일합니다.cargo lambda build --release --arm64
-
Rust 함수를 배포하기 전에 머신에서 AWS 자격 증명을 구성합니다.
aws configure
Cargo Lambda로 Rust 함수 바이너리 배포
deploy
cargo lambda deploy
my-function
AWS CLI로 Rust 함수 바이너리 배포
AWS CLI로 바이너리를 배포할 수도 있습니다.
-
build
하위 명령을 사용하여 .zip 배포 패키지를 빌드합니다. cargo lambda build --release --output-format zip
-
.zip 패키지를 Lambda에 배포하려면 create-function
명령을 실행합니다. aws lambda create-function \ --function-name
my-function
\ --runtimeprovided.al2023
\ --rolearn:aws:iam::111122223333:role/lambda-role
\ --handler rust.handler \ --zip-file fileb://target/lambda/my-function/bootstrap.zip
AWS SAM CLI로 Rust 함수 바이너리 배포
AWS SAM CLI로 바이너리를 배포할 수도 있습니다.
-
리소스와 속성 정의를 사용하여 AWS SAM 템플릿을 생성합니다.
Runtime
에서provided.al2023
를 지정합니다. 이는 OS 전용 런타임입니다. OS 전용 런타임은 컴파일된 바이너리와 사용자 지정 런타임을 Lambda에 배포하는 데 사용됩니다.AWS SAM을 사용한 Lambda 함수 배포에 대한 자세한 내용은 AWS Serverless Application Model 개발자 안내서의 AWS::Serverless::Function을 참조하세요.
예 Rust 바이너리에 대한 SAM 리소스 및 속성 정의
AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 Description: SAM template for Rust binaries Resources: RustFunction: Type: AWS::Serverless::Function Properties: CodeUri: target/lambda/my-function/ Handler: rust.handler Runtime: provided.al2023 Outputs: RustFunction: Description: "Lambda Function ARN" Value: !GetAtt RustFunction.Arn
-
build
하위 명령을 사용하여 함수를 컴파일합니다. cargo lambda build --release
-
sam deploy 명령을 사용하여 함수를 Lambda에 배포합니다.
sam deploy --guided
AWS SAM CLI를 사용하여 Rust 함수를 빌드하는 방법에 대한 자세한 내용은 AWS Serverless Application Model 개발자 안내서의 Cargo Lambda로 Rust Lambda 함수 빌드를 참조하세요.
Cargo Lambda로 Rust 함수 호출
invoke
cargo lambda invoke --remote --data-ascii '{"command": "Hello world"}'
my-function
AWS CLI로 Rust 함수 호출
AWS CLI를 사용하여 함수를 호출할 수도 있습니다.
aws lambda invoke --function-name
my-function
--cli-binary-format raw-in-base64-out --payload '{"command": "Hello world"}' /tmp/out.txt
cli-binary-format 옵션은 AWS CLI 버전 2를 사용할 때 필요합니다. 이 설정을 기본 설정으로 지정하려면 aws configure set cli-binary-format raw-in-base64-out
을(를) 실행하세요. 자세한 내용은 AWS CLI 지원되는 글로벌 명령줄 옵션을 AWS Command Line Interface 사용 설명서 버전 2에서 참조하세요.