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

3분 분량
0

AWS 계정 또는 AWS 리전 간에 AWS Lambda 함수를 이동해야 합니다.

간략한 설명

Lambda 함수를 두 번째 AWS 계정 또는 리전으로 마이그레이션하려면 AWS Command Line Interface(AWS CLI)를 사용하세요.

  1. GetFunction 명령을 실행하여 Lambda 함수 배포 패키지를 다운로드합니다.
  2. 함수를 이전하려는 두 번째 AWS 계정 또는 리전에 대해 AWS CLI를 구성합니다.
    참고: 두 번째 AWS 계정 또는 리전에 대해 새 AWS CLI 프로필을 구성할 수도 있습니다.
  3. CreateFunction 명령을 실행하여 두 번째 AWS 계정 또는 리전에 새 함수를 생성합니다.

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

다음 해결 방법을 사용하면 계정 또는 리전 간에 한 번에 하나의 함수만 마이그레이션할 수 있습니다. Lambda 함수를 대량으로 직접 및 기본적으로 마이그레이션할 수는 없습니다.

해결 방법

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

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

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

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

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

  2. 명령 응답에서 “위치” 다음에 URL 링크를 엽니다. 링크는 다음 예제와 비슷한 코드 블록에 나타납니다.

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

    참고:****“위치” 다음 링크: 배포 패키지를 다운로드합니다.

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

  1. 다음 구성 명령을 실행합니다.
    aws configure --profile profilename
    중요:****프로필 이름을 두 번째 AWS 계정 또는 리전에서 알아볼 수 있는 이름으로 변경하세요.
  2. 다음 입력 값을 입력하여 두 번째 AWS 계정 및 리전의 AWS ID 및 액세스 관리(IAM) 사용자 자격 증명을 전달합니다.
    **AWS 액세스 키 ID [None]:**두 번째 AWS 계정에 있는 IAM 사용자의 액세스 키를 입력합니다. 또는 함수를 다른 리전으로 마이그레이션하는 경우, 첫 번째 AWS 계정에 IAM 사용자의 액세스 키를 입력하세요.
    **AWS 보안 액세스 키 [None]:**동일한 IAM 사용자의 비밀 액세스 키를 입력합니다.
    **기본 리전 이름 [None]:**함수를 마이그레이션하려는 AWS 리전을 입력합니다.

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

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

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

  1. 구성한 AWS CLI 프로파일을 사용하여 다음 CreateFunction 명령을 실행합니다.
    aws lambda create-function \    --function-name my-function \
        --runtime nodejs18.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에 함수 이름을 입력합니다.
    런타임에는 함수의 런타임을 입력합니다.
    zip-file의 경우, 함수 배포 패키지의 파일 경로를 입력합니다.
    핸들러에 함수의 핸들러 이름을 입력합니다.
    역할에는 함수를 마이그레이션하려는 AWS 계정에 있는 Lambda 실행 역할 ARN을 입력합니다.
    프로필구성 명령을 실행할 때, 생성한 AWS CLI 프로파일 이름을 입력합니다.
    함수를 다른 리전으로 마이그레이션하고 동일한 계정에 유지하려는 경우 실행 역할을 유지할 수 있습니다.
  2. 마이그레이션이 제대로 수행되었는지 확인하려면, 다음 list-functions 명령을 실행합니다.
    aws lambda list-functions \    --profile profilename
    참고: 프로필 이름구성 명령을 실행할 때 생성한 AWS CLI 프로필 이름으로 대체합니다.
AWS 공식
AWS 공식업데이트됨 8달 전