Utilisation de Lambda avec infrastructure en tant que code (IaC) - AWS Lambda

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.

Utilisation de Lambda avec infrastructure en tant que code (IaC)

Lambda propose plusieurs méthodes pour déployer votre code et créer des fonctions. Par exemple, vous pouvez utiliser la console Lambda ou le AWS Command Line Interface (AWS CLI) pour créer ou mettre à jour manuellement des fonctions Lambda. Outre ces options manuelles, AWS propose un certain nombre de solutions pour déployer des fonctions Lambda et des applications sans serveur utilisant l'infrastructure en tant que code (IaC). Avec l’IaC, vous pouvez configurer et gérer des fonctions Lambda et d’autres ressources AWS à l’aide de code plutôt qu’utiliser des processus et des paramètres manuels.

La plupart du temps, les fonctions Lambda ne s’exécutent pas de manière isolée. Elles font plutôt partie d’une application sans serveur avec d’autres ressources telles que les bases de données, les files d’attente et le stockage. Avec IaC, vous pouvez automatiser vos processus de déploiement pour déployer et mettre à jour rapidement et de manière répétée des applications sans serveur complètes impliquant de nombreuses ressources distinctes. AWS Cette approche accélère votre cycle de développement, facilite la gestion des configurations et garantit que vos ressources sont déployées de la même manière à chaque fois.

Outils de l’IaC pour Lambda

Pour déployer des fonctions Lambda et des applications sans serveur à l'aide d'IaC, AWS propose un certain nombre d'outils et de services différents.

AWS CloudFormation a été le premier service proposé par AWS pour créer et configurer des ressources cloud. Avec AWS CloudFormation, vous créez des modèles de texte pour définir l'infrastructure et le code. À mesure que de nouveaux services étaient AWS introduits et que la complexité de la création de AWS CloudFormation modèles augmentait, deux autres outils ont été publiés. AWS SAM est un autre framework basé sur des modèles pour définir des applications sans serveur. AWS Cloud Development Kit (AWS CDK) Il s'agit d'une approche axée sur le code pour définir et approvisionner l'infrastructure à l'aide de constructions de code dans de nombreux langages de programmation courants.

Avec les deux AWS SAM et le AWS CDK, AWS CloudFormation opère en coulisse pour créer et déployer votre infrastructure. Le schéma suivant illustre la relation entre ces outils, et les paragraphes qui suivent le schéma expliquent leurs principales fonctionnalités.

Schéma montrant comment AWS SAM et comment AWS CDK déployer les AWS ressources et le code à l'aide AWS CloudFormation
  • AWS CloudFormation- Avec CloudFormation vous, modélisez et configurez vos AWS ressources à l'aide d'un JSON modèle YAML ou qui décrit vos ressources et leurs propriétés. CloudFormation provisionne vos ressources de manière sûre et reproductible, ce qui vous permet de créer fréquemment votre infrastructure et vos applications sans étapes manuelles. Lorsque vous modifiez la configuration, CloudFormation détermine les opérations appropriées à effectuer pour mettre à jour votre pile. CloudFormation peut même annuler les modifications.

  • AWS Serverless Application Model (AWS SAM) - AWS SAM est un framework open source permettant de définir des applications sans serveur. AWS SAM les modèles utilisent une syntaxe abrégée pour définir les fonctionsAPIs, les bases de données et les mappages de sources d'événements avec seulement quelques lignes de texte (YAML) par ressource. Lors du déploiement, AWS SAM transforme et développe la AWS SAM syntaxe en AWS CloudFormation syntaxe. De ce fait, n'importe quelle CloudFormation syntaxe peut être ajoutée aux AWS SAM modèles. Cela donne AWS SAM toute la puissance de CloudFormation, mais avec moins de lignes de configuration.

  • AWS Cloud Development Kit (AWS CDK)- Avec le AWS CDK, vous définissez votre infrastructure à l'aide de constructions de code et vous la provisionnez. AWS CloudFormation AWS CDK vous permet de modéliser l'infrastructure d'applications avec Python TypeScript, Java,. NET, et Go (dans Developer Preview) en utilisant vos outils de test et vos modèles de flux de travail existantsIDE. Vous bénéficiez de tous les avantages AWS CloudFormation, notamment du déploiement reproductible, de la facilité de restauration et de la détection des dérives.

AWS fournit également un service appelé Composeur d'applications AWS à développer des modèles IaC à l'aide d'une interface graphique simple. Avec Application Composer, vous concevez une architecture d'application en faisant glisser, en regroupant et AWS services en connectant dans un canevas visuel. Application Composer crée ensuite un AWS SAM modèle ou un AWS CloudFormation modèle à partir de votre conception que vous pouvez utiliser pour déployer votre application.

Dans la section Démarrage avec l’IaC pour Lambda ci-dessous, Application Composer vous permet de développer un modèle pour une application sans serveur basée sur une fonction Lambda existante.

Démarrage avec l’IaC pour Lambda

Dans ce didacticiel, vous pouvez commencer à utiliser IaC avec Lambda en créant un AWS SAM modèle à partir d'une fonction Lambda existante, puis en développant une application sans serveur dans Application Composer en ajoutant d'autres ressources. AWS

Si vous préférez commencer par suivre un AWS SAM AWS CloudFormation didacticiel pour apprendre à travailler avec des modèles sans utiliser Application Composer, vous trouverez des liens vers d'autres ressources dans la Étapes suivantes section à la fin de cette page.

Au cours de ce didacticiel, vous apprendrez certains concepts fondamentaux, tels que la manière dont les AWS ressources sont spécifiées dans AWS SAM. Vous apprendrez également à utiliser Application Composer pour créer une application sans serveur que vous pouvez déployer à l'aide de AWS SAM ou AWS CloudFormation.

Pour compléter ce didacticiel, effectuez les tâches suivantes :

  • Créer un exemple de fonction Lambda

  • Utilisez la console Lambda pour afficher le AWS SAM modèle de la fonction

  • Exportez la configuration de votre fonction vers une application sans serveur simple Composeur d'applications AWS et concevez une application sans serveur basée sur la configuration de votre fonction

  • Enregistrez un AWS SAM modèle mis à jour que vous pouvez utiliser comme base pour déployer votre application sans serveur

Dans Étapes suivantes cette section, vous trouverez des ressources que vous pouvez utiliser pour en savoir plus sur AWS SAM Application Composer. Ces ressources incluent des liens vers des didacticiels plus avancés qui vous apprennent à déployer une application sans serveur à l'aide AWS SAM de.

Prérequis

Dans ce didacticiel, vous allez utiliser la fonctionnalité de synchronisation locale d’Application Composer pour enregistrer votre modèle et vos fichiers de code sur votre machine de génération locale. Pour utiliser cette fonctionnalité, vous devez disposer d'un navigateur prenant en charge l'accès au système de fichiersAPI, qui permet aux applications Web de lire, d'écrire et d'enregistrer des fichiers dans votre système de fichiers local. Nous vous recommandons d’utiliser Google Chrome ou Microsoft Edge. Pour plus d'informations sur l'accès au système de fichiersAPI, voir Qu'est-ce que l'accès au système de fichiers API ?

Création d’une fonction Lambda

Dans cette première étape, vous allez créer une fonction Lambda que vous pouvez utiliser pour terminer le reste du didacticiel. Pour simplifier les choses, vous utilisez la console Lambda pour créer une fonction de base « Hello world » à l’aide du moteur d’exécution Python 3.11.

Pour créer une fonction Lambda « Hello world » à l’aide de la console
  1. Ouvrez la console Lambda.

  2. Sélectionnez Créer une fonction.

  3. Ne désélectionnez pas l’option Créer à partir de zéro puis, sous Informations de base, saisissez LambdaIaCDemo pour le nom de la fonction.

  4. Pour l’environnement d’exécution, sélectionnez Python 3.11.

  5. Sélectionnez Create function (Créer une fonction).

Afficher le AWS SAM modèle correspondant à votre fonction

Avant d’exporter la configuration de votre fonction vers Application Composer, utilisez la console Lambda pour afficher la configuration actuelle de votre fonction sous forme de modèle AWS SAM . En suivant les étapes décrites dans cette section, vous découvrirez l'anatomie d'un AWS SAM modèle et comment définir des ressources telles que les fonctions Lambda pour commencer à spécifier une application sans serveur.

Pour afficher le AWS SAM modèle de votre fonction
  1. Ouvrez la page Functions (Fonctions) de la console Lambda.

  2. Choisissez la fonction que vous venez de créer (LambdaIaCDemo).

  3. Dans le volet de Présentation de la fonction, choisissez Modèle.

    À la place du schéma représentant la configuration de votre fonction, vous verrez un AWS SAM modèle pour votre fonction. Le modèle doit ressembler à ce qui suit.

    # This AWS SAM template has been generated from your function's # configuration. If your function has one or more triggers, note # that the AWS resources associated with these triggers aren't fully # specified in this template and include placeholder values.Open this template # in AWS Application Composer or your favorite IDE and modify # it to specify a serverless application with other AWS resources. AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 Description: An AWS Serverless Specification template describing your function. Resources: LambdaIaCDemo: Type: AWS::Serverless::Function Properties: CodeUri: . Description: '' MemorySize: 128 Timeout: 3 Handler: lambda_function.lambda_handler Runtime: python3.11 Architectures: - x86_64 EventInvokeConfig: MaximumEventAgeInSeconds: 21600 MaximumRetryAttempts: 2 EphemeralStorage: Size: 512 RuntimeManagementConfig: UpdateRuntimeOn: Auto SnapStart: ApplyOn: None PackageType: Zip Policies: Statement: - Effect: Allow Action: - logs:CreateLogGroup Resource: arn:aws:logs:us-east-1:123456789012:* - Effect: Allow Action: - logs:CreateLogStream - logs:PutLogEvents Resource: - >- arn:aws:logs:us-east-1:123456789012:log-group:/aws/lambda/LambdaIaCDemo:*

Prenons un moment pour examiner le YAML modèle de votre fonction et comprendre certains concepts clés.

Le modèle commence par la déclaration Transform: AWS::Serverless-2016-10-31. Cette déclaration est obligatoire car, dans les coulisses, les AWS SAM modèles sont déployés via AWS CloudFormation. L’utilisation de l’instruction Transform identifie le modèle en tant que fichier modèle AWS SAM .

Après la déclaration Transform vient la section Resources. C'est ici que sont définies les AWS ressources que vous souhaitez déployer avec votre AWS SAM modèle. AWS SAM les modèles peuvent contenir une combinaison de AWS SAM ressources et de AWS CloudFormation ressources. Cela est dû au fait que pendant le déploiement, les AWS SAM AWS CloudFormation modèles se transforment en modèles, de sorte que toute AWS CloudFormation syntaxe valide peut être ajoutée à un AWS SAM modèle.

Pour le moment, une seule ressource est définie dans la section Resources du modèle, votre fonction Lambda LambdaIaCDemo. Pour ajouter une fonction Lambda à un AWS SAM modèle, vous devez utiliser le type de AWS::Serverless::Function ressource. La ressource Properties d’une fonction Lambda définit l’exécution de la fonction, le gestionnaire de fonctions et les autres options de configuration. Le chemin d'accès au code source de votre fonction qui AWS SAM doit être utilisé pour déployer la fonction est également défini ici. Pour en savoir plus sur les ressources des fonctions Lambda dans AWS SAM, consultez AWS: :Serverless : :Function dans le manuel du développeur.AWS SAM

Outre les propriétés et les configurations de la fonction, le modèle spécifie également une politique AWS Identity and Access Management (IAM) pour votre fonction. Cette politique autorise votre fonction à écrire des journaux sur Amazon CloudWatch Logs. Lorsque vous créez une fonction dans la console Lambda, Lambda associe automatiquement cette politique à votre fonction. Pour en savoir plus sur la spécification d'une IAM politique pour une fonction dans un AWS SAM modèle, consultez la policies propriété sur la AWS page ::Serverless : :Function du manuel du AWS SAM développeur.

Pour en savoir plus sur la structure des AWS SAM modèles, consultez la section Anatomie des AWS SAM modèles.

Composeur d'applications AWS À utiliser pour concevoir une application sans serveur

Pour commencer à créer une application sans serveur simple en utilisant le AWS SAM modèle de votre fonction comme point de départ, vous devez exporter la configuration de votre fonction vers Application Composer et activer le mode de synchronisation local d'Application Composer. La synchronisation locale enregistre automatiquement le code de votre fonction et votre AWS SAM modèle sur votre machine de génération locale et synchronise votre modèle enregistré lorsque vous ajoutez d'autres AWS ressources dans Application Composer.

Pour exporter votre fonction vers Application Composer
  1. Dans le volet Vue d’ensemble des fonctions, choisissez Exporter vers Application Composer.

    Pour exporter la configuration et le code de votre fonction vers Application Composer, Lambda crée un compartiment Amazon S3 dans votre compte pour stocker temporairement ces données.

  2. Dans la boîte de dialogue, choisissez Confirmer et créer un projet pour accepter le nom par défaut de ce compartiment et exporter la configuration et le code de votre fonction vers Application Composer.

  3. (Facultatif) Pour choisir un autre nom pour le compartiment Amazon S3 créé par Lambda, entrez un nouveau nom et choisissez Confirmer et créer un projet. Les noms de compartiment Amazon S3 doivent être uniques et respecter les règles de dénomination de compartiment.

    Sélectionnez Confirmer et créer un projet pour ouvrir la console Application Composer. Sur le canevas, votre fonction Lambda apparaît.

  4. Dans le menu déroulant, choisissez Activer la synchronisation locale.

  5. Dans la boîte de dialogue qui apparaît, choisissez Sélectionner un dossier et un dossier sur votre machine de construction locale.

  6. Choisissez Activer pour activer la synchronisation locale.

Pour exporter votre fonction vers Application Composer, vous devez être autorisé à utiliser certaines API actions. Si vous ne parvenez pas à exporter votre fonction, vérifiez Autorisations nécessaires et assurez-vous que vous disposez des autorisations nécessaires.

Note

La tarification standard d’Amazon S3 s’applique au compartiment créé par Lambda lorsque vous exportez une fonction vers Application Composer. Les objets que Lambda place dans le compartiment sont automatiquement supprimés au bout de 10 jours, mais Lambda ne supprime pas le compartiment lui-même.

Pour éviter que des frais supplémentaires ne soient ajoutés à votre Compte AWS compte, suivez les instructions de la section Supprimer un bucket après avoir exporté votre fonction vers Application Composer. Pour en savoir plus sur le compartiment Amazon S3 créé par Lambda, consultez Utilisation AWS Lambda avec Composeur d'applications AWS.

Pour concevoir votre application sans serveur dans Application Composer

Après avoir activé la synchronisation locale, les modifications que vous apportez dans Application Composer seront reflétées dans le AWS SAM modèle enregistré sur votre machine de génération locale. Vous pouvez désormais glisser-déposer des AWS ressources supplémentaires sur le canevas d'Application Composer pour créer votre application. Dans cet exemple, vous ajoutez une file d'attente Amazon SQS simple comme déclencheur pour votre fonction Lambda et une table DynamoDB pour la fonction dans laquelle écrire des données.

  1. Ajoutez un SQS déclencheur Amazon à votre fonction Lambda en procédant comme suit :

    1. Dans le champ de recherche de la palette Ressources, entrez SQS.

    2. Faites glisser la ressource SQSQueue sur votre canevas et positionnez-la à gauche de votre fonction Lambda.

    3. Choisissez Détails, puis, pour Logical ID, entrez LambdaIaCQueue.

    4. Choisissez Save (Enregistrer).

    5. Connectez vos ressources Amazon SQS et Lambda en cliquant sur le port d'abonnement sur la carte de SQS file d'attente et en le faisant glisser vers le port gauche de la carte de fonction Lambda. L’apparition d’une ligne entre les deux ressources indique que la connexion a abouti. Application Composer affiche également un message au bas du canevas indiquant que les deux ressources sont correctement connectées.

  2. Ajoutez une table Amazon DynamoDB dans laquelle votre fonction Lambda pourra y écrire des données en procédant comme suit :

    1. Dans le champ de recherche de la palette Ressources, entrez DynamoDB.

    2. Faites glisser la ressource Table DynamoDB sur votre canevas et positionnez-la à droite de votre fonction Lambda.

    3. Choisissez Détails, puis, pour Logical ID, entrez LambdaIaCTable.

    4. Choisissez Save (Enregistrer).

    5. Connectez la table DynamoDB à votre fonction Lambda en cliquant sur le port droit de la carte de fonction Lambda et en la faisant glisser vers le port gauche de la carte DynamoDB.

Maintenant que vous avez ajouté ces ressources supplémentaires, examinons le AWS SAM modèle mis à jour créé par Application Composer.

Pour afficher votre AWS SAM modèle mis à jour
  • Sur le canevas Application Composer, choisissez Modèle pour passer de la vue canevas à la vue modèle.

Votre AWS SAM modèle doit désormais contenir les ressources et propriétés supplémentaires suivantes :

  • Une SQS file d'attente Amazon avec l'identifiant LambdaIaCQueue

    LambdaIaCQueue: Type: AWS::SQS::Queue Properties: MessageRetentionPeriod: 345600

    Lorsque vous ajoutez une SQS file d'attente Amazon à l'aide d'Application Composer, Application Composer définit la MessageRetentionPeriod propriété. Vous pouvez également définir la FifoQueue propriété en sélectionnant Détails sur la carte de SQS file d'attente et en cochant ou décochant la file d'attente Fifo.

    Pour définir d’autres propriétés pour votre file d’attente, vous pouvez modifier manuellement le modèle et les y ajouter. Pour en savoir plus sur la AWS::SQS::Queue ressource et ses propriétés disponibles, voir AWS: SQS : :Queue dans le guide de l'AWS CloudFormation utilisateur.

  • Une Events propriété dans la définition de votre fonction Lambda qui spécifie la SQS file d'attente Amazon comme déclencheur de la fonction

    Events: LambdaIaCQueue: Type: SQS Properties: Queue: !GetAtt LambdaIaCQueue.Arn BatchSize: 1

    La propriété Events est constituée d’un type d’événement et d’un ensemble de propriétés qui dépendent du type. Pour en savoir plus sur les différentes options AWS services que vous pouvez configurer pour déclencher une fonction Lambda et sur les propriétés que vous pouvez définir, consultez le EventSourceguide du AWS SAM développeur.

  • Table DynamoDB avec l’identifiant LambdaIaCTable

    LambdaIaCTable: Type: AWS::DynamoDB::Table Properties: AttributeDefinitions: - AttributeName: id AttributeType: S BillingMode: PAY_PER_REQUEST KeySchema: - AttributeName: id KeyType: HASH StreamSpecification: StreamViewType: NEW_AND_OLD_IMAGES

    Lorsque vous ajoutez une table DynamoDB à l’aide d’Application Composer, vous pouvez définir les clés de votre table en choisissant Détails sur la fiche de table DynamoDB et en modifiant les valeurs clés. Application Composer définit également des valeurs par défaut pour un certain nombre d’autres propriétés, notamment BillingMode et StreamViewType.

    Pour en savoir plus sur ces propriétés et les autres propriétés que vous pouvez ajouter à votre AWS SAM modèle, consultez AWS: :DynamoDB : :Table dans le guide de l'utilisateur.AWS CloudFormation

  • Nouvelle IAM politique qui autorise votre fonction à effectuer des CRUD opérations sur la table DynamoDB que vous avez ajoutée.

    Policies: ... - DynamoDBCrudPolicy: TableName: !Ref LambdaIaCTable

Le AWS SAM modèle final complet doit ressembler à ce qui suit.

AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 Description: An AWS Serverless Specification template describing your function. Resources: LambdaIaCDemo: Type: AWS::Serverless::Function Properties: CodeUri: . Description: '' MemorySize: 128 Timeout: 3 Handler: lambda_function.lambda_handler Runtime: python3.11 Architectures: - x86_64 EventInvokeConfig: MaximumEventAgeInSeconds: 21600 MaximumRetryAttempts: 2 EphemeralStorage: Size: 512 RuntimeManagementConfig: UpdateRuntimeOn: Auto SnapStart: ApplyOn: None PackageType: Zip Policies: - Statement: - Effect: Allow Action: - logs:CreateLogGroup Resource: arn:aws:logs:us-east-1:594035263019:* - Effect: Allow Action: - logs:CreateLogStream - logs:PutLogEvents Resource: - arn:aws:logs:us-east-1:594035263019:log-group:/aws/lambda/LambdaIaCDemo:* - DynamoDBCrudPolicy: TableName: !Ref LambdaIaCTable Events: LambdaIaCQueue: Type: SQS Properties: Queue: !GetAtt LambdaIaCQueue.Arn BatchSize: 1 Environment: Variables: LAMBDAIACTABLE_TABLE_NAME: !Ref LambdaIaCTable LAMBDAIACTABLE_TABLE_ARN: !GetAtt LambdaIaCTable.Arn LambdaIaCQueue: Type: AWS::SQS::Queue Properties: MessageRetentionPeriod: 345600 LambdaIaCTable: Type: AWS::DynamoDB::Table Properties: AttributeDefinitions: - AttributeName: id AttributeType: S BillingMode: PAY_PER_REQUEST KeySchema: - AttributeName: id KeyType: HASH StreamSpecification: StreamViewType: NEW_AND_OLD_IMAGES

Déployez votre application sans serveur à l'aide de AWS SAM (facultatif)

Si vous souhaitez déployer une application sans serveur AWS SAM à l'aide du modèle que vous venez de créer dans Application Composer, vous devez d'abord installer le AWS SAM CLI. Pour ce faire, suivez les instructions de la section Installation du AWS SAM CLI.

Avant de déployer votre application, vous devez également mettre à jour le code de fonction enregistré par Application Composer avec votre modèle. Pour le moment, le fichier lambda_function.py enregistré par Application Composer ne contient que le code de base « Hello world » fourni par Lambda lors de la création de la fonction.

Pour mettre à jour votre code de fonction, copiez le code suivant et collez-le dans le fichier lambda_function.py Application Composer enregistré sur votre machine de compilation locale. Vous avez spécifié le répertoire dans lequel Application Composer doit enregistrer ce fichier lorsque vous avez activé le mode de synchronisation locale.

Ce code accepte une paire clé-valeur dans un message provenant de la SQS file d'attente Amazon que vous avez créée dans Application Composer. Si la clé et la valeur sont des chaînes, le code les utilise ensuite pour écrire un élément dans la table DynamoDB définie dans votre modèle.

import boto3 import os import json # define the DynamoDB table that Lambda will connect to tablename = os.environ['LAMBDAIACTABLE_TABLE_NAME'] # create the DynamoDB resource dynamo = boto3.client('dynamodb') def lambda_handler(event, context): # get the message out of the SQS event message = event['Records'][0]['body'] data = json.loads(message) # write event data to DDB table if check_message_format(data): key = next(iter(data)) value = data[key] dynamo.put_item( TableName=tablename, Item={ 'id': {'S': key}, 'Value': {'S': value} } ) else: raise ValueError("Input data not in the correct format") # check that the event object contains a single key value # pair that can be written to the database def check_message_format(message): if len(message) != 1: return False key, value = next(iter(message.items())) if not (isinstance(key, str) and isinstance(value, str)): return False else: return True
Pour déployer votre application sans serveur

Pour déployer votre application à l'aide du AWS SAM CLI, procédez comme suit. Pour que votre fonction soit correctement construite et déployée, la version 3.11 de Python doit être installée sur votre machine de compilation et sur votre PATH.

  1. Exécutez la commande suivante depuis le répertoire dans lequel Application Composer a enregistré vos fichiers template.yaml et lambda_function.py.

    sam build

    Cette commande rassemble les artefacts de compilation pour votre application et les place dans le format et l’emplacement appropriés pour les déployer.

  2. Pour déployer votre application et créer les ressources LambdaSQS, Amazon et DynamoDB spécifiées dans votre AWS SAM modèle, exécutez la commande suivante.

    sam deploy --guided

    L'utilisation du --guided drapeau signifie que des instructions vous AWS SAM seront affichées pour vous guider tout au long du processus de déploiement. Pour ce déploiement, acceptez les options par défaut en appuyant sur Entrée.

Au cours du processus de déploiement, AWS SAM crée les ressources suivantes dans votre Compte AWS :

  • Une AWS CloudFormation pile nommée sam-app

  • Une fonction Lambda avec le format de nom sam-app-LambdaIaCDemo-99VXPpYQVv1M

  • Une SQS file d'attente Amazon au format de nom sam-app-LambdaIaCQueue-xL87VeKsGiIo

  • Une table DynamoDB au format de nom sam-app-LambdaIaCTable-CN0S66C0VLNV

AWS SAM crée également les IAM rôles et les politiques nécessaires pour que votre fonction Lambda puisse lire les messages de la SQS file d'attente Amazon et effectuer des CRUD opérations sur la table DynamoDB.

Pour en savoir plus sur l'utilisation AWS SAM pour déployer des applications sans serveur, consultez les ressources de la Étapes suivantes section.

Testing de votre application déployée (facultatif)

Pour vérifier que votre application sans serveur s'est déployée correctement, envoyez un message à votre SQS file d'attente Amazon contenant une paire clé-valeur et vérifiez que Lambda écrit un élément dans votre table DynamoDB en utilisant ces valeurs.

Tester votre application sans serveur
  1. Ouvrez la page Queues de la SQS console Amazon et sélectionnez la file d'attente AWS SAM créée à partir de votre modèle. Le nom est au format sam-app-LambdaIaCQueue-xL87VeKsGiIo.

  2. Choisissez Envoyer et recevoir des messages et collez le texte suivant JSON dans le corps du message de la section Envoyer un message.

    { "myKey": "myValue" }
  3. Choisissez Send Message (Envoyer un message).

    L’envoi de votre message à la file d’attente amène Lambda à invoquer votre fonction par le biais du mappage de la source d’événement défini dans votre modèle AWS SAM . Pour confirmer que Lambda a invoqué votre fonction comme prévu, indiquez qu’un élément a été ajouté à votre table DynamoDB.

  4. Ouvrez la page Tables de la console DynamoDB et choisissez votre table. Le nom est au format sam-app-LambdaIaCTable-CN0S66C0VLNV.

  5. Sélectionnez Explore table items (Explorer les éléments de la table). Dans le volet Items returned (Éléments retournés), vous devriez voir un élément avec l’id myKey et la Valeur myValue.

Étapes suivantes

Pour en savoir plus sur l'utilisation d'Application Composer avec AWS SAM et AWS CloudFormation, commencez par Utiliser Application Composer avec AWS CloudFormation et AWS SAM.

Pour un didacticiel guidé permettant de AWS SAM déployer une application sans serveur conçue dans Application Composer, nous vous recommandons également de suivre le Composeur d'applications AWS didacticiel dans le AWS Serverless Patterns Workshop.

AWS SAM fournit une interface de ligne de commande (CLI) que vous pouvez utiliser avec des AWS SAM modèles et des intégrations tierces prises en charge pour créer et exécuter vos applications sans serveur. Vous pouvez ainsi créer et déployer votre application, effectuer des tests et un débogage locaux, configurer des pipelines CI/CD, etc. AWS SAM CLI Pour en savoir plus sur l'utilisation du AWS SAM CLI, consultez la section Getting started with AWS SAM dans le guide du AWS Serverless Application Model développeur.

Pour savoir comment déployer une application sans serveur avec un AWS SAM modèle à l'aide de la AWS CloudFormation console, commencez par Utiliser la AWS CloudFormation console dans le Guide de l'AWS CloudFormation utilisateur.

Régions prises en charge pour l’intégration de Lambda à Application Composer

L'intégration de Lambda à Application Composer est prise en charge dans les domaines suivants : Régions AWS

  • USA Est (Virginie du Nord)

  • USA Est (Ohio)

  • USA Ouest (Californie du Nord)

  • USA Ouest (Oregon)

  • Afrique (Le Cap)

  • Asie-Pacifique (Hong Kong)

  • Asie-Pacifique (Hyderabad)

  • Asie-Pacifique (Jakarta)

  • Asie-Pacifique (Melbourne)

  • Asie-Pacifique (Mumbai)

  • Asie-Pacifique (Osaka)

  • Asia Pacific (Seoul)

  • Asie-Pacifique (Singapour)

  • Asie-Pacifique (Sydney)

  • Asie-Pacifique (Tokyo)

  • Canada (Centre)

  • Europe (Francfort)

  • Europe (Zurich)

  • Europe (Irlande)

  • Europe (Londres)

  • Europe (Stockholm)

  • Moyen-Orient (UAE)