Lambda 함수 버전 - AWS Lambda

Lambda 함수 버전

버전을 사용하여 함수 배포를 관리할 수 있습니다. 예를 들어, 안정적인 프로덕션 버전 사용에 영향을 주지 않고 베타 테스트를 위한 새 버전의 함수를 게시할 수 있습니다. 함수를 게시할 때마다 Lambda는 함수의 새 버전을 생성합니다. 새 버전은 함수의 게시 되지 않은 버전입니다.

참고

게시되지 않은 버전의 코드가 이전 게시된 버전과 동일한 경우 Lambda는 새 버전을 생성하지 않습니다. 새 버전을 생성하기 전에 $LATEST에 코드 변경 사항을 배포해야 합니다.

함수 버전에는 다음 정보가 포함됩니다.

  • 함수 코드 및 모든 관련 종속성.

  • 함수를 호출하는 Lambda 런타임.

  • 환경 변수를 포함한 모든 함수 설정입니다.

  • 특정 버전의 함수를 식별하는 고유한 Amazon 리소스 이름(ARN).

함수 버전 생성

함수의 게시 되지 않은 버전에서만 함수 코드와 설정을 변경할 수 있습니다. 버전을 게시하면 Lambda는 해당 버전의 사용자에게 일관된 경험을 유지하기 위해 코드와 대부분의 설정을 잠급니다. 함수 설정 구성에 대한 자세한 내용은 Lambda 함수 옵션 구성 단원을 참조하세요.

Lambda 콘솔을 사용하여 함수 버전을 생성할 수 있습니다.

새 함수 버전을 생성하려면

  1. Lambda 콘솔의 함수 페이지를 엽니다.

  2. 함수를 선택한 다음 버전(Versions)을 선택합니다.

  3. 버전 구성 페이지에서 새 버전 발행(Publish new version)을 선택합니다.

  4. (선택 사항) 버전 설명을 입력합니다.

  5. [Publish]를 선택합니다.

Lambda API로 버전 관리

함수의 버전을 게시하려면 PublishVersion API 작업을 사용합니다.

다음 예제에서는 함수의 새 버전을 게시합니다. 응답으로 버전 번호, 버전 접미사가 포함된 함수 ARN과 같은 새 버전에 대한 구성 정보가 반환됩니다.

aws lambda publish-version --function-name my-function

다음 결과가 표시됩니다:

{ "FunctionName": "my-function", "FunctionArn": "arn:aws:lambda:us-east-2:123456789012:function:my-function:1", "Version": "1", "Role": "arn:aws:iam::123456789012:role/lambda-role", "Handler": "function.handler", "Runtime": "nodejs16.x", ... }

버전 사용

정규화된 ARN 또는 정규화되지 않은 ARN을 사용하여 Lambda 함수를 참조할 수 있습니다.

  • 정규화된 ARN – 버전 접미사가 포함된 함수 ARN입니다. 다음 예에서는 helloworld 함수의 버전 42를 참조합니다.

    arn:aws:lambda:aws-region:acct-id:function:helloworld:42
  • 정규화되지 않은 ARN – 버전 접미사가 포함되지 않은 함수 ARN입니다.

    arn:aws:lambda:aws-region:acct-id:function:helloworld

모든 관련 API 작업에서 정규화된 ARN 또는 정규화되지 않은 ARN을 사용할 수 있습니다. 그러나 정규화되지 않은 ARN을 사용하여 별칭을 생성할 수는 없습니다.

함수 버전을 게시하지 않기로 결정한 경우, 이벤트 소스 매핑에서 정규화된 ARN 또는 정규화되지 않은 ARN을 사용하여 함수를 호출할 수 있습니다. 정규화되지 않은 ARN을 사용하여 함수를 호출하면 Lambda가 $LATEST를 묵시적으로 호출합니다.

Lambda는 코드가 게시된 적이 없거나 마지막으로 게시된 버전과 비교하여 코드가 변경된 경우에만 새 함수 버전을 게시합니다. 변경 사항이 없으면 함수 버전은 마지막으로 게시된 버전으로 유지됩니다.

각 Lambda 함수 버전에 대한 정규화된 ARN은 고유합니다. 버전을 게시한 후에는 ARN 또는 함수 코드를 변경할 수 없습니다.

권한 부여

리소스 기반 정책 또는 자격 증명 기반 정책을 사용하여 함수에 대한 액세스 권한을 부여할 수 있습니다. 권한의 범위는 정책을 함수에 적용하는지 또는 함수의 한 버전에 적용하는지에 따라 다릅니다. 정책의 함수 리소스 이름에 대한 자세한 내용은 Lambda 작업에 사용되는 리소스 및 조건 단원을 참조하세요.

함수 별칭을 사용하여 이벤트 소스 및 AWS Identity and Access Management(IAM) 정책의 관리를 간소화할 수 있습니다. 자세한 내용은 Lambda 함수 별칭 섹션을 참조하세요.