aws-cloudfront-apigateway-lambda - Constructions dans les Solutions d'AWS

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

aws-cloudfront-apigateway-lambda

Toutes les classes sont en cours de développement actif et sujettes à des modifications ou à des suppressions non rétrocompatibles dans toute version future. Ceux-ci ne sont pas assujettis à laGestion sémantique de versionModèle. Cela signifie que même si vous pouvez les utiliser, vous devrez peut-être mettre à jour votre code source lors de la mise à niveau vers une version plus récente de ce package.

Remarque: Pour garantir une bonne fonctionnalité, les packages AWS Solutions Constructs et AWS CDK de votre projet doivent être la même version.

Langage Package
Python
aws_solutions_constructs.aws_cloudfront_apigateway_lambda
TypeScript
@aws-solutions-constructs/aws-cloudfront-apigateway-lambda
Java
software.amazon.awsconstructs.services.cloudfrontapigatewaylambda

Overview

Cette solution AWS Construct implémente une distribution Amazon CloudFront devant une API REST basée sur Amazon API Gateway Lambda.

Voici une définition de modèle déployable minimale dans 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);

Paramètres

Accessoires de construction de modèle

Nom Type Description
L'existence de Glambdaobj ? lambda.Function Instance existante de l'objet Lambda Function, fournissant à la fois ceci etlambdaFunctionPropsprovoquera une erreur.
LambdaFunctionProps ? lambda.FunctionProps Propriétés facultatives fournies par l'utilisateur pour remplacer les propriétés par défaut de la fonction Lambda. Ignoré si unexistingLambdaObjest fourni.
ApigatewayProps ? api.LambdaRestApiProps Props fournis par l'utilisateur en option pour remplacer les accessoires par défaut pour API Gateway
CloudFrontDistributionProps ? cloudfront.DistributionProps Des accessoires facultatifs fournis par l'utilisateur pour remplacer les accessoires par défaut pour la distribution CloudFront.
InserThttpSecurityHeaders ? boolean Props fournis par l'utilisateur en option pour activer/désactiver l'injection automatique des en-têtes de sécurité HTTP des meilleures pratiques dans toutes les réponses de CloudFront
LogGroupProps ? logs.LogGroupProps Des accessoires fournis par l'utilisateur en option pour remplacer les accessoires par défaut pour le groupe de journaux CloudWatch Logs.

Propriétés du modèle

Nom Type Description
AppiGateway api.RestApi Renvoie une instance de l'API Gateway API créée par le modèle.
ApigateWayCloudWatchRole iam.Role Renvoie une instance du rôle IAM créé par le modèle qui active la journalisation des accès à partir de l'API Gateway API vers CloudWatch.
ApigateWayLogGroup logs.LogGroup Renvoie une instance du groupe de journaux créé par le modèle auquel les journaux d'accès API REST de API Gateway d'API sont envoyés.
CloudFrontLoggingBucket ? s3.Bucket Renvoie une instance du compartiment de journalisation créé par le modèle pour la distribution Web CloudFront.
CloudFrontWebDistribution cloudfront.CloudFrontWebDistribution Renvoie une instance de la distribution Web CloudFront créée par le modèle.
EdgelAmbDAFunctionVersion ? lambda.Version Renvoie une instance de la version de la fonction de bord Lambda créée par le motif.
LambdaFunction lambda.Function Renvoie une instance de la fonction Lambda créée par le modèle.

Paramètres par défaut

L'implémentation prête à l'emploi de ce modèle sans remplacement définira les valeurs par défaut suivantes :

Amazon CloudFront

  • Configurer la journalisation d'accès pour CloudFront WebDistribution

  • Activer l'injection automatique des en-têtes de sécurité HTTP des meilleures pratiques dans toutes les réponses de CloudFront WebDistribution

Amazon API Gateway

  • Déployer un point de terminaison API régional

  • Activer la journalisation CloudWatch pour API Gateway

  • Configurer le rôle IAM d'accès minimal aux privilèges pour API Gateway

  • Définissez l'AuthorizationType par défaut pour toutes les méthodes d'API sur IAM

  • Activer le suivi X-Ray

Fonction AWS Lambda

  • Configurer le rôle IAM d'accès limité pour la fonction Lambda

  • Activer la réutilisation des connexions avec la fonction Keep-Alive pour NodeJS Lambda

  • Activer le suivi X-Ray

  • Définir les variables d'environnement :

    • AWS_NODEJS_CONNECTION_REUSE_ENABLED(pour les fonctions Nœud 10.x et supérieures)

Architecture

GitHub

Pour afficher le code de ce modèle, créer/afficher les problèmes et les demandes d'extraction, et plus encore :
@aws -solutions-constructs/aws-cloudfront-apigateway-lambda