버전 비교

  • 이 줄이 추가되었습니다.
  • 이 줄이 삭제되었습니다.
  • 서식이 변경되었습니다.

...

Lambda 소스 코드 생성

  1. 해당 폴더로 이동한 다음 vim 에디터를 이용해서 다음 index.js Lambda 소스 코드를 만들겠습니다. Terminal에서 vim으로 만드셔도 되고, Cloud 9의 IDE를 이용하여 만들 수도 있습니다. 여기서는 Cloud 9의 IDE를 이용해 보겠습니다. 좌측 상단에서 작업을 위한 폴더로 이동하여 파일을 생성합니다.

    코드 블럭
    languagebash
    themeDJango
    title폴더 이동 및 파일 생성
    vim index.js

     
    Image Added

  2. 파일 이름은 index.js 로 생성합니다. 그리고 더블 클릭을 통해서 파일을 열어 줍니다. 우측 탭에 해당 파일이 표시가 됩니다. (아무것도 없는 상태로 열립니다.)

    Image Added → Image Added

  3. Cloud 9 편집창에서 다음의 코드를 복사하여 붙여 줍니다. (Image Removed
    vim 에디터를 이용해서 소스코드를 붙이고 저장합니다. (vim 에디터 대신 Cloud9 화면에서 직접 파일을 생성해서 작업할 수도 있습니다.)저장하셔도 됩니다.) 그리고 Mac의 경우 Command + S, Windows의 경우 Ctrl + S 단축키로 해당 파일을 저장합니다.

    코드 블럭
    languagejs
    themeRDark
    titleindex.js Lambda 코드
    linenumberstrue
    "use strict";
    exports.handler = async (event) => {
        console.log("request: " + JSON.stringify(event));
        let message = {
            message: "Hello, AWS!"
        };
        let response = {
            statusCode: 200,
            body: JSON.stringify(message)
        };
        return response;
    };

    Image Added

    정보
    titleVIM 만약, vim 사용시 명령어

    1. vim이 실행되고, 최초 키보드에서 i  키를 클릭하면, 커서 위치에서 "Insert" 가능한 모드가 됩니다.
    2. 위 복사한 코드를 붙여 넣기 한 다음, esc 키를 누르고 편집 모드를 빠져 나옵니다.
    3. :wq 를 입력하고 Enter 키를 누르면 편집된 내용을 저장하고 종료 합니다.

    만약 실수를 했을 경우,  esc 키를 누르고 편집 모드를 빠져나와서 :q! 명령을 통해서 빠져 나온 다음 위 과정을 다시 실행하세요.

    Image Added


SAM 템플릿 작성

  1. Lambda 함수와 매핑될 API Gateway를 포함한 template.yml SAM 템플릿을 생성합니다. vim 에디터 또는 Cloud9 IDE에서 작업합니다파일의 편집이 끝나면, 항상 파일을 저장합니다.

    코드 블럭
    languagebash
    themeDJango
    titletemplate.yml 파일 생성
    vim template.yml

    Image Added

    코드 블럭
    languageyml
    themeRDark
    titletemplate.yml 파일
    linenumberstrue
    AWSTemplateFormatVersion: '2010-09-09'
    Transform: AWS::Serverless-2016-10-31
    Description: AWS DevOps 301 Demo Application
    
    Resources:
      ApiAppFunction:
        Type: AWS::Serverless::Function
        Properties:
          Handler: index.handler
          Runtime: nodejs14.x
          Timeout: 5
          Events:
            RootHandler:
              Type: Api
              Properties:
                Path: /
                Method: GET

...

  1. Image Added


Lambda 함수 로컬 테스트

  1. Lambda 함수가 정상 동작하는지 테스트를 해 보겠습니다.

...

  1. Cloud 9에서 하단의 터미널 창에서 AWS301Repo 폴더로 이동하고, 다음과 같이 테스트 합니다.

    코드 블럭
    languagebash
    themeEclipse
    ec2-user:~/environment $ cd AWS301Repo/
    ec2-user:~/environment/AWS301Repo (master) $ sam local invoke


    Image Added
    창 하단에 정상적인 Response 가 나오는 것을 확인할 수 있습니다.

...


코드 변경 체크인

  1. Lambda 함수 파일과, SAM template 2개의 파일을 직접 만들었습니다. 해당 파일을 CodeCommit 리포지토리에 체크인 합니다.

    코드 블럭
    languagebash
    themeDJango
    title코드 체크인
    git add .
    git commit -am "Initial commit"
    git push origin master

...

  1. Image Added

  2. CodeCommit 서비스의 AWS301Repo에 해당 코드가 체크인 여부를 확인합니다.

CodePipeline 생성

배포 파이프라인을 생성합니다. AWS 관리콘솔에서 CodePipeline 서비스로 이동하고 Create pipeline 버튼을 클릭합니다.

...