AWS 도구 키트를 사용한 AWS Lambda 함수 작업 - AWS Cloud9

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

AWS 도구 키트를 사용한 AWS Lambda 함수 작업

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

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

중요

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

원격 Lambda 함수 호출

AWS 도구 키트를 사용하면 다양한 방법으로 AWS Lambda 함수와 상호 작용할 수 있습니다.

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

참고

AWS Management Console을 사용하는 등의 방식으로 이미 Lambda 함수를 만들었다고 가정하겠습니다. AWS 도구 키트에서 이러한 함수를 호출할 수 있습니다. AWS 도구 키트를 사용하여 AWS Lambda에 배포할 수 있는 새 함수를 생성하려면 먼저 서버리스 애플리케이션을 생성해야 합니다.

사전 조건

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

Lambda 함수 호출

중요

AWS 도구 키트를 사용하여 API 메서드를 호출하면 리소스가 변경될 수 있으며 이 변경은 취소할 수 없습니다. 예를 들어 POST 메서드를 호출하면 호출이 성공할 경우 API의 리소스가 업데이트됩니다.

AWS도구 키트를 사용하여 AWS에서 Lambda 함수를 호출할 수 있습니다.

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

  2. AWS에서 호출(Invoke on AWS)을 선택합니다.

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

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

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

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

AWS Toolkit은 AWS Cloud9 IDE에서 Lambda 함수를 가져오고 업로드하기 위한 옵션을 제공합니다.

Lambda 함수 다운로드

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

Lambda 함수를 다운로드하려면

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

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

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

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

    IDE가 새 편집기 창을 엽니다.

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

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

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

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

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

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

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

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

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

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

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

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

      참고

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

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

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

  1. IDE 상단에서 자동(Auto) 옆에 있는 화살표를 선택하고 해당 시작 구성을 선택합니다.

  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 아카이브(ZIP Archive)]를 선택합니다.

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

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

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

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

  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 아카이브(ZIP Archive)]를 선택합니다.

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

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

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

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

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

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

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

    디렉터리 구축 및 업로드

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

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

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

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

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

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

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

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

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

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

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

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

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

Lambda 함수 삭제

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

주의

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

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

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

  3. 나타나는 메시지에서 를 선택하여 삭제되었는지 확인합니다.

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