함수를 간접 호출할 준비가 된 시기를 나타내기 위해 Lambda는 모든 함수에 대한 함수 구성에 상태 필드를 포함합니다. State
는 함수를 성공적으로 간접 호출할 수 있는지 여부를 포함하여 함수의 현재 상태에 대한 정보를 제공합니다. 함수 상태는 함수 호출의 동작 또는 함수가 코드를 실행하는 방법을 변경하지 않습니다.
참고
함수 상태 정의는 SnapStart 함수에 따라 약간 다릅니다. 자세한 내용은 Lambda SnapStart와 함수 상태 섹션을 참조하세요.
함수 상태는 다음을 포함합니다.
-
Pending
- Lambda가 함수를 만든 후 상태를 보류 중으로 설정합니다. 보류 상태 동안 Lambda는 VPC 또는 EFS 리소스와 같은 함수에 대한 리소스를 생성하거나 구성하려고 시도합니다. Lambda는 보류 상태에서 함수를 간접 호출하지 않습니다. 해당 함수에서 작동하는 호출 또는 기타 API 작업은 실패합니다. -
Active
- Lambda가 리소스 구성 및 프로비저닝을 완료한 후에 함수가 활성 상태로 전환됩니다. 함수는 활성 상태에서만 성공적으로 간접 호출될 수 있습니다. -
Failed
- 리소스 구성 또는 프로비저닝에 오류가 발생했음을 나타냅니다. -
Inactive
- Lambda가 함수에 대해 구성된 외부 리소스를 회수할 수 있을 만큼 충분히 유휴 상태이면 해당 함수는 비활성 상태가 됩니다. 비활성 상태인 함수를 간접 호출하려고 하면 간접 호출이 실패하고 함수 리소스가 다시 만들어질 때까지 Lambda가 해당 함수를 보류 상태로 설정합니다. Lambda가 리소스를 다시 생성하지 못하면 함수가 비활성 상태로 돌아갑니다. 함수를 활성 상태로 복원하려면 오류를 해결하고 함수를 다시 배포해야 할 수 있습니다.
SDK 기반 자동화 워크플로를 사용하거나 Lambda의 서비스 API를 직접 호출하는 경우, 호출 전에 함수의 상태를 확인하여 활성 상태인지 확인합니다. 이 작업은 Lambda API 작업 GetFunction을 사용하거나 AWS SDK for Java 2.0
aws lambda get-function --function-name my-function --query 'Configuration.[State, LastUpdateStatus]'
다음 결과가 표시됩니다.
[ "Active", "Successful" ]
함수 생성이 대기 중인 동안에는 다음 작업이 실패합니다.
업데이트 중 함수 상태
Lambda에는 함수 업데이트를 위한 두 가지 작업이 있습니다.
-
UpdateFunctionCode: 함수의 배포 패키지를 업데이트합니다.
-
UpdateFunctionConfiguration: 함수의 구성을 업데이트합니다.
Lambda는 LastUpdateStatus 속성을 사용하여 이러한 업데이트 작업의 진행 상황을 추적합니다. 업데이트가 진행되는 동안("LastUpdateStatus": "InProgress"
일 때) 다음과 같은 일이 일어납니다.
-
함수의 State는
Active
상태로 유지됩니다. -
간접 호출은 업데이트가 완료될 때까지 함수의 이전 코드와 구성을 계속 사용합니다.
-
다음 작업이 실패합니다.
예 GetFunctionConfiguration 응답
다음 예는 업데이트 중인 함수에 대한 GetFunctionConfiguration 요청의 결과입니다.
{ "FunctionName": "my-function", "FunctionArn": "arn:aws:lambda:us-east-1:123456789012:function:my-function", "Runtime": "nodejs22.x", "VpcConfig": { "SubnetIds": [ "subnet-071f712345678e7c8", "subnet-07fd123456788a036", "subnet-0804f77612345cacf" ], "SecurityGroupIds": [ "sg-085912345678492fb" ], "VpcId": "vpc-08e1234569e011e83" },
"State": "Active", "LastUpdateStatus": "InProgress"
, ... }