Chapter 06

バックエンドの構築手順

もっちゃん/Takashi Kawamoto
もっちゃん/Takashi Kawamoto
2021.05.10に更新

バックエンドの構築手順

概要

AWS SAM(AWS サーバーレスアプリケーションモデル)を使い、下記のAPPbatchLayerのフォルダ内のリソースをそれぞれデプロイします。

line-api-use-case-table-order/
  ├ backend/
  │  ├ APP/
  │     ├ ...
  │  ├ batch/
  │     ├ ...
  │  └ Layer/
  │     ├ ...
  ...
  • APP:メインの処理
  • batch:LINEアクセストークン定期更新・取得バッチ(短期アクセストークン有効期限 30日)
  • Layer:共通処理を内包、Lambda Layerとしてデプロイする

Layerフォルダのリソースをデプロイ(共通処理)

  • template.yaml の修正(今回のハンズオンでは修正せずデフォルトの値でも大丈夫です。)
参考)修正が必要になった場合

下記ファイル内のパラメータを修正します。
https://github.com/jaws-ug-kanazawa/line-api-use-case-table-order/blob/master/backend/Layer/template.yaml#L24

      LayerName: 任意のレイヤー名
  • 以下のコマンドを実行してデプロイします。

下記のコマンドをコピペして実行しましょう!

cd ~/environment/line-api-use-case-table-order/backend/Layer
sam build --use-container
sam deploy --guided
    Stack Name [sam-app]: line-aws-paypay-layer-20210510
    AWS Region [ap-northeast-1]: ap-northeast-1
    Parameter Environment [dev]: dev
    #Shows you resources changes to be deployed and require a 'Y' to initiate deploy
    Confirm changes before deploy [y/N]: y
    #SAM needs permission to be able to create roles to connect to the resources in your template
    Allow SAM CLI IAM role creation [Y/n]: Y
    Save arguments to configuration file [Y/n]: Y

    SAM configuration file [samconfig.toml]: 入力せずEnter 
    SAM configuration environment [default]: 入力せずEnter
    
    Deploy this changeset? [y/N]: y

本ハンズオンではLayerのデプロイは1回だけを想定してますが、2回以上デプロイを実施した場合は以降の手順で LayerVersion の値を修正する必要があります。

batchフォルダのリソースをデプロイ(アクセストークン定期更新・取得バッチ)

  • template.yaml の修正(今回のハンズオンでは修正せずデフォルトの値でも大丈夫です。)
参考)修正が必要になった場合

下記ファイル内のパラメータを修正します。
https://github.com/jaws-ug-kanazawa/line-api-use-case-table-order/blob/master/backend/batch/template.yaml#L23

      LINEChannelAccessTokenDBName: LINEChannelAccessTokenDBTableOrderDev
      EventBridgeName: EventBridgeNameTableOrderDev
      LayerVersion: Layer 1
      LoggerLevel: DEBUG
  • 以下のコマンドを実行してデプロイします。

下記のコマンドをコピペして実行しましょう!

cd ~/environment/line-api-use-case-table-order/backend/batch
sam build --use-container
sam deploy --guided
    Stack Name [sam-app]: line-aws-paypay-batch-20210510
    AWS Region [ap-northeast-1]: ap-northeast-1
    Parameter Environment [dev]: dev
    #Shows you resources changes to be deployed and require a 'Y' to initiate deploy
    Confirm changes before deploy [y/N]: y
    #SAM needs permission to be able to create roles to connect to the resources in your template
    Allow SAM CLI IAM role creation [Y/n]: Y
    Save arguments to configuration file [Y/n]: Y
        
    SAM configuration file [samconfig.toml]: 入力せずEnter 
    SAM configuration environment [default]: 入力せずEnter
    
    Deploy this changeset? [y/N]: y

APPフォルダのリソースをデプロイ

以下の手順で、アプリ本体をデプロイしてください。

  • template.yaml の修正
    下記ファイル内のパラメータを修正します。
    https://github.com/jaws-ug-kanazawa/line-api-use-case-table-order/blob/master/backend/APP/template.yaml#L24
    • LineChannelId: Messaging API チャネルのチャネル IDを入力
    • LIFFChannelId: LINEログイン チャネルのチャネル IDを入力
    • LiffUrl: LIFF URLを入力(https://liff.line.me/xxxxxxxxx-xxxxxxxxx)
    • PayPayApiKey: PayPayサンドボックス利用設定でメモしたAPIキーを入力
    • PayPayApiSecret: PayPayサンドボックス利用設定でメモしたシークレットキーを入力
    • PayPayApiMerchantId: PayPayサンドボックス利用設定でメモしたMERCHANT IDを入力
    • PayPayIsProd: Falseを指定
    • FrontS3BucketName: lineawspaypay20210510<任意の値で全て英数字小文字(例:メールアドレスの@より上の部分など)>
    • LayerVersion: 1 (Layerのバージョンを指定。今回は基本的に1でOK)
      LineChannelId: LineChannelId
      LIFFChannelId: LIFFChannelId
      LiffUrl: https://liff.line.me/xxxxxxxxx-xxxxxxxxx
      PayPayApiKey: PayPayApiKey
      PayPayApiSecret: PayPayApiSecret
      PayPayApiMerchantId: PayPayApiMerchantId
      PayPayIsProd: False
      FrontS3BucketName: S3 Name for FrontEnd
      LayerVersion: 1
  • 以下のコマンドを実行してデプロイします。

下記のコマンドをコピペして実行しましょう!

cd ~/environment/line-api-use-case-table-order/backend/APP
sam build --use-container
sam deploy --guided
    Stack Name : line-aws-paypay-app-20210510
    AWS Region : ap-northeast-1
    Parameter Environment: dev
    #Shows you resources changes to be deployed and require a 'Y' to initiate deploy Confirm changes before deploy [Y/n]: Y
    #SAM needs permission to be able to create roles to connect to the resources in your template Allow SAM CLI IAM role creation[Y/n]: Y
    ××××× may not have authorization defined, Is this okay? [y/N]: y (約10個全てyと入力)  
    Save arguments to configuration file [Y/n]: Y

    SAM configuration file [samconfig.toml]: 入力せずEnter 
    SAM configuration environment [default]: 入力せずEnter
    
    Deploy this changeset? [y/N]: y
  • API Gateway endpoint URLとCloudFrontDomainNameのメモ
    デプロイ成功時にOutPutにて表示されるAPI Gateway endpoint URLとCloudFrontDomainNameのメモを取ってください。