AWS Toolkit을 사용하여 AWS Lambda 함수 작업 - AWS Cloud9

AWS Cloud9 는 더 이상 신규 고객이 사용할 수 없습니다. AWS Cloud9 의 기존 고객은 정상적으로 서비스를 계속 이용할 수 있습니다. 자세히 알아보기

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

AWS Toolkit을 사용하여 AWS Lambda 함수 작업

AWS Toolkit은 AWS Lambda 함수를 지원합니다. AWS 툴킷은 의 Lambda 플러그인에서 이전에 제공한 기능을 대체합니다 AWS Cloud9. AWS 도구 키트를 사용하여 서버리스 애플리케이션의 일부인 Lambda 함수에 대한 코드를 작성할 수 있습니다. 또한 Lambda 함수를 로컬 또는 AWS에서 호출할 수 있습니다.

Lambda는 사용자 지정 코드로 생성하거나 다양한 AWS 서비스에서 생성된 이벤트에 대한 응답으로 코드를 실행하는 완벽하게 관리되는 컴퓨팅 서비스입니다. 여기에는 Amazon Simple Storage Service(Amazon S3), Amazon DynamoDB, Amazon Kinesis, Amazon Simple Notification Service(AmazonSNS) 및 Amazon Cognito 포함됩니다.

중요

서버리스 애플리케이션 모델(SAM)에서 제공하는 리소스를 사용하는 Lambda 애플리케이션을 빌드하려면 섹션을 참조하세요AWS Toolkit AWS SAM 사용 작업.

원격 Lambda 함수 호출

AWS 툴킷을 사용하면 다양한 방식으로 AWS Lambda 함수와 상호 작용할 수 있습니다.

Lambda에 대한 자세한 내용은 AWS Lambda 개발자 안내서를 참조하세요.

참고

AWS Management Console 또는 다른 방법을 사용하여 Lambda 함수를 이미 생성했다고 가정해 보겠습니다. AWS Toolkit에서 호출할 수 있습니다. AWS Toolkit을 사용하여 에 배포할 수 있는 새 함수를 생성하려면 먼저 서버리스 애플리케이션 을 생성 AWS Lambda해야 합니다.

사전 조건

  • 에서 구성한 보안 인증 정보에 AWS Lambda 서비스에 대한 적절한 읽기/쓰기 액세스 권한이 포함되어 있는지 확인합니다. AWS 탐색기의 [Lambda] 아래에 “Error loading Lambda resources(Lambda 리소스를 로드하는 동안 오류가 발생했습니다)”와 유사한 메시지가 표시되면 해당 자격 증명에 연결된 권한을 확인합니다. 권한을 변경한 경우 AWS 도구 키트에서 AWS 탐색기에 적용되는 데 몇 분 정도 걸립니다.

Lambda 함수 호출

중요

AWS Toolkit을 사용하여 API 메서드를 호출하면 실행 취소할 수 없는 리소스가 변경될 수 있습니다. 예를 들어 POST 메서드를 호출하면 호출이 성공하면 API의 리소스가 업데이트됩니다.

AWS Toolkit을 AWS 사용하여 에서 Lambda 함수를 호출할 수 있습니다.

  1. AWS Explorer에서 호출하려는 Lambda 함수의 이름을 선택한 다음 컨텍스트 메뉴를 엽니다.

  2. 에서 호출을 AWS 선택합니다.

  3. [함수 호출(Invoke function)] 창이 열리면 Lambda 함수에 필요한 페이로드의 옵션을 선택합니다. (페이로드는 Lambda 함수에 입력으로 제공JSON하려는 입니다.) Browse(찾아보기)를 선택하여 페이로드로 사용할 파일을 선택하거나 드롭다운 필드를 사용하여 페이로드에 대한 템플릿을 선택합니다. 이 경우 Lambda 함수는 텍스트 상자에 표시된 것처럼 문자열인 입력으로 표시될 있습니다.

Invoke)(호출)을 선택하여 Lambda를 호출하고 페이로드를 전달합니다.

AWS Lambda 탭에 Lambda 함수의 출력이 표시됩니다.

Lambda 함수 다운로드, 업로드 및 삭제

AWS 툴킷은 에서 Lambda 함수를 가져오고 업로드하는 옵션을 제공합니다 AWS Cloud9 IDE.

Lambda 함수 다운로드

Lambda 함수를 다운로드하면 AWS 클라우드에서 함수를 설명하는 프로젝트 파일을 다운로드하고 에서 작업할 수도 있습니다 AWS Cloud9 IDE.

Lambda 함수를 다운로드하려면

  1. AWS 탐색기의 Lambda 노드에서 함수의 컨텍스트(마우스 오른쪽 버튼 클릭) 메뉴를 열고 Download(다운로드)를 선택합니다.

  2. 새 프로젝트의 WorkSpace 폴더를 선택하라는 메시지가 나타나면 다음 중 하나를 수행할 수 있습니다.

    • 제안된 폴더를 선택하여 Lambda 프로젝트와 같은 이름의 하위 폴더를 만듭니다.

    • [다른 폴더 선택(Select a different folder)]을 선택하여 프로젝트 하위 폴더의 다른 상위 폴더를 찾아 선택하는 대화 상자를 엽니다.

    에서 새 편집기 창이 IDE 열립니다.

실행 및 디버깅을 위해 다운로드한 Lambda 함수 구성

다운로드한 Lambda 함수를 서버리스 애플리케이션으로 실행하고 디버그하려면 시작 구성을 launch.json 파일에 정의해야 합니다. 에서 생성된 Lambda 함수는 시작 구성에 포함되지 않을 AWS Management Console 수 있습니다. 따라서 수동으로 추가해야 할 수 있습니다.

시작 구성에 Lambda 함수를 추가하려면

  1. Lambda 함수를 다운로드한 후 Environment(환경) 창을 열어 해당 폴더와 파일을 봅니다.

  2. 그런 다음 Lambda 함수가 /home/ec2-user/.c9/launch.json 파일에 포함되어 있는지 확인합니다. 없는 경우 다음을 수행하여 함수 코드에 대한 CodeLens 링크를 추가합니다.

    1. Lambda 함수를 정의하는 소스 코드 파일(예:.js 또는 .py 파일)을 엽니다. 그런 다음 launch.json 파일에 lambda 함수를 추가하는 데 사용할 수 있는 CodeLens 링크가 있는지 확인합니다. 함수 위에 가 CodeLens 나타나고 Add Debug Config 링크가 포함됩니다.

    2. 의 왼쪽에서 이동(돋보기 아이콘)을 IDE선택하고 “sam hint”를 입력하여 AWS: Toggle SAM hints in source files 명령을 표시합니다. 명령을 선택하여 실행합니다.

    3. Lambda 소스 코드 파일을 닫은 다음 다시 엽니다.

    4. 파일을 다시 연 후 소스 코드에서 를 CodeLens 사용할 수 있는 경우 시작 구성을 추가Add Debug Config하도록 선택합니다.

  3. SAM 힌트 옵션을 전환 CodeLens 한 후에도 를 추가할 수 없는 경우 다음을 수행하여 시작 구성을 추가합니다.

    1. 의 왼쪽에서 이동(돋보기 아이콘)을 선택하고 “config”를 IDE입력하여 AWS: SAM Debug Configuration Editor 명령을 표시합니다. 명령을 선택하여 실행합니다.

    2. SAM 디버그 구성 편집기가 표시됩니다. 이 편집기를 사용하여 시작 구성 속성을 정의할 수 있습니다. 자세한 내용은 SAM 템플릿을 사용하여 서버리스 애플리케이션 실행 및 디버깅configuring launch properties 단계를 참조하세요.

      참고

      Lambda 함수에 SAM 애플리케이션template.yaml용 가 없는 경우 애플리케이션을 추가해야 합니다. 자세한 내용은 AWS SAM 템플릿 생성을 참조하세요.

    3. 편집기에서 필수 구성 정보의 입력을 마치면 시작 구성이 launch.json 파일에 추가됩니다.

Lambda 함수에 대한 시작 구성을 정의한 후 다음을 수행하여 해당 시작 구성을 실행할 수 있습니다.

  1. 의 상단에서 Auto 옆에 IDE있는 화살표를 선택하고 관련 시작 구성을 선택합니다.

  2. 그런 다음 실행(Run)을 선택합니다

Lambda 함수 업로드

로컬 코드로 기존 Lambda 함수를 업데이트할 수 있습니다. 이러한 방식으로 코드를 업데이트하면 배포에 를 AWS Serverless Application Model CLI 사용하지 않으며 AWS CloudFormation 스택을 생성하지 않습니다. 이렇게 하면 Lambda에서 지원하는 모든 런타임을 사용하여 Lambda 함수를 업로드할 수 있습니다.

AWS 툴킷을 사용하여 Lambda 함수를 업로드하는 데는 몇 가지 인터페이스 옵션이 있습니다.

  1. 프로젝트 파일의 Environment(환경) 창에서 업로드하려는 Lambda 애플리케이션용 template.yaml의 컨텍스트(마우스 오른쪽 버튼 클릭) 메뉴를 열고 Upload Lambda(Lambda 업로드)를 선택합니다.

    또는 Ctrl+P를 눌러 바로 가기(Go to Anything) 창을 열고 'lambda'를 입력하여 AWS Upload Lambda 명령에 액세스합니다. 그런 다음 이를 선택하여 업로드 프로세스를 시작합니다.

  2. 그런 다음 업로드할 AWS 리전 을 선택합니다.

  3. 이제 Lambda 함수를 업로드하기 위한 옵션을 선택합니다.

    .zip 아카이브 업로드

    1. 메뉴에서 ZIP 아카이브를 선택합니다.

    2. 파일 시스템에서 .zip AWS Cloud9 파일을 선택하고 열기를 선택합니다.

    디렉터리를 있는 그대로 업로드

    1. 메뉴에서 [디렉터리(Directory)]를 선택합니다.

    2. AWS Cloud9 파일 시스템에서 디렉터리를 선택하고 열기를 선택합니다.

  4. 이벤트를 처리하는 Lambda 함수 핸들러를 지정합니다. 함수가 호출되면 Lambda가 이 핸들러 메서드를 실행합니다.

    참고

    Lambda 함수를 선택할 때는 표시된 목록에서 선택할 수 있습니다. 선택할 함수를 모르는 경우 도구 키트에서 사용할 수 있는 Lambda 함수의 Amazon 리소스 번호(ARN)를 입력할 수 있습니다.

    이 코드를 Lambda 함수의 최신 버전으로 게시할지 여부를 묻는 대화 상자가 표시됩니다. 예(Yes)를 선택하여 게시를 확인합니다.

    참고

    상위 폴더의 컨텍스트(마우스 오른쪽 버튼 클릭) 메뉴를 열고 Upload Lambda(Lambda 업로드)를 선택하여 Lambda 애플리케이션을 업로드할 수도 있습니다. 업로드 시 상위 폴더는 자동으로 선택됩니다.

  1. AWS 탐색기에서 컨텍스트(마우스 오른쪽 버튼 클릭) 메뉴를 열고(마우스 오른쪽 버튼 클릭), 가져올 Lambda 함수의 이름을 선택합니다.

  2. Lambda 업로드(Upload Lambda)를 선택합니다.

  3. Lambda 함수를 업로드하는 세 가지 옵션 중에서 선택합니다.

    미리 만든 .zip 아카이브 업로드

    1. 메뉴에서 ZIP 아카이브를 선택합니다.

    2. 파일 시스템에서 .zip AWS Cloud9 파일을 선택하고 열기를 선택합니다.

    3. 모달 대화 상자로 업로드를 확인합니다. 이렇게 하면 .zip 파일이 업로드되고 배포 후 Lambda가 즉시 업데이트됩니다.

    디렉터리를 있는 그대로 업로드

    1. 메뉴에서 [디렉터리(Directory)]를 선택합니다.

    2. AWS Cloud9 파일 시스템에서 디렉터리를 선택하고 열기를 선택합니다.

    3. 디렉터리를 빌드할지 묻는 메시지가 나타나면 [아니요(No)]를 선택합니다.

    4. 모달 대화 상자로 업로드를 확인합니다. 이렇게 하면 디렉터리가 있는 그대로 업로드되고 배포 후 Lambda가 즉시 업데이트됩니다.

    디렉터리 구축 및 업로드

    1. 메뉴에서 [디렉터리(Directory)]를 선택합니다.

    2. AWS Cloud9 파일 시스템에서 디렉터리를 선택하고 열기를 선택합니다.

    3. 디렉터리를 빌드할지 묻는 메시지가 나타나면 [예(Yes)]를 선택합니다.

    4. 모달 대화 상자로 업로드를 확인합니다. 이렇게 하면 sam build 명령을 사용하여 AWS SAM CLI 디렉터리에 코드를 빌드하고 배포 후 Lambda를 즉시 업데이트합니다.

원격 액세스를 위한 Lambda 함수 배포

로컬 함수를 서버리스 SAM 애플리케이션으로 배포하여 원격으로 로컬 함수를 사용할 수 있도록 할 수 있습니다.

Lambda 함수를 SAM 애플리케이션으로 배포하려면

  1. AWS 탐색기 에서 Lambda 노드의 컨텍스트(마우스 오른쪽 버튼 클릭) 메뉴를 열고 SAM 애플리케이션 배포 를 선택합니다.

  2. 명령 창에서 함수를 서버리스 애플리케이션으로 정의하는 YAML 템플릿을 선택합니다.

  3. 그런 다음 Lambda 배포에 사용할 Amazon S3 버킷을 선택합니다. 배포용 버킷을 생성하도록 선택할 수도 있습니다.

  4. 이제 배포하려는 AWS CloudFormation 스택의 이름을 입력합니다. 기존 스택을 지정하면 명령이 스택을 업데이트합니다. 새 스택을 지정하면 명령이 스택을 생성합니다.

    스택의 이름을 입력하면 Lambda 함수가 SAM 애플리케이션으로 배포되기 시작합니다. 배포가 성공하면 SAM Lambda 애플리케이션을 원격으로 사용할 수 있습니다. 이렇게 하면 다른 AWS Cloud9 개발 환경에서 다운로드하거나 호출할 수 있습니다.

처음부터 Lambda 함수를 생성하려면 AWS 를 사용하여 서버리스 애플리케이션 만들기 단계를 따르는 것이 좋습니다.

Lambda 함수 삭제

동일한 컨텍스트(마우스 오른쪽 버튼 클릭) 메뉴를 사용하여 Lambda 함수를 삭제할 수도 있습니다.

주의

이 절차를 사용하여 AWS CloudFormation과 연결된 Lambda 함수를 삭제해선 안 됩니다. 예를 들어 이 설명서 앞부분에서 서버리스 애플리케이션을 만들 때 생성한 Lambda 함수를 삭제해선 안 됩니다. 이러한 함수는 AWS CloudFormation 스택을 통해 삭제해야 합니다.

  1. AWS 탐색기에서 삭제할 Lambda 함수의 이름을 선택한 다음 컨텍스트(마우스 오른쪽 버튼 클릭) 메뉴를 엽니다.

  2. Delete(삭제)를 선택합니다.

  3. 보고 있는 메시지에서 Yes를 선택하여 삭제합니다.

함수가 삭제되면 더 이상 AWS 탐색기 보기에 나열되지 않습니다.