問題タブ [aws-sam]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - AWS Lambda のサーバーレスアプリケーションで HTML テンプレートを保存して使用する方法 (AWS SAM を使用)?
それ以外の
(A) AWS で Web アプリケーションを実行するための従来のルートに従う (AWS EC2 または Beanstalk で Ruby/Sinatra または Python/Flask を使用するなど)、または
(C) S3 で静的 HTML および JavaScript ファイルを作成し、AWS Lambda で動的 API エンドポイントを作成する (JavaScript を介してそのデータを使用/解釈する静的 Web ページに JSON データを送信する)、
私は中間点に到達したい:
- (B) クライアントへの完全な HTML 応答を生成するために HTML テンプレートを読み取って使用する HTTP エンドポイントを AWS Lambda (Python など) で作成します。
その設定により、AWS Lambda 関数がサーバー側で生成された HTML 出力を配信するサーバーレス Web アプリケーションが作成されます (皮肉なことに私は皮肉なことを忘れていません)。
AWS Lambda 関数の Python コードでは、HTML コード スニペットを含め、それを関数に変更 (データを入力) し、HTML をtext/html
出力としてクライアントに返すことができます。このアプローチの欠点は、HTML テンプレートが Python コードに「埋め込まれ」、別のファイルの外部にないことです。
Q1: コード パッケージのどこかにある HTML テンプレート ファイル (テンプレートはパッケージの一部である必要があります) を参照するにはどうすればよいですか? Python 関数でそれを読み取り、テンプレート内の変数置換によって HMTL ページを生成しますか?
Q2: AWS Serverless Application Model (AWS SAM) を使用して、自分のプロジェクトで一連の HTML テンプレートファイルを指定/インクルード/リンクするにはどうすればよいですか?
amazon-cloudformation - Handler not found エラーのため、aws sam スタックをデプロイできません
を使用して、ネストされたディレクトリにハンドラーを持つラムダを展開する際に問題が発生していsam
ます。
次の手順を実行します。
パッケージ:
sam パッケージ --template template.yaml --output-template-file packaged.yaml --s3-bucket
次のステップで使用する packaged.yaml を作成します。
配備:
aws cloudformation deploy --template-file /Users/localuser/Do/learn-sam/dynamo-stream-lambda/packaged.yaml --stack-name barkingstack
エラー
Cloudformation/SAM テンプレート
ディレクトリ構造
root_directory/ events/ (サンプル イベント用) policies/ (CLI を使用してラムダ用に作成される IAM ロール用) src/index.js package.json node_modules template.yaml
ハンドラーコード