AWS Lambda for Ruby を使って Lambda から Thinreports ライブラリで生成したPDFをS3に保存してみるメモ
AWS Lambda for Ruby を使って Lambda から Thinreports ライブラリで生成したPDFをS3に保存してみるメモ:
AWS Lambda の Ruby サポート を受けてRubyのインストールからデプロイまでやってみたメモの続きです。
前回は、 AWS Lambda のRubyサポートを受けて、LambdaにアップロードしたRubyスクリプトを API Gateway のエンドポイントを叩いて表示されるテストまでやって見ました。
今回は、LambdaのRubyスクリプトでPDFを生成し、それをS3に保存して見ます。
PDF生成のライブラリにはThinreportsを利用します。
まず初めにRubyのコードを載せておきます。
後ほど下記を追加していきます。
AWS Lambda の Ruby サポート を受けてRubyのインストールからデプロイまでやってみたメモの続きです。
前回は、 AWS Lambda のRubyサポートを受けて、LambdaにアップロードしたRubyスクリプトを API Gateway のエンドポイントを叩いて表示されるテストまでやって見ました。
今回は、LambdaのRubyスクリプトでPDFを生成し、それをS3に保存して見ます。
PDF生成のライブラリにはThinreportsを利用します。
Rubyコード
まず初めにRubyのコードを載せておきます。# coding: utf-8 require 'thinreports' require 'json' require 'base64' require 'aws-sdk-s3' def lambda_handler(event:, context:) # TODO implement region = 'region' #S3バケットのリージョンを設定。アジアパシフィック (東京)の場合は 'ap-northeast-1' bucket_name = 'bucket_name' #S3バケット名を設定 key = 'put-hello-world.pdf' #生成するファイル名を設定 s3 = Aws::S3::Resource.new(region: region) obj = s3.bucket(bucket_name).object(key) #Thinreportsを利用してPDFファイルを生成 report = Thinreports::Report.new layout: 'hello_world' # 1st page report.start_new_page report.page.item(:world).value('Thinreports') report.page.item(:thinreports).value('Thinreports') obj.put(body: report.generate) end
今後
後ほど下記を追加していきます。- S3バケットの設定
- Ruby SDK の設定
- Thinreportsの設定
- ThinreportsからPDFを生成して表示させるテスト
- kintoneからkintone.poxy経由でLambdaにレコードを渡すテスト
コメント
コメントを投稿