AWS Lambda 초보자 전체 안내서(1부)

11326 단어 serverlessawstutorial
전문: https://dashbird.io/blog/complete-aws-lambda-handbook-beginners-part-1/
서버 없는 세계에 오신 것을 환영합니다.가장 먼저 들으실 것 중 하나는 AWS Lambda입니다. - 계속 들으실 거예요!비록 구조는lambda와 관련되지 않고 서버가 없는 것일 수 있지만, 이것은 보통 서버 응용 프로그램의 관건적인 구성 요소이다.이 세 부분으로 구성된 AWS Lambda 매뉴얼 시리즈의 첫 번째 글에서 우리는 AWS Lambda가 무엇인지, 각종 용어를 사용하여 기초 지식으로 돌아가고, 어떻게 Lambda 함수를 만드는지, 그리고 그것을 어떻게 운행하는지 소개했다. 

AWS Lambda는 무엇입니까?


AWS Lambda는 이벤트 구동의 서버 없는 계산 플랫폼으로 이벤트에 따라 서비스를 시작합니다. 우리의 완전한 Lambda 트리거 가이드 시리즈part 1part 2에서 Lambda 트리거에 대한 정보를 더 많이 알 수 있습니다.코드는 파일로만 저장되며, AWS는 사용자가 설정한 트리거 이벤트를 감시합니다.이 이벤트가 발생하면 코드를 실행하고 필요한 작업을 수행합니다.그것은 사용자가 그것을 찾으러 나갈 때까지 서버가 존재하기 때문에 서버가 없는 것으로 여겨진다. 이것은 Function-as-a-Service (FaaS)의 축소판이다.
Lambda의 또 다른 장점은 AWS가 관리하는 자동 확장성이다. 이것은 인프라 시설을 고려할 필요가 없다는 것을 의미한다.이 서비스는 끊임없이 증가하는 수요에 자동으로 적응하고 규모를 줄여 자원을 절약할 것이다.이 모든 것이 AWS Lambda를 자원과 예산 낭비를 줄이는 절호의 해결 방안으로 만들었다. 

AWS Lambda 정의 해석


Lambda를 설정하고 설정하는 방법을 배우기 전에 자주 사용하는 정의와 용어입니다.
Lambda 함수: 응용 프로그램에서 특정 작업을 수행하는 관련 문장 그룹입니다.그것은 코드와 그와 관련된 모든 의존항으로 구성되어 있다.모든 Lambda 함수는 관련 설정 정보(이름, 설명, 입구점과 자원 수요)가 있습니다.
이 기능 자체는 다음과 같은 중요한 측면을 가지고 있다.
  • 트리거: 함수(제공된 코드를 실행)를 호출하는 활동입니다.활동은 무엇이든지 할 수 있다. 예를 들어 새로운 대상이 당신의 S3 저장소에 들어가거나 사이트나 서비스가 닫히거나 API 호출 등
  • 실제 함수: 함수를 구성하는 운행 시 코드입니다.AWS는 Python, Node를 지원합니다.js, C#, Go 및 Java8을 런타임 환경으로 사용합니다. 
  • 리소스: 각 함수에 특정 역할을 할당할 수 있습니다. 이 함수는 S3 저장소 통 내용을 읽고 데이터베이스에 결과를 쓰는 등 일부 특권을 부여합니다.

  • 왼쪽에 트리거가 표시되는 경우 API 게이트웨이 트리거가 활성화됩니다.오른쪽에 표시되는 리소스는 CloudWatch 로그 및 DynamoDB입니다.
    이벤트 원본: 이벤트의 실체를 발표합니다.이벤트 소스는 AWS 서비스 또는 개발자가 만든 응용 프로그램으로 트리거 함수가 실행되는 이벤트를 생성합니다.
    호출: 특정 Lambda 함수를 실행하기 위해 호출합니다.이것은 함수 코드가 작동하기 시작하는 트리거입니다.호출은 synchronous or asynchronous 일 수 있습니다.
    이벤트 소스 매핑: 특정 Lambda 함수에 연결된 AWS 서비스의 구성입니다.이것은 특정 이벤트가 발생할 때 자동으로 Lambda 함수를 호출할 수 있습니다.
    Lambda 실행 모델: Lambda 함수를 만들 때 메모리 양과 함수가 허용하는 최대 실행 시간을 지정할 수 있습니다.이 함수를 호출하면 AWS Lambda는 사용자가 제공한 설정 설정에 따라 시작됩니다 Execution Context.
    콜드 부팅: Lambda 함수가 장시간 사용되지 않은 후에 호출될 때 콜드 부팅이 발생하여 호출 지연이 증가할 수 있습니다 (잠시 후 상세히 소개합니다).

    AWS Lambda 구성 요소


    Lambda 함수는 코드와 관련 의존항으로 구성되어 있으며 설정 정보도 포함되어 있습니다.일부 구성 데이터를 업데이트할 수 있는 API도 제공됩니다.Lambda 기능 구성 정보에는 다음과 같은 주요 요소가 포함됩니다.
  • 계산에 필요한 자원: Lambda 함수에 할당할 메모리를 지정합니다.AWS Lambda는 공통 AWS EC2 인스턴스 유형(예: M3 유형)과 동일한 비율로 메모리 비율에 따라 CPU 전력을 할당합니다. 
  • 최대 실행 시간(시간 초과): Lambda 함수가 끊임없이 실행되지 않도록 지정합니다.Lambda 함수를 실행하는 데 사용되는 AWS 리소스에 대해 비용을 지불해야 하기 때문에 특히 중요합니다.시간이 초과되면 AWS Lambda는 Lambda 함수의 실행을 종료합니다.제안된 설정 값은 예상 실행 시간에 따라 달라집니다.
  • IAM 역할(역할 수행): AWS Lambda가 Lambda 기능을 수행할 때 수행하는 역할을 나타냅니다.
  • 프로세서 이름: 코드를 실행하고 모든 이벤트 원본 의존항을 Lambda 함수의 일부로 하는 입구점 방법입니다.이 도구를 사용하면 AWS Lambda의 품질 특성을 모니터링하고 디버깅할 수 있습니다. 
  • 간단한 AWS Lambda 함수 만들기


    간단한 Lambda 함수를 만듭니다. 이 함수는 API에서 호출됩니다. 즉, 우리는 URL을 생성합니다. 브라우저에 이 URL을 입력할 때 이 함수를 호출합니다.우리의 입력은 이 URL을 통해 함수에 전달되고, 출력은 브라우저에 되돌아와 표시됩니다.
    1단계: 함수 만들기
    Lambda 콘솔 패널에서 함수 생성을 클릭합니다.함수의 이름을 지정합니다. 우리의 예에서 DemoFunction입니다.이 예에서 특정 언어를 사용하기 때문에 실행 시 파이썬 3을 선택할 수도 있습니다.마지막으로 기능 역할의 이름을 지정하고 정책 템플릿에서 간단한 마이크로서비스 권한을 선택하십시오.

    Create Function 을 클릭하면 실제 코드를 제공할 수 있는 다음 화면으로 이동합니다.우리는 처음부터 이 API를 작성하지만, 당신은 Amazon 저장소의 대량의 템플릿을 조회할 수 있습니다.
    다음 페이지에는 간단한python 함수를 포함하는 내연 텍스트 편집기가 있습니다.다음으로 바꿉니다.
    import json
    
    print('Loading function')
    
    def lambda_handler(event, context):
    
        firstName = event['first']
    
        lastName = event['last']
    
        return 'Greetings, ' + firstName + ' ' + lastName +'!' 
    
    첫 번째 줄은 Python의 JSON 라이브러리를 사용하여 JSON을 해석하는 데 사용됩니다.lambda_handler 함수는 이벤트를 매개변수 중 하나로 지정합니다.이 이벤트는 데이터 세트를 가져왔습니다.함수 내의 첫 번째 줄과 두 번째 줄은 첫 번째 줄과 두 번째 줄로 표시된 모든 데이터를 추출하여 각각의 변수에 저장합니다.
    마지막 줄에서 브라우저에서 볼 수 있는 메시지를 되돌려줍니다.

    여기에 API 게이트웨이 트리거를 추가할 수 있지만 명확하게 보기 위해 단독으로 하겠습니다.이제 Save를 클릭하고 테스트 단계에 들어갈 수 있습니다.
    2단계: 기능 테스트
    기능을 테스트하려면 오른쪽 위에 있는 Test Event 를 클릭한 다음 Configure test Event 를 클릭합니다.

    여기서 JSON 로드가 처음 발생합니다.템플릿 Testevent에서

    파일 내용을 다음 줄로 바꿉니다.
    {
    
      "first": "Jane",
    
      "last": "Doe"
    
    }
    
    `
    현재 우리는 이미 테스트 사건을 저장했다.이전 메뉴에서 테스트를 클릭합니다.성공적으로 수행되면 다음을 볼 수 있습니다.

    3단계: 트리거 설정
    앞에서 설명한 대로 사용자는 URL에 액세스하여 invoke the function이 기능을 사용하려면 AWS 서비스의 API 게이트웨이 콘솔로 이동한 다음 시작 또는 새 API 옵션을 클릭합니다.
    처음부터 하나 만듭니다.

    우리의 API 이름은 dashbird API입니다.를 클릭하여 API를 생성한 후API가 액세스할 수 있는 리소스를 제공합니다(다음 메뉴에 나열됨).

    자원이 없기 때문에, 우리는 단지 정사각형 철봉 하나만 얻을 수 있다.그러나 작업 드롭다운 목록을 사용하고 자원 만들기를 선택하여 새 자원을 만들 수 있습니다.

    자원 목록에서 이 새 자원 (인사어) 을 선택하고 actions 를 누르고 Create Method 를 선택할 수 있습니다.우리의 HTTP 요청 방법은 GET 요청이 될 것입니다. 왜냐하면 우리의 목표는 호출 함수에서 적당한 응답을 얻는 것입니다.

    이 방법은 Lambda 통합 옵션이 있습니다. 이 옵션을 선택한 다음 이전 단계 2에서 선택한 함수 이름을 입력하십시오.또한 2단계 화면 캡처에서 함수ARN(오른쪽 상단)를 기록하면 eu-central-1이 있는 영역을 나타내는 문자열이 있습니다.위의 그림과 같이 Lambda 영역에도 동일한 영역을 선택했는지 확인합니다.그리고 이 함수를 호출할 수 있는 권한을 요청합니다.이제 우리는 마지막 수정을 진행할 준비가 되었다.
    GET 메서드의 실행은 이 그림에서 설명합니다.

    우리는 여전히 입력 파라미터가 정확하게 전달되는 것을 확보해야 한다.이를 위해서는 위에서 통합 요청 단계를 수정해야 한다.를 클릭하여 수정할 수 있습니다.

    메뉴의 맨 밑에 있는 것을 제외하고는 인체 반사 템플릿을 찾을 수 있습니다. 우리는 우리의 입력 템플릿을 설명할 수 있습니다.템플릿의 유형은 application/json입니다.`{

        "first": "$input.params('first')",

        "last": "$input.params('last')"

    }
    `

    The dollar sign and the input.params() part act as a placeholder and helps us define the structure of a proper request. Now we can save our changes, and click on Actions and select Deploy API option. It will ask for a stage name; give it a suitable name (in our case it is called prod). All is set! We can now run this function in real-time.

    실행 함수

    The function can be invoked using a unique URL associated with it. In the API console, where we first selected Resources, select Stage submenu instead. Then drop down to greetings and then to the GET option.

    It will give you an invoke URL, which you can click on for the function to run. However, on the first try you might get an error message if you didn't give any input. You can rectify this by modifying the URL like this:

    https://.........amazonaws.com/prod/greetings?first=John&last=Doe

    Adding the last part to the URL would result in successful execution of the function:

    Lambda 만들기 옵션

    Of course, the above is just one example using one method, so when creating Lambda for your own application it's important to remember the other options available.

    • Writing Code: the supported languages are Node.js, Java, C#, Python and Go. These languages use specific tools for authoring code. Some of them are AWS Lambda console, Eclipse IDE, etc.

    • Deployment Packages: Deploying code and creating a Lambda function requires you to first package your code and dependencies in a deployment package in order to develop a Lambda function. Once done, you need to upload the deployment package to AWS Lambda, so it will allow you to create a Lambda function. Organizing your code and dependencies in specific ways is the first step towards building the deployment package. Deployment package instructions may vary depending on the language you have chosen to author the code.

    • Creating Lambda: You can choose between AWS Lambda console, AWS CLI, and AWS SDKs to create a Lambda function.

    In the next part of our AWS Lambda Handbook for Beginners series, we'll be explaining AWS Lambda pricing, sharing some facts that you may not have known about, and great use cases. Stay tuned!

    좋은 웹페이지 즐겨찾기