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にレコードを渡すテスト
コメント
コメントを投稿