ヤマムギ

growing hard days.

*

AWS Lambda(Python3.7)でPandocを実行する際にCSSもLayerから読み込む

   

Pandocで必要そうなオプションを確認しておく

先日の「AWS Lambda(Python3.7)でPandocを実行する」でLambda Python3.7を実行環境として、Layerから呼び出したPandocを実行して、マークダウンからEPUBへの単純な変換は確認できました。

電子書籍を本格的に作成するためには、Pandocの他のオプションもデザインも必須になります。
他のコンテンツとしては、マークダウンだけでなくCSSとtitle.txt、画像も必要です。

Pandocの各オプションが正常に動作するかを確認しておきたいと思います。

構成

構成は上記の構成で、変換元のマークダウンファイル、画像、title.txtなどの更新対象のコンテンツはS3バケットへアップロードします。
pandoc実行ファイルは前述の通り、Lambda Layersへ。
そして、CSSもLayersから読み込みました。

マークダウンの各オプションやCSSはこちらの「Markdown + Pandoc でお手軽に電子書籍を書く」を参考にさせていただきました。
ものすごくわかりやすかったです!
ありがとうございます!!

CSS on Lambda Layers

LambdaのLayersのメニューで新規作成して、cssをzipで圧縮したファイルをアップロードしました。
ファイル構成は、css/style.css にしました。

style.css

参考にさせていただいたサンプルに、見出しのpaddingと画像サイズの指定を追加しました。

テストしたLambdaのコード

ランタイムはPython 3.7です。

S3 の input/ プレフィックスのオブジェクトをすべて Lambda の /tmp/ ディレクトリにダウンロードしてます。

ダウンロードが終わると、lambdaのローカルは次の構成になっています。

tmp
|-input.md
|-title.txt
|-lambda-layers.png
opt
|-bin/pandoc
|-css/style.css

argsがコマンドと引数です。
コマンド形式にすると、下記です。

実行することにより、output.epubが生成されるので、それをS3にアップロードしています。

input.md

実行結果

タイトル、画像の挿入、スタイルの適用、問題なく実行されました。


最後までお読みいただきましてありがとうございました!

「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。

「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。

「AWS認定資格試験テキスト AWS認定AIプラクティショナー」という本を書きました。

「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。

「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。

「AWSではじめるLinux入門ガイド」という本を書きました。

 - AWS, MarkDown , ,

  関連記事

クロスリージョンでEFSをマウントしてみる

ニーズがあるかどうかはさておき、クロスリージョンでのEFSファイルシステムをマウ …

API Gateway Lambdaプロキシ統合で渡されるリクエストを確認しました

API Gatewayの統合リクエストでLambdaを指定するときにプロキシ統合 …

試そうとしてたらSavings Plans買っちゃいました

Savings Plansの購入画面を確認していました。 画面遷移も確認しようと …

WordPress、プラグインのアップデートしてBlue/Greenデプロイ

現在のブログの構成です。 WordPressとプラグインのアップデートをして、デ …

cfn-signalの認証とネットワーク

AWS CloudFormationヘルパースクリプトのcfn-signalがC …

AWS DataLake 構築ハンズオンに行ってきました

AWSJ大阪が増床されて2019年10月限定でAWS pop-up loftとい …

EC2のAMIとRDSのスナップショットを他のAWSアカウントに共有してブログサイトをAWSアカウント間で引っ越す

当ブログで使用しているEC2とRDSを環境の整理のため、他のAWSアカウントへ引 …

slackのbotに天気を教えてもらう(Python on AWS Lambda + API Gateway)

slackのbotにAPIの定番ともいえる天気情報を教えてもらいました。 環境は …

AWS SSOのパスワードリマインダーでADのパスワードを変更

AWS Managed Microsoft ADを構築してユーザー追加までで構築 …

「JAWS-UG Osaka 第22回勉強会 東西の中の人が語る!!! Microservices × Serverless On AWS」で運営と懇親会LTをしてきました

「JAWS-UG Osaka 第22回勉強会 東西の中の人が語る!!! Micr …