


Lorsque vous travaillez avec des systèmes d'architecture orientée services (SOA), vous aurez peut-être besoin d'une API interne pour la communication entre les services. Une approche courante consiste à utiliser AWS Lambda avec une passerelle API. Cependant, pour les API internes, il existe une option plus simple et plus efficace : invoquer AWS Lambda directement.
Pourquoi appeler AWS Lambda directement ?
Authentification intégrée avec IAM
AWS Lambda s'intègre nativement à AWS Identity and Access Management (IAM), vous permettant de sécuriser l'accès à votre API interne sans couches d'authentification supplémentaires.Configuration et architecture globale plus simples
L'appel direct Lambda élimine le besoin de configurer des passerelles API, des en-têtes personnalisés ou des configurations de serveur complexes. Il s'agit d'une solution légère adaptée aux cas d'utilisation internes.
Exemple : ajout de deux numéros avec AWS Lambda
Étape 1 : Créer la fonction Lambda
Commençons par créer une simple fonction Lambda en Python qui ajoute deux nombres. Voici le code :
def lambda_handler(event, context): if 'number1' not in event: return {'status':'error','msg':"Number1 is missing"} if 'number2' not in event: return {'status':'error','msg':"Number1 is missing"} result = int(event['number1']) + int(event['number2']) return {"status":"success","result":result}
Voici une version améliorée et peaufinée de votre document :
Simplifier les API internes avec l'invocation directe AWS Lambda
Lorsque vous travaillez avec des systèmes d'architecture orientée services (SOA), vous aurez peut-être besoin d'une API interne pour la communication entre les services. Une approche courante consiste à utiliser AWS Lambda avec une passerelle API. Cependant, pour les API internes, il existe une option plus simple et plus efficace : appeler directement AWS Lambda.
Pourquoi appeler AWS Lambda directement ?
Built-in Authentication with IAM AWS Lambda natively integrates with AWS Identity and Access Management (IAM), allowing you to secure access to your internal API without additional layers of authentication. Simpler Configuration Direct Lambda invocation eliminates the need to configure API Gateways, custom headers, or complex server setups. It’s a lightweight solution tailored for internal use cases.
Exemple : ajout de deux numéros avec AWS Lambda
Étape 1 : Créer la fonction Lambda
Commençons par créer une simple fonction Lambda en Python qui ajoute deux nombres. Voici le code :
def lambda_handler(événement, contexte) :
si 'numéro1' n'est pas dans l'événement :
return {'status': 'error', 'msg': "Le numéro 1 est manquant"}
si 'numéro2' n'est pas dans l'événement :
return {'status': 'error', 'msg': "Le numéro 2 est manquant"}
result = int(event['number1']) + int(event['number2']) return {"status": "success", "result": result}
Cette fonction Lambda :
- Valide l'entrée pour garantir que le numéro1 et le numéro2 sont fournis.
- Ajoute les deux nombres et renvoie le résultat dans a sous forme de dict.
L'entrée fournie selon laquelle nos applications consommant l'API est fournie directement dans l'événement. Pas d'objets fantaisistes ici, juste un simple dict, pas de POST, pas de GET, aucun en-tête. Comme mentionné ci-dessus, l'accès est défini par IAM lui-même.
Exécution locale avec AWS SAM
Pour tester la fonction Lambda localement, utilisez AWS Serverless Application Model (SAM). Voici un exemple de modèle SAM :
AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 Description: > Dummy Lambda that adds 2 numbers # More info about Globals: https://github.com/awslabs/serverless-application-model/blob/master/docs/globals.rst Globals: Function: Timeout: 3 MemorySize: 128 Resources: AddTwoNumbersFunction: Type: AWS::Serverless::Function # More info about Function Resource: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction Properties: CodeUri: hello_world/ Handler: app.lambda_handler Runtime: python3.10 Architectures: - x86_64
Étape 2 : Appeler directement la fonction Lambda (exemple PHP)
Nous pouvons exécuter notre lambda via ce script
def lambda_handler(event, context): if 'number1' not in event: return {'status':'error','msg':"Number1 is missing"} if 'number2' not in event: return {'status':'error','msg':"Number1 is missing"} result = int(event['number1']) + int(event['number2']) return {"status":"success","result":result}
Comme vous pouvez le voir, l'entrée lambda est codée en json string les paramètres number1 et number2. (Code de l'exemple ci-dessus)
Built-in Authentication with IAM AWS Lambda natively integrates with AWS Identity and Access Management (IAM), allowing you to secure access to your internal API without additional layers of authentication. Simpler Configuration Direct Lambda invocation eliminates the need to configure API Gateways, custom headers, or complex server setups. It’s a lightweight solution tailored for internal use cases.
Les paramètres doivent être sous forme de json string et non sous forme de tableau. Les résultats peuvent également être décodés en Json, uniquement si lambda renvoie un dict, ou dans le cas d'un Javascript lamda en tant qu'objet.
La valeur de retour est toujours une chaîne et doit être décodée sous la forme souhaitée.
Considérations relatives à la production
Configuration AWS Cli sur script PHP
Si le script php a été déployé lors de la production, ou si le script invoquait un lambda déployé sur AWS lui-même, le client doit être configuré sans le paramètre de point de terminaison :
result = int(event['number1']) + int(event['number2']) return {"status": "success", "result": result}
Bien sûr, placez la clé et le secret avec les clés configurées sur AWS IAM.
Configuration du rôle IAM
Le script appelant nécessite des autorisations IAM pour accéder à la fonction Lambda. Utilisez la politique IAM suivante :
AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 Description: > Dummy Lambda that adds 2 numbers # More info about Globals: https://github.com/awslabs/serverless-application-model/blob/master/docs/globals.rst Globals: Function: Timeout: 3 MemorySize: 128 Resources: AddTwoNumbersFunction: Type: AWS::Serverless::Function # More info about Function Resource: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction Properties: CodeUri: hello_world/ Handler: app.lambda_handler Runtime: python3.10 Architectures: - x86_64
Remplacer :
- XXXXXX avec votre identifiant de compte AWS.
- AddTwoNumbersFunction avec le nom de votre fonction Lambda.
L'autorisation que devrait avoir la stratégie est celle lambda:InvokeFunctionUrl. Vous pouvez utiliser l'éditeur d'autorisation graphique et placer l'ARN du lambda dans la section Ressources mentionnée dans la politique ci-dessus.
Conclusion
L'appel direct d'AWS Lambda simplifie les configurations d'API internes. En tirant parti de l'IAM pour l'authentification et en supprimant les middlewares inutiles, cette approche est à la fois efficace et facile à mettre en œuvre. Que vous créiez des microservices ou que vous gériez des tâches internes, cette méthode peut vous faire gagner du temps et des efforts.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

La journalisation PHP est essentielle pour surveiller et déboguer les applications Web, ainsi que pour capturer des événements critiques, des erreurs et un comportement d'exécution. Il fournit des informations précieuses sur les performances du système, aide à identifier les problèmes et prend en charge le dépannage plus rapide

Laravel simplifie la gestion des données de session temporaires à l'aide de ses méthodes de flash intuitives. Ceci est parfait pour afficher de brefs messages, alertes ou notifications dans votre application. Les données ne persistent que pour la demande ultérieure par défaut: $ demande-

L'extension PHP Client URL (CURL) est un outil puissant pour les développeurs, permettant une interaction transparente avec des serveurs distants et des API REST. En tirant parti de Libcurl, une bibliothèque de transfert de fichiers multi-protocol très respectée, PHP Curl facilite Efficient Execu

Laravel fournit une syntaxe de simulation de réponse HTTP concise, simplifiant les tests d'interaction HTTP. Cette approche réduit considérablement la redondance du code tout en rendant votre simulation de test plus intuitive. L'implémentation de base fournit une variété de raccourcis de type de réponse: Utiliser illuminate \ support \ faades \ http; Http :: faux ([[ 'google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

Voulez-vous fournir des solutions instantanées en temps réel aux problèmes les plus pressants de vos clients? Le chat en direct vous permet d'avoir des conversations en temps réel avec les clients et de résoudre leurs problèmes instantanément. Il vous permet de fournir un service plus rapide à votre personnalité

Alipay Php ...

L'article traite de la liaison statique tardive (LSB) dans PHP, introduite dans PHP 5.3, permettant une résolution d'exécution de la méthode statique nécessite un héritage plus flexible. Problème main: LSB vs polymorphisme traditionnel; Applications pratiques de LSB et perfo potentiel

L'article examine l'ajout de fonctionnalités personnalisées aux cadres, en se concentrant sur la compréhension de l'architecture, l'identification des points d'extension et les meilleures pratiques pour l'intégration et le débogage.


Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

ZendStudio 13.5.1 Mac
Puissant environnement de développement intégré PHP

Navigateur d'examen sécurisé
Safe Exam Browser est un environnement de navigation sécurisé permettant de passer des examens en ligne en toute sécurité. Ce logiciel transforme n'importe quel ordinateur en poste de travail sécurisé. Il contrôle l'accès à n'importe quel utilitaire et empêche les étudiants d'utiliser des ressources non autorisées.

Adaptateur de serveur SAP NetWeaver pour Eclipse
Intégrez Eclipse au serveur d'applications SAP NetWeaver.

Version Mac de WebStorm
Outils de développement JavaScript utiles

Télécharger la version Mac de l'éditeur Atom
L'éditeur open source le plus populaire