Lambda 함수 별칭 - AWS Lambda

Lambda 함수 별칭

Lambda 함수의 별칭을 하나 이상 생성할 수 있습니다. Lambda 별칭은 특정 함수 버전을 가리키는 포인터와 같습니다. 사용자는 별칭 Amazon 리소스 이름(ARN)을 사용하여 함수 버전에 액세스할 수 있습니다.

별칭을 만들려면

  1. Lambda 콘솔의 함수 페이지(Functions page)를 엽니다.

  2. 함수의 이름을 선택합니다.

  3. 함수 구성 페이지에서 작업(Actions), 별칭 생성(Create alias)을 선택합니다.

  4. 별칭 생성(Create alias) 페이지에서 다음을 수행합니다.

    1. 별칭의 이름(Name)을 입력합니다.

    2. (선택 사항) 경보에 대한 설명(Description)을 입력합니다.

    3. 버전(Version)에서 별칭이 가리키도록 할 함수 버전을 선택합니다.

    4. (선택 사항) 별칭에 대한 라우팅을 구성하려면 가중치 기반 별칭(Weighted alias)을 확장합니다. 자세한 내용은 별칭 라우팅 구성 단원을 참조하세요.

    5. 저장을 선택합니다.

함수에 대해 현재 정의된 별칭을 보려면 함수 구성 페이지에서 구분자(Qualifiers)를 선택한 다음 별칭(Aliases) 탭을 선택합니다.

Lambda API를 사용한 별칭 관리

AWS Command Line Interface(AWS CLI)를 사용하여 별칭을 생성하려면 create-alias 명령을 사용합니다.

$ aws lambda create-alias --function-name my-function --name alias-name --function-version version-number --description " "

새 버전의 함수를 가리키도록 별칭을 변경하려면 update-alias 명령을 사용합니다.

$ aws lambda update-alias --function-name my-function --name alias-name --function-version version-number

별칭을 삭제하려면 delete-alias 명령을 사용합니다.

$ aws lambda delete-alias --function-name my-function --name alias-name

이전 단계의 AWS CLI 명령은 다음 Lambda API 작업에 해당합니다.

별칭 사용

각 별칭에는 고유한 ARN이 있습니다. 별칭은 다른 별칭이 아니라 함수 버전만 가리킬 수 있습니다. 함수의 새 버전을 가리키도록 별칭을 업데이트할 수 있습니다.

Amazon Simple Storage Service(Amazon S3)과 같은 이벤트 소스가 Lambda 함수를 호출합니다. 이러한 이벤트 소스에 이벤트가 발생할 때 호출할 함수를 식별하는 매핑이 유지됩니다. 매핑 구성에서 Lambda 함수 별칭을 지정하는 경우 함수 버전이 변경될 때 매핑을 업데이트할 필요가 없습니다. 자세한 내용은 AWS Lambda 이벤트 소스 매핑 단원을 참조하세요.

리소스 정책에서 이벤트 소스에 Lambda 함수를 사용할 수 있는 권한을 부여할 수 있습니다. 정책에서 별칭 ARN을 지정하면 함수 버전이 변경될 때 정책을 업데이트할 필요가 없습니다.

리소스 정책

리소스 기반 정책을 사용하여 서비스, 리소스 또는 계정에 함수에 대한 액세스 권한을 부여할 수 있습니다. 해당 권한의 범위는 별칭, 버전 또는 전체 함수에 적용하는지 여부에 따라 다릅니다. 예를 들어, 별칭 이름(예: helloworld:PROD)을 사용하는 경우, 권한이 있으면 별칭 ARN(helloworld:PROD)을 사용하여 helloworld 함수를 호출할 수 있습니다.

별칭이나 특정 버전 없이 함수를 호출하려고 하면 권한 오류가 발생합니다. 이 권한 오류는 별칭과 연결된 함수 버전을 직접 호출하려고 해도 계속 발생합니다.

예를 들어, 다음 AWS CLI 명령은 Amazon S3가 examplebucket을 대신하여 작동할 때 helloworld 함수의 PROD 별칭을 호출할 수 있는 Amazon S3 권한을 부여합니다.

$ aws lambda add-permission --function-name helloworld \ --qualifier PROD --statement-id 1 --principal s3.amazonaws.com --action lambda:InvokeFunction \ --source-arn arn:aws:s3:::examplebucket --source-account 123456789012

정책에서 리소스 이름을 사용하는 방법에 대한 자세한 내용은 Lambda 작업의 리소스와 조건 단원을 참조하세요.

별칭 라우팅 구성

별칭에 대한 라우팅 구성을 사용하여 트래픽의 일부를 두 번째 함수 버전으로 보냅니다. 예를 들어 대부분의 트래픽은 기존 버전으로 전송되고 소수만 새 버전으로 전송되도록 별칭을 구성하여 새 버전을 배포하는 위험을 줄일 수 있습니다.

별칭이 최대 두 개의 Lambda 함수 버전을 가리키도록 설정할 수 있습니다. 버전은 다음 기준을 충족해야 합니다.

  • 두 버전이 동일한 실행 역할을 가져야 합니다.

  • 두 버전 모두 동일한 배달 못한 편지 대기열 구성을 가져야 하거나 배달 못한 편지 대기열 구성이 없어야 합니다.

  • 두 버전 모두 게시해야 합니다. 별칭은 $LATEST을 가리킬 수 없습니다.

별칭에 대한 라우팅을 구성하려면

  1. Lambda 콘솔의 함수 페이지(Functions page)를 엽니다.

  2. 함수의 이름을 선택합니다.

  3. 함수에 게시된 버전이 두 개 이상 있는지 확인합니다. 함수 구성 페이지에서 구분자(Qualifiers)를 선택한 다음 버전(Versions) 탭을 선택하여 버전 목록을 표시합니다. 추가 버전을 생성하려면 Lambda 함수 버전의 지침을 따르세요.

  4. 작업(Actions), 그룹 생성(Create alias)을 선택합니다.

  5. 별칭 생성(Create alias) 페이지에서 다음을 수행합니다.

    1. 별칭의 이름(Name)을 입력합니다.

    2. (선택 사항) 경보에 대한 설명(Description)을 입력합니다.

    3. 버전(Version)에서 별칭이 가리키도록 할 첫 번째 함수 버전을 선택합니다.

    4. 가중치 기반 별칭(Weighted alias)을 확장합니다.

    5. 추가 버전(Additional version)에서 별칭이 가리킬 두 번째 함수 버전을 선택합니다.

    6. 가중치(Weight)(%)에서 함수의 가중치 값을 입력합니다. 가중치는 별칭이 호출될 때 해당 버전에 할당되는 트래픽의 비율입니다. 첫 번째 버전에는 남은 가중치가 할당됩니다. 예를 들어 Additional version(추가 버전)에 10%를 지정할 경우 첫 번째 버전에 자동으로 90%가 할당됩니다.

    7. 저장을 선택합니다.

별칭 라우팅 구성

create-aliasupdate-alias AWS CLI 명령을 사용하여 두 함수 버전 간의 트래픽 가중치를 구성합니다. 별칭을 만들거나 업데이트할 때 routing-config 파라미터에 트래픽 가중치를 지정합니다.

다음 예에서는 함수의 버전 1을 가리키는 routing-alias라는 Lambda 함수 별칭을 생성합니다. 함수의 버전 2는 트래픽의 3%를 수신합니다. 나머지 97%의 트래픽은 버전 1로 라우팅됩니다.

$ aws lambda create-alias --name routing-alias --function-name my-function --function-version 1 \ --routing-config AdditionalVersionWeights={"2"=0.03}

update-alias 명령을 사용하여 버전 2로 들어오는 트래픽의 비율을 늘립니다. 다음 예에서는 트래픽을 5%로 늘립니다.

$ aws lambda update-alias --name routing-alias --function-name my-function \ --routing-config AdditionalVersionWeights={"2"=0.05}

모든 트래픽을 버전 2로 라우팅하려면 update-alias 명령을 사용하여 별칭이 버전 2를 가리키도록 function-version 속성을 변경합니다. 이 명령은 라우팅 구성도 재설정합니다.

$ aws lambda update-alias --name routing-alias --function-name my-function \ --function-version 2 --routing-config AdditionalVersionWeights={}

이전 단계의 AWS CLI 명령은 다음 Lambda API 작업에 해당합니다.

호출된 버전 확인

두 함수 버전 간에 트래픽 가중치를 구성할 때 호출된 Lambda 함수 버전을 확인하는 방법은 두 가지가 있습니다.

  • CloudWatch Logs – 매 함수 호출 시 Lambda에서 호출된 버전 ID가 포함된 START 로그 항목을 자동으로 Amazon CloudWatch Logs로 내보냅니다. 다음은 그 한 예입니다.

    19:44:37 START RequestId: request id Version: $version

    별칭 호출을 위해 Lambda는 Executed Version 차원을 사용하여 호출된 버전을 기준으로 지표 데이터를 필터링합니다. 자세한 내용은 AWS Lambda 함수 지표 작업 단원을 참조하십시오.

  • 응답 페이로드(동기식 호출) – 동기식 함수 호출에 대한 응답에 호출된 함수 버전을 나타내는 x-amz-executed-version 헤더가 포함되어 있습니다.