2017-12-11 11 views
0

DynamoDBデータベースから取得したデータを、S3に保存されているHTMLテンプレートに挿入しようとしています(本質的にHTMLフォームの空白を埋めてください)。私はJavaScriptにあまり堪能ではないので、どこから始めたらいいのか分かりません。AWS lambda edit DynamoDBのデータを含むhtmlテンプレート

これまでのところ、私はS3からHTML文書を取得してUTF8文字列に変換できました。これはおそらく必要ではないかもしれませんが、私はLambdaでS3と話をしていました。

HTMLに変更可能な変数が含まれるようにするには、サードパーティのライブラリを使用する必要がありますか?または、IDの内部HTMLを何とか変更することはできますか?

ご協力いただければ幸いです!

EDIT:ここでの主な目標は、ユーザー入力(DynamoDBに保存)、HTMLフォームの空白を埋めること、およびHTMLをPDFドキュメントに変換することです。

誰かがテキスト入力にユーザー入力を追加してからPDFに変換するより良い方法を考えてもらえたら、私はどんな提案にも公開しています!あなたのユースケースについては

おかげ

+0

静的なページを再書き込みが理想からかけ離れているが、それはあなたの唯一のオプションだならば、あなたはS3でJSONファイルにDynamoDBのデータを書き込むことを検討可能性があり、あなたのメインラインHTML/JSがでているJSONファイルから読みましたデータを視覚化するためのビジュアル要素をテーブルやレンダリングしてレンダリングします。 – jarmod

+0

@jarmod私は、HTMLをpdf文書に変換することを最終目的としているため、私がHTMLを使用する唯一の理由があることに注意してください。 (更新された質問)。私はあなたのアイデアを試してみますが、それは有望です。ありがとうございました! – End3r117

答えて

0

軽量のHTMLテンプレートライブラリを使用するより構造化とメンテナンス性になります。

たとえば、Lodash.jsを使用すると、以下を行うことができます。

_.template([string=''], [options={}]) 

ここでは、マークアップを次のようにhtmlファイル内の変数を定義し、オプションは、最終的なHTML文字列を返すことのようにあなたに戻って保存できるファイルの内容を読み、DynamoDBのから取得したデータと結合することができますS3のファイル。

<div> 
    <h1>My name is <%- name %></h1> 
    <p>I like <%- hobbies %> but hate being a <%- occupation %></p> 
</div> 

var filledHTML = _.template("HTML string'', { name: "John", hobbies: "Reading", occupation: "developer"}) 

注:ラムダにはlodash.template npmを使用してください。

npm i --save lodash.template 
+0

私はEJSの使用を検討していましたが、私はあなたのコメントを読むまで、テンプレート化が行く方法であるかどうかはわかりませんでした。私はLodashも見ていきます。助けてくれてありがとう! – End3r117

+0

記録のために、私はLodashを使って終わった。あなたの例よりも短いhtml文字列を使ったlambda関数は、ほぼ4秒かかりました。これをバッチ処理してたくさんのテンプレートを記入する場合、私のアプローチを再考する必要があります。そして私の銀行口座を確認してください。 – End3r117

+0

これは、主にホストの起動用です。その後のリクエストを確認しましたか?同じ時間がかかりますか?また、メモリを増やして、1秒未満になるかどうか確認してください。 – Ashan

関連する問題