aws-クラウドフロント-アピゲートウェイ-ラムダ - AWS ソリューション構造

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

aws-クラウドフロント-アピゲートウェイ-ラムダ

すべてのクラスは積極的に開発されており、将来のバージョンでは下位互換性がない変更または削除の対象となります。これらは、セマンティックバージョン管理モデル。つまり、これらのパッケージを使用するかもしれませんが、このパッケージの新しいバージョンにアップグレードするときにソースコードを更新する必要があるかもしれません。

注意: 正しく機能するためには、プロジェクト内の AWS ソリューション構築パッケージと AWS CDK パッケージが同じバージョンである必要があります。

言語 パッケージ
Python
aws_solutions_constructs.aws_cloudfront_apigateway_lambda
TypeScript
@aws-solutions-constructs/aws-cloudfront-apigateway-lambda
Java
software.amazon.awsconstructs.services.cloudfrontapigatewaylambda

Overview

この AWS ソリューション構築物は、Amazon API Gateway ラムダでバックアップされた REST API の前で Amazon CloudFront ディストリビューションを実装します。

TypeScript の最小限のデプロイ可能なパターン定義は次のとおりです。

import { CloudFrontToApiGatewayToLambda } from '@aws-solutions-constructs/aws-cloudfront-apigateway-lambda'; new CloudFrontToApiGatewayToLambda(this, 'test-cloudfront-apigateway-lambda', { lambdaFunctionProps: { runtime: lambda.Runtime.NODEJS_14_X, // This assumes a handler function in lib/lambda/index.js code: lambda.Code.fromAsset(`${__dirname}/lambda`), handler: 'index.handler' } });

Initializer

new CloudFrontToApiGatewayToLambda(scope: Construct, id: string, props: CloudFrontToApiGatewayToLambdaProps);

パラメータ

パターン構成プロパティ

名前 タイプ 説明
ExistingLambdaObj? lambda.Function Lambda Functionオブジェクトの既存のインスタンス。これとlambdaFunctionPropsはエラーを発生させます。
LambdaFunctionProps? lambda.FunctionProps Lambda 関数のデフォルトプロパティを上書きするオプションのユーザー指定のプロパティ。の場合は無視されますexistingLambdaObjはにあります。
ApigateWayProps? api.LambdaRestApiProps API Gateway のデフォルトの小道具をオーバーライドするオプションのユーザーが提供した小道具を
CloudFrontDistributionProps? cloudfront.DistributionProps CloudFront ディストリビューションのデフォルトの小道具を上書きするオプションのユーザー提供の小道具です。
TTPセキュリティヘッダーを挿入しますか? boolean CloudFront からのすべての応答でベストプラクティス HTTP セキュリティヘッダーの自動インジェクションをオン/オフするためのオプションのユーザー提供の小道具
LogGroupPropsかな? logs.LogGroupProps CloudWatch Logs ロググループのデフォルトの小道具を上書きするオプションのユーザー指定の小道具です。

パターンプロパティ

名前 タイプ 説明
apigateway api.RestApi パターンによって作成された API Gateway REST API のインスタンスを返します。
APIGatewayクラウドウォッチロール iam.Role API Gateway REST API から CloudWatch へのアクセスロギングを有効にするパターンによって作成された IAM ロールのインスタンスを返します。
APIGateWayLogGroup logs.LogGroup API Gateway REST API アクセスログが送信されるパターンによって作成されたロググループのインスタンスを返します。
CloudFrontLoggingBucket? s3.Bucket CloudFront ウェブディストリビューションのパターンによって作成されたロギングバケットのインスタンスを返します。
クラウドフロントウェブディストリビューション cloudfront.CloudFrontWebDistribution パターンによって作成された CloudFront ウェブディストリビューションのインスタンスを返します。
EdgeLambdaFunctionVersion? lambda.Version パターンによって作成された Lambda エッジ関数バージョンのインスタンスを返します。
LambdaFunction lambda.Function パターンによって作成された Lambda 関数のインスタンスを返します。

デフォルト設定

オーバーライドなしでこのパターンをすぐに実装すると、次のデフォルトが設定されます。

Amazon CloudFront

  • CloudFront ウェブディストリビューションのアクセスログの設定

  • CloudFront WebDistribution からのすべてのレスポンスでベストプラクティス HTTP セキュリティヘッダーの自動インジェクションを有効にする

Amazon API Gateway

  • リージョン API エンドポイントのデプロイ

  • API Gateway での CloudWatch によるログの有効化

  • API Gateway の最小権限アクセス IAM ロールを設定する

  • すべての API メソッドのデフォルトの認証タイプを IAM に設定する

  • X-Ray トレースを有効化

AWS Lambda 関数

  • Lambda 関数の制限付きアクセスアクセスの IAM ロールを設定する

  • NodeJS Lambda 関数のキープアライブを使用して接続を再利用できるようにする

  • X-Ray トレースを有効化

  • 環境変数の設定:

    • AWS_NODEJS_CONNECTION_REUSE_ENABLED(ノード10.x以上の機能の場合)

Architecture

GitHub

このパターンのコードを表示するには、問題を作成/表示し、プル要求などを行います。
@aws-solutions-構築/aws-cloudfront-apigateway-ラムダ