Lambda 함수 상태 - AWS Lambda

Lambda 함수 상태

함수를 호출할 준비가 된 시기를 나타내기 위해 Lambda는 모든 함수에 대한 함수 구성에 상태 필드를 포함합니다. State는 함수를 성공적으로 호출할 수 있는지 여부를 포함하여 함수의 현재 상태에 대한 정보를 제공합니다. 함수 상태는 함수 호출의 동작 또는 함수가 코드를 실행하는 방법을 변경하지 않습니다. 함수 상태는 다음을 포함합니다.

  • Pending - Lambda가 함수를 만든 후 상태를 보류 중으로 설정합니다. 보류 상태 동안 Lambda는 VPC 또는 EFS 리소스와 같은 함수에 대한 리소스를 생성하거나 구성하려고 시도합니다. Lambda는 보류 상태에서 함수를 호출하지 않습니다. 해당 함수에서 작동하는 호출 또는 기타 API 작업은 실패합니다.

  • Active - Lambda가 리소스 구성 및 프로비저닝을 완료한 후에 함수가 활성 상태로 전환됩니다. 함수는 활성 상태에서만 성공적으로 호출될 수 있습니다.

  • Failed - 리소스 구성 또는 프로비저닝에 오류가 발생했음을 나타냅니다.

  • Inactive - Lambda가 함수에 대해 구성된 외부 리소스를 회수할 수 있을 만큼 충분히 유휴 상태이면 해당 함수는 비활성 상태가 됩니다. 비활성 상태인 함수를 호출하려고 하면 호출이 실패하고 함수 리소스가 다시 만들어질 때까지 Lambda가 해당 함수를 보류 상태로 설정합니다. Lambda가 리소스를 다시 생성하지 못하면 함수가 비활성 상태로 돌아갑니다. 함수가 비활성 상태에서 멈춘 경우 추가 문제 해결을 위해 함수의 StatusCodeStatusCodeReason 속성을 참조하십시오. 함수를 활성 상태로 복원하려면 오류를 해결하고 함수를 다시 배포해야 할 수 있습니다.

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는 LastUpdateStatus 속성의 업데이트를 진행 중인 함수에 대한 추가 컨텍스트를 제공하며, 여기엔 다음 상태가 포함됩니다.

  • InProgress - 기존 함수에서 업데이트가 진행 중입니다. 함수 업데이트가 진행되는 동안 호출은 함수의 이전 코드 및 구성으로 이동합니다.

  • Successful - 업데이트가 완료되었습니다. Lambda가 업데이트를 완료하면 추가 업데이트가 있을 때까지 설정된 상태로 유지됩니다.

  • Failed - 함수를 업데이트하지 못했습니다. Lambda가 업데이트를 중단하고 함수의 이전 코드와 구성은 사용 가능한 상태로 유지됩니다.

다음은 업데이트 중인 함수에 대한 get-function-configuration의 결과입니다.

{ "FunctionName": "my-function", "FunctionArn": "arn:aws:lambda:us-east-2:123456789012:function:my-function", "Runtime": "nodejs20.x", "VpcConfig": { "SubnetIds": [ "subnet-071f712345678e7c8", "subnet-07fd123456788a036", "subnet-0804f77612345cacf" ], "SecurityGroupIds": [ "sg-085912345678492fb" ], "VpcId": "vpc-08e1234569e011e83" }, "State": "Active", "LastUpdateStatus": "InProgress", ... }

FunctionConfiguration에는 두 개의 다른 속성인 LastUpdateStatusReasonLastUpdateStatusReasonCode가 있습니다. 이는 업데이트 관련 문제를 해결하는 데 도움이 됩니다.

비동기 업데이트가 진행 중인 동안에는 다음 작업이 실패합니다.