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コード

まず初めに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にレコードを渡すテスト

コメント

このブログの人気の投稿

投稿時間:2021-06-17 05:05:34 RSSフィード2021-06-17 05:00 分まとめ(1274件)

投稿時間:2021-06-20 02:06:12 RSSフィード2021-06-20 02:00 分まとめ(3871件)

投稿時間:2020-12-01 09:41:49 RSSフィード2020-12-01 09:00 分まとめ(69件)