問題タブ [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.

0 投票する
1 に答える
6123 参照

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 テンプレートファイルを指定/インクルード/リンクするにはどうすればよいですか?

0 投票する
1 に答える
1422 参照

amazon-cloudformation - Handler not found エラーのため、aws sam スタックをデプロイできません

を使用して、ネストされたディレクトリにハンドラーを持つラムダを展開する際に問題が発生していsamます。

次の手順を実行します。

  1. パッケージ:

    sam パッケージ --template template.yaml --output-template-file packaged.yaml --s3-bucket

次のステップで使用する packaged.yaml を作成します。

  1. 配備:

    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

ハンドラーコード