[PYTHON] Différences entre queryStringParameters et multiValueQueryStringParameters dans AWS Lambda

environnement

Python3.7 Avec intégration proxy

Utiliser queryStringParameters

Vous pouvez obtenir les paramètres de la charge utile transmise d'API Gateway à Lambda.

demande https://XXXX/XXXX/XXXX?id=1&value=foo


response = event.get('queryStringParameters')

return {
    'statusCode': 200,
    'body': json.dumps(response)
}

résultat

{
    "id": "1"
    "value": "foo"
}

Vous pouvez obtenir la valeur par nom de paramètre.

demande https://XXXX/XXXX/XXXX?id=1&value=foo


response = event.get('queryStringParameters').get('value')

return {
    'statusCode': 200,
    'body': json.dumps(response)
}

résultat

"foo"

Il sera nul si le nom de paramètre spécifié n'existe pas.

Utiliser multiValueQueryStringParameters

Vous pouvez également obtenir les paramètres ici, Utilisé lorsqu'il y a plusieurs (tableaux) du même nom de paramètre.

demande https://XXXX/XXXX/XXXX?id=1&value=foo&value=bar&value=baz


response = event["multiValueQueryStringParameters"].get("value")

return {
    'statusCode': 200,
    'body': json.dumps(response)
}

résultat

{
    "id": [
        "1"
    ],
    "value": [
        "foo",
        "bar",
        "baz"
    ]
}

À quoi vous devez faire attention Lorsque vous spécifiez un nom de paramètre qui n'existe pas Si vous essayez d'obtenir le contenu du tableau tel quel, une erreur se produit.

demande https://XXXX/XXXX/XXXX?id=1

C'est ok (devient nul)


response = event["multiValueQueryStringParameters"].get("value")

return {
    'statusCode': 200,
    'body': json.dumps(response)
}

C'est une erreur Arrêtons cette façon de prendre.

response = event["multiValueQueryStringParameters"].get("value")[0]

return {
    'statusCode': 200,
    'body': json.dumps(response)
}

Lors de la récupération de plusieurs noms de paramètres (tableau) identiques avec queryStringParameters

demande https://XXXX/XXXX/XXXX?id=1&value=foo&value=bar&value=baz


response = event.get('queryStringParameters')

return {
    'statusCode': 200,
    'body': json.dumps(response)
}

résultat

{
    "id": "1"
    "value": "baz"
}

Le baz est récupéré, écrasé par la dernière valeur.

Résumé

Prenons la méthode qui convient à l'objectif en fonction des paramètres passés.

Recommended Posts

Différences entre queryStringParameters et multiValueQueryStringParameters dans AWS Lambda
Différence d'authenticité entre Python et JavaScript
Différences entre Ruby et Python dans la portée
Différences entre la syntaxe Python et Java
Différences de multithreading entre Python et Jython
[Python] Scraping dans AWS Lambda
Différence entre les répertoires Windows et Linux
Différence entre list () et [] en Python
Différence entre la commande yum et la commande APT
Ecrire une fonction AWS Lambda en Python
Différence entre Python, stftime et strptime
Différences d'identité, d'équivalence et d'alias
J'ai comparé Node.js et Python lors de la création d'une miniature à l'aide d'AWS Lambda
différence entre les instructions (instructions) et les expressions (expressions) en Python
Différence entre @classmethod et @staticmethod en Python
Différence entre append et + = dans la liste Python
Différence entre non local et global en Python
Surveillance simple du serveur avec AWS Lambda (Python) et notification des résultats avec Slack
[AWS] Associez Lambda et S3 à boto3
Matplotlib Basics / Différence entre fig et axes
Différence entre le tableau Numpy 1D [x] et le tableau 2D [x, 1]
Différence entre Ruby et Python (syntaxe de base)
Résumé des différences entre PHP et Python
[python] Différence entre variable et self. Variable dans la classe
À propos de la différence entre "==" et "is" en python
Différences et points communs entre le type de dict, le type de liste et le type de tuple
Connexion facile entre Raspberry Pi et AWS IoT
Version Amazon API Gateway et AWS Lambda Python
Différences de comportement entre les opérateurs append () et "+ =" lors de l'ajout de données à une liste en Python
J'ai mis du sélénium et du chrome sans tête dans AWS lambda. (Notes sous environnement Win10, etc.)
Pages HTML dynamiques créées avec AWS Lambda et Python
Examiner la relation entre TensorFlow et Keras pendant la période de transition
Créez Amazon Linux avec AWS EC2 et connectez-vous
Différence entre Ruby et Python en termes de variables
J'ai essayé d'exécuter TensorFlow dans l'environnement AWS Lambda: Préparation
Calculer la différence entre Pose et Transform avec ROS en Python
EP 3 Connaître les différences entre octets, str et unicode
Conversion mutuelle entre JSON et YAML / TOML en Python
Différence entre return, return None et no return description en Python
[Python] Retry processing (Exponential Backoff) mémo dans AWS Lambda
Créez des tweets ordinaires comme une flotte avec AWS Lambda et Python
Comparez la "relation log et infini" avec Gauche (0.9.4) et Python (3.5.1)
Différence entre les méthodes numpy et pandas pour trouver une distribution