Serverless Framework에서 알아두면 편리한 설정

소개



Serverless를 프로덕션에 통합할 때 이 설정이 좋다는 것을 써 갑니다.

환경


  • Serverless Framework 1.36.1
  • Node 6.9.0
  • 런타임(Ruby 2.5.0)

  • CloudWatch Logs 보존 기간 지정


    providerlogRetentionInDays 로 유지 일수를 지정해 주면 OK입니다.
    이것을 지정하지 않으면 유지 기간이 무제한이므로, 특히 계속 유지할 필요가 없으면 지정해 둡시다.

    이하의 설정에서는 10일 유지한다고 하고 있습니다.
    
    provider:
      logRetentionInDays: 10
    

    배포 버전 관리 사양 변경



    Serverless Framework는 sls deploy를 수행할 때마다 버전이 지정된 폴더를 S3에 저장합니다.
    여기도 CloudWatch Logs와 마찬가지로 무제한으로 폴더가 S3에 저장되어 버리므로 이전 버전을 몇 개까지 저장할지 설정합시다.

    serverless-prune-plugin 플러그인을 사용하여 쉽게 설정할 수 있습니다.package.json 있는 계층에서 다음을 수행합니다.
    $ npm install --save-dev serverless-prune-plugin
    

    이상을 실행하면 serverless.yml에 다음을 추가합니다.
    plugins:
      - serverless-prune-plugin
    

    배포 후 자동으로 실행하고 싶으므로 다음과 같이 serverless.yml 에 추기를 합니다.
    custom:
      prune:
        automatic: true
        number: 5
    

    위와 같이 설정하는 것으로, 배포를 행하면(자) 과거 5개의 버젼까지가 보존되고 있는지 생각합니다.

    DynamoDB 온디맨드(요청 수 청구) 설정



    DynamoDB는 요청 수에 따라 청구되는 주문형 설정을 제공합니다.
    이를 Serverless Framework에서 사용하려면 다음과 같이 Resource를 변경하십시오.
    Resources:
      DynamoDbTestTable:
        Type: AWS::DynamoDB::Table
        Properties:
          AttributeDefinitions:
          - AttributeName: id
            AttributeType: S
          KeySchema:
          - AttributeName: id
            KeyType: HASH
          # BillingModeを変更
          BillingMode: PAY_PER_REQUEST
          TableName: test-tables
    

    위와 같이, BillingModePAY_PER_REQUEST 로 하는 것으로 설정이 가능합니다.

    DynamoDB 레코드의 만료 날짜 설정



    대량의 트랜잭션 데이터를 저장할 때 등에 레코드의 만료 날짜를 설정하고 싶습니다.
    이 설정을 알기 전에는 Lambda에서 일괄 처리를 작성하여 레코드를 삭제했습니다.

    serverless-dynamodb-ttl 이 플러그인을 사용하는 것으로 간단하게 설정할 수 있으므로, 사용합니다.
    $ npm install serverless-dynamodb-ttl --save
    

    그런 다음 serverless.yml 를 편집합니다.plugins 섹션에 플러그인명을 추가해, custom 섹션에 설정을 하는 테이블명과 만료일을 포함한 컬럼명을 지정합니다.
    plugins:
      - serverless-dynamodb-ttl
    
    custom:
      dynamodb:
        ttl:
          - table: test-table # テーブル名
            field: expiration_date # カラム名
    
    expiration_dateunixtime 에서 만료일을 설정해야 합니다.



    Serverless의 시간대를 일본 시간으로 변경



    일본 시간으로 변경하려면 serverless.ymlprovider 섹션에 환경 변수 TZ: Azia/Tokyo 를 설정해 주면 변경할 수 있습니다.
    provider:
      environment:
        TZ: Asia/Tokyo
    

    끝에



    앞으로도 편리한 설정이 있으면 추기 예정이므로, 이런 편리한 설정이 있어 등 가르쳐 주실 수 있으면 다행입니다.

    좋은 웹페이지 즐겨찾기