Lambda 함수 버전 - AWS Lambda

Lambda 함수 버전

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

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

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

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

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

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

함수 버전 생성

함수의 게시 되지 않은 버전에서만 함수 코드와 설정을 변경할 수 있습니다. 버전을 게시할 때 해당 버전의 사용자에게 일관된 환경을 유지하기 위해 코드와 대부분 설정이 잠깁니다. 함수 설정 구성에 대한 자세한 내용은 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": "nodejs12.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 함수 별칭 섹션을 참조하세요.