AWS CLI를 사용하여 Lambda 함수를 다른 AWS 계정 또는 리전으로 마이그레이션하려면 어떻게 해야 하나요?

최종 업데이트 날짜: 2021년 2월 3일

AWS Lambda 함수를 AWS 계정 또는 AWS 리전 간에 이동해야 합니다. AWS 명령줄 인터페이스(AWS CLI)를 사용하여 이 작업을 수행하려면 어떻게 해야 하나요?

간략한 설명

AWS CLI를 사용하여 Lambda 함수를 두 번째 AWS 계정 또는 리전으로 마이그레이션하려면 다음을 수행하세요.

1.    GetFunction 명령을 실행하여 Lambda 함수 배포 패키지를 다운로드합니다.

2.    함수를 이동하려는 두 번째 AWS 계정 또는 리전에 대해 AWS CLI를 구성합니다.
참고: 두 번째 AWS 계정 또는 리전에 대해 새 AWS CLI 프로필을 구성할 수도 있습니다.

3.    CreateFunction 명령을 실행하여 두 번째 AWS 계정 또는 리전에서 새 함수를 생성합니다.

참고: Lambda 콘솔 또는 AWS Serverless Application Model(AWS SAM)를 사용하여 Lambda 함수를 마이그레이션할 수도 있습니다.

해결 방법

참고: AWS CLI 명령을 실행할 때 오류가 발생하는 경우 최신 버전의 AWS CLI를 사용하고 있는지 확인하세요.

GetFunction 명령을 실행하여 Lambda 함수 배포 패키지를 다운로드합니다.

1.    다음 GetFunction 명령을 실행합니다.

aws lambda get-function --function-name my-function

중요: my-function을 마이그레이션하려는 함수의 이름으로 바꿉니다.

2.    명령 응답에서 [“위치”:("Location":)] 뒤의 URL 링크를 엽니다. 링크는 다음과 유사한 코드 블록에 나타납니다.

"Code": {
        "RepositoryType": "S3",
        "Location": "https://awslambda-us-west-2-tasks.s3.us-west-2.amazonaws.com/snapshots/123456789012/my-function..."
    },

참고: ["위치":("Location":)] 다음의 링크를 열면 배포 패키지가 다운로드됩니다.

함수를 이동하려는 두 번째 AWS 계정 또는 리전에 대해 AWS CLI를 구성합니다.

1.    다음 Configure 명령을 실행합니다.

aws configure --profile profilename

중요: profilename을 두 번째 AWS 계정 또는 리전의 인식 가능한 이름으로 변경합니다.

2.    다음 입력 값을 입력하여 두 번째 AWS 계정 및 리전의 AWS Identity and Access Management(IAM) 사용자 자격 증명을 전달합니다.
[AWS 액세스 키 ID [없음]:(AWS Access Key ID [None]:)]로 두 번째 AWS 계정의 IAM 사용자 액세스 키를 입력합니다. 또는 함수를 다른 리전으로 마이그레이션하는 경우 첫 번째 AWS 계정의 IAM 사용자 액세스 키를 입력합니다.
[AWS 보안 액세스 키 [없음]:(AWS Secret Access Key [None]:)]로 동일한 IAM 사용자의 보안 액세스 키를 입력합니다.
[기본 리전 이름 [없음]:(Default region name [None]:)]으로 함수를 마이그레이션할 AWS 리전을 입력합니다.

자세한 내용은 AWS CLI 구성을 참조하세요.

CreateFunction 명령을 실행하여 두 번째 AWS 계정 또는 리전에 새 함수를 생성합니다.

참고: CreateFunction 명령을 실행하려면 Lambda 함수 배포 패키지 및 실행 역할이 필요합니다.

1.    방금 구성한 AWS CLI 프로파일을 사용하여 다음 CreateFunction 명령을 실행합니다.

aws lambda create-function \
    --function-name my-function \
    --runtime nodejs10.x \    
    --zip-file fileb://my-function.zip \   
    --handler my-function.handler \
    --role arn:aws:iam::123456789012:role/service-role/MyTestFunction-role-tges6bf4 \
    --profile profilename

중요: 명령을 실행하기 전에 다음 값을 마이그레이션할 함수의 정보로 바꿉니다.
[function-name]으로 함수 이름을 입력합니다.
[runtime]으로 함수의 실행 시간을 입력합니다.
[zip-file]로 함수 배포 패키지의 파일 경로를 입력합니다.
[handler]로 함수의 핸들러 이름을 입력합니다.
[role]로 함수를 마이그레이션할 AWS 계정에 있는 Lambda 실행 역할 ARN을 입력합니다.
[profile]로 Configure 명령을 실행할 때 생성한 AWS CLI 프로파일 이름을 입력합니다.

참고: 함수를 다른 AWS 리전으로 마이그레이션하지만 동일한 AWS 계정에 유지하는 경우 동일한 실행 역할을 계속 사용할 수 있습니다.

2.    다음 list-function 명령을 실행하여 마이그레이션이 작동했는지 확인합니다.

aws lambda list-functions \
    --profile profilename

중요: profilename을 Configure 명령을 실행할 때 생성한 AWS CLI 프로파일 이름으로 바꿉니다.


이 문서가 도움이 되었나요?


결제 또는 기술 지원이 필요합니까?