Maison > développement back-end > Tutoriel Python > Simplification de l'accès aux API avec les URL des fonctions AWS Lambda : gestion de GET, POST, PUT et DELETE avec la sécurité intégrée

Simplification de l'accès aux API avec les URL des fonctions AWS Lambda : gestion de GET, POST, PUT et DELETE avec la sécurité intégrée

WBOY
Libérer: 2024-08-11 12:51:31
original
922 Les gens l'ont consulté

Simplifying API Access with AWS Lambda Function URLs: Handling GET, POST, PUT, and DELETE with Built-in Security

Lors de la création d'applications sans serveur sur AWS, AWS Lambda est souvent la solution incontournable pour exécuter du code sans provisionner ni gérer de serveurs. Traditionnellement, AWS API Gateway est utilisée pour exposer les fonctions Lambda en tant qu'API RESTful. Cependant, AWS a introduit les URL de fonction Lambda, un moyen plus simple d'appeler des fonctions Lambda via HTTPS sans avoir à configurer une passerelle API. Dans cet article, nous découvrirons comment utiliser les URL des fonctions Lambda pour gérer différentes méthodes HTTP (GET, POST, PUT et DELETE) tout en intégrant l'authentification de sécurité.

Que sont les URL de fonctions Lambda ?

Les URL de fonction Lambda fournissent un point de terminaison HTTP(S) dédié pour votre fonction Lambda. Cette fonctionnalité est particulièrement utile pour les microservices à fonction unique, les API légères ou lorsque vous devez exposer une fonction Lambda au public avec une configuration minimale.

Configuration d'une URL de fonction Lambda

Tout d'abord, créons une fonction Lambda et configurons son URL. Vous pouvez le faire via AWS Management Console, AWS CLI ou des outils Infrastructure as Code (IaC) comme AWS CloudFormation ou Terraform.

  1. Créer une fonction Lambda :

    • Accédez à la console AWS Lambda.
    • Cliquez sur « Créer une fonction ».
    • Choisissez l'option "Auteur à partir de zéro".
    • Définissez le nom de votre fonction, le temps d'exécution et le rôle d'exécution.
    • Écrivez votre code de fonction ou téléchargez un package de déploiement.
  2. Créer une URL de fonction :

    • Sous la configuration de votre fonction, sélectionnez l'onglet « URL de fonction ».
    • Cliquez sur « Créer une URL de fonction ».
    • Choisissez le type d'autorisation (par exemple, AWS_IAM pour un accès authentifié ou NONE pour un accès public).
    • Cliquez sur « Créer une URL de fonction ».
  3. Sécurisez l'URL de votre fonction :

    • Vous pouvez utiliser AWS IAM pour l'authentification en sélectionnant AWS_IAM comme type d'autorisation.
    • Créez des rôles ou des politiques IAM pour contrôler quels utilisateurs ou services peuvent appeler la fonction via l'URL.
    • En option, vous pouvez implémenter une logique d'autorisation personnalisée au sein de la fonction elle-même pour restreindre davantage l'accès.

Gérer différentes méthodes HTTP

Les fonctions Lambda déclenchées par les URL de fonction peuvent gérer plusieurs méthodes HTTP (GET, POST, PUT et DELETE) au sein d'une seule fonction. Voici un exemple simple de la façon de mettre en œuvre cela :

import json

def lambda_handler(event, context):
    # Determine the HTTP method
    http_method = event['httpMethod']

    if http_method == 'GET':
        return handle_get(event)
    elif http_method == 'POST':
        return handle_post(event)
    elif http_method == 'PUT':
        return handle_put(event)
    elif http_method == 'DELETE':
        return handle_delete(event)
    else:
        return {
            'statusCode': 405,
            'body': json.dumps({'message': 'Method Not Allowed'})
        }

def handle_get(event):
    # Handle GET request logic
    return {
        'statusCode': 200,
        'body': json.dumps({'message': 'GET request received'})
    }

def handle_post(event):
    # Handle POST request logic
    return {
        'statusCode': 200,
        'body': json.dumps({'message': 'POST request received'})
    }

def handle_put(event):
    # Handle PUT request logic
    return {
        'statusCode': 200,
        'body': json.dumps({'message': 'PUT request received'})
    }

def handle_delete(event):
    # Handle DELETE request logic
    return {
        'statusCode': 200,
        'body': json.dumps({'message': 'DELETE request received'})
    }
Copier après la connexion

Exemple de sécurisation de l'URL de fonction avec l'authentification IAM

Si vous avez choisi d'utiliser AWS_IAM pour sécuriser l'URL de votre fonction, les clients devront signer les demandes à l'aide d'AWS SigV4 (Signature Version 4). Voici un bref aperçu de la façon de faire des demandes authentifiées :

  1. Créez un utilisateur/rôle IAM avec les autorisations appropriées pour appeler la fonction Lambda.
  2. Signez la demande : utilisez les kits SDK AWS, la CLI ou des outils tels que Postman (avec authentification AWS IAM) pour signer les requêtes HTTP.
  3. Invoquez l'URL de la fonction : assurez-vous que la demande signée contient des informations d'identification valides ; sinon, la demande sera refusée.

Par exemple, avec l'AWS CLI :

aws lambda invoke-url https://<your-function-url-id>.lambda-url.<region>.on.aws/<your-path> \
--http-method POST \
--body '{ "key": "value" }' \
--region <region> \
--profile <aws-profile>
Copier après la connexion

Conclusion

Les URL des fonctions AWS Lambda offrent un moyen simplifié d'exposer les fonctions Lambda via HTTP sans avoir besoin d'une passerelle API. En gérant différentes méthodes HTTP (GET, POST, PUT, DELETE) au sein de la fonction Lambda et en sécurisant l'accès avec AWS IAM, vous pouvez créer rapidement des API légères et sécurisées. Que vous développiez un simple microservice ou une application plus complexe, les URL de fonction Lambda sont un ajout puissant à votre boîte à outils AWS.

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!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal