Bash on Ubuntu on Windows에서 Serverless Framework 설치까지

목적



매일 AWS에 대해 생각하면 Windows 레지스트리 편집기가 AWS 서비스로 보일 정도로 머리가 이상해졌습니다.

(Elastic은 오이)

이번에는 Windows 환경에서 Serverless Framework을 사용하고 싶었으므로 설치 절차입니다. MacBook 원하는 대로.

결론



Windows 10의 Bash on Ubuntu on Windows를 사용하여 일반적으로 Linux 환경에서 개발할 수있었습니다. MacBook은 필요 없다! Serverless Framework의 동작도 확인할 수 있습니다.

구성


  • Windows 10 64bit
  • Bash on Ubuntu on Windows
  • node.js v7.0.0
  • Serverless Framework v1.0.3


  • 절차



      Installing The Serverless Framework 을 읽으면서 진행했습니다.

    Bash on Ubuntu on Windows 배포



    설치



    이 절차는 적절한 사이트을 보면 좋다고 생각합니다.
  • Windows 기능에서 Windows Subsystem for Linux (Beta)를 활성화하고 재부팅
  • 설정 -> 업데이트 및 보안 -> 개발자 -> 개발자 기능을 사용하여 개발자 모드 활성화

  • 처음 시작
    C:\Windows\system32>bash
    -- ベータ機能 --
    これにより WindowsUbuntu がインストールされます。Ubuntu は Canonical によって配布される製品であり、
    次のサイトに示される条件に基づいてライセンスされています。
    https://aka.ms/uowterms
    
    続行するには、"y" を入力してください: y
    Windows ストアからダウンロードしています... 100%
    ファイル システムを展開しています。この処理には数分かかります...
    既定の UNIX ユーザー アカウントを作成してください。ユーザー名は、Windows のユーザー名と一致する必要はありません。
    詳細: https://aka.ms/wslusers を参照してください
    新しい UNIX ユーザー名を入力してください: ADMIN
    Enter new UNIX password:hoge
    Retype new UNIX password:hoge
    passwd: password updated successfully
    インストールが正常に終了しました
    環境が間もなく開始されます...
    ドキュメントを参照できる場所: https://aka.ms/wsldocs
    

    Ubuntu on Windows 작업



    프록시 설정



    이번은 인증 프록시 환경에 있었으므로, 환경 변수를 설정합니다. apt-get은 환경 변수이지만 wget과 npm은 다른 곳에 정의하기 때문에주의가 필요합니다.
    변수명은 소문자, 설정치에 !(엑스크라메이션)이 있는 경우는 싱글 쿼트 필수였습니다.
      이하, sudo 때에는 -E 옵션을 사용해 환경 변수를 읽어냅니다.

    콘솔
    $ export http_proxy='http://USERNAME:PASSWORD@PROXYSERVER:8080/'
    $ export https_proxy='http://USERNAME:PASSWORD@PROXYSERVER:8080/'
    

    apt-get update로 패키지를 업데이트하십시오.



    콘솔
    $ sudo -E apt-get update
    Get:1 http://security.ubuntu.com trusty-security InRelease [65.9 kB]
    Ign http://archive.ubuntu.com trusty InRelease
    Get:2 http://archive.ubuntu.com trusty-updates InRelease [65.9 kB]
    ()
    Fetched 3,382 kB in 40s (83.1 kB/s)
    Reading package lists... Done
    $ sudo -E apt-get update
    

    yum 설치



    콘솔
    $ sudo -E apt-get install yum
    Reading package lists... Done
    Building dependency tree
    ()
    Do you want to continue? [Y/n] y
    Get:1 http://archive.ubuntu.com/ubuntu/ trusty/main liblua5.2-0 amd64 5.2.3-1 [80.5 kB]
    Get:2 http://archive.ubuntu.com/ubuntu/ trusty-updates/main libnspr4 amd64 2:4.12-0ubuntu0.14.04.1 [110 kB]
    ()
    

    npm 설치



    콘솔
    $ sudo -E apt-get install npm
    Reading package lists... Done
    Building dependency tree
    ()
    Do you want to continue? [Y/n] y
    Get:1 http://archive.ubuntu.com/ubuntu/ trusty-updates/main libssl1.0.0 amd64 1.0.1f-1ubuntu2.21 [830 kB]
    Get:2 http://archive.ubuntu.com/ubuntu/ trusty-updates/main libasan0 amd64 4.8.4-2ubuntu1~14.04.3 [63.1 kB]
    ()
    

    npm 프록시 설정



    환경변수만이라서는 안 되었으므로 npm에도 인증프록시를 설정했습니다.

    콘솔
    $ sudo npm -g config set proxy 'http://USERNAME:PASSWORD@PROXYSERVER:8080/'
    $ sudo npm -g config set http-proxy 'http://USERNAME:PASSWORD@PROXYSERVER:8080/'
    

    node.js, n 설치



    콘솔
    $ sudo yum install nodejs --enablerepo=epel
    $ sudo npm install -g n
    npm http GET https://registry.npmjs.org/n
    npm http 200 https://registry.npmjs.org/n
    npm http GET https://registry.npmjs.org/n/-/n-2.1.4.tgz
    npm http 200 https://registry.npmjs.org/n/-/n-2.1.4.tgz
    /usr/local/bin/n -> /usr/local/lib/node_modules/n/bin/n
    [email protected] /usr/local/lib/node_modules/n
    $ nodejs -v
    v0.10.25
    

    n에서 nodejs의 stable 버전 설치



    콘솔
    $ sudo -E n stable
    
         install : node-v7.0.0
           mkdir : /usr/local/n/versions/node/7.0.0
           fetch : https://nodejs.org/dist/v7.0.0/node-v7.0.0-linux-x64.tar.gz
    ######################################################################## 100.0%
       installed : v7.0.0
    
    

    ※ Serverless Framework에서 지원하는 node.js 버전을 지정하는 것, 지금은 Node v4 or higher

    Serverless Framework 설치



    괜찮습니다.

    콘솔
    $ sudo -E npm install serverless -g
    /usr/local/bin/serverless -> /usr/local/lib/node_modules/serverless/bin/serverless
    /usr/local/bin/slss -> /usr/local/lib/node_modules/serverless/bin/serverless
    /usr/local/bin/sls -> /usr/local/lib/node_modules/serverless/bin/serverless
    /usr/local/lib
    └─┬ [email protected]
      ├── [email protected]
    ()
      └── [email protected]
    $ serverless -v
    1.0.3
    

    aws-cli 설치



    필요했습니다.

    콘솔
    $ sudo -E npm install serverless -g
    
    

    Serverless Framework 사용하기



    설정



    콘솔
    sls config credentials --provider aws --key XXXXXXXXXXXX --secret XxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxX
    Serverless: Setting up AWS...
    Serverless: Saving your AWS profile in "~/.aws/credentials"...
    Serverless: Success! Your AWS access keys were stored under the "default" profile.
    

    템플릿에서 생성



    콘솔
    $ sls create --template aws-nodejs
    Serverless: Creating new Serverless service…
     _______                             __
    |   _   .-----.----.--.--.-----.----|  .-----.-----.-----.
    |   |___|  -__|   _|  |  |  -__|   _|  |  -__|__ --|__ --|
    |____   |_____|__|  \___/|_____|__| |__|_____|_____|_____|
    |   |   |             The Serverless Application Framework
    |       |                           serverless.com, v1.0.3
     -------'
    
    Serverless: Successfully created service with template: "aws-nodejs"
    Serverless: NOTE: Please update the "service" property in serverless.yml with your service name
    
  • hander.py
  • hello 함수가있었습니다

  • serverless.yml
  • 설정 파일입니다


  • 설정 변경



    리전만 바꿔 둡니다.

    serverless.yml
    # you can overwrite defaults here
    # stage: dev
    region: ap-northeast-1
    

    배포



    콘솔
    $ sls deploy
    Serverless: Creating Stack...
    Serverless: Checking Stack create progress...
    .....
    Serverless: Stack create finished...
    Serverless: Packaging service...
    Serverless: Uploading CloudFormation file to S3...
    Serverless: Uploading service .zip file to S3 (639 B)...
    (略)
    hoge-dev-hello
    

    감상



     배포 락찡. 지금까지 AWS 콘솔에서 했던 것이 바보같아졌다.
    또한, Visual Studio Code의 표준 콘솔을 bash로 하면 매우 좋았기 때문에 그 취지 기재하고 있습니다. VSCode는 좋습니다.

    Visual Studio Code의 권장 확장 프로그램 및 설정 (2016/11 버전 수시 업데이트) - Qiita

    참고 링크



    (신세를 졌습니다)
    Tech TIPS: Windows 10 Linux/Ubuntu 호환 환경에서 bash 사용 - @IT
    Bash on Ubuntu on Windows란? 설치 및 사용법 - Build Insider
    업데이트 및 보안 개발자 패키지를 오류로 설치할 수 없음 - Microsoft 커뮤니티
    Linux,Windows 프록시 설정 이것 - Qiita
    [Node.js] npm proxy 및 registry 설정 - Qiita
    Serverless Framework 시작(v0.5.x 지원) - Qiita
    AWS Lambda를 활용한 Serverless Framework를 만나보세요 - Qiita

    (이상)

    좋은 웹페이지 즐겨찾기