[PYTHON] Unterschiede zwischen queryStringParameters und multiValueQueryStringParameters in AWS Lambda

Umgebung

Python3.7 Mit Proxy-Integration

Verwenden Sie queryStringParameters

Sie können die Parameter aus der Nutzlast abrufen, die vom API-Gateway an Lambda übergeben wird.

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


response = event.get('queryStringParameters')

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

Ergebnis

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

Sie können den Wert über den Parameternamen abrufen.

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


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

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

Ergebnis

"foo"

Es ist null, wenn der angegebene Parametername nicht vorhanden ist.

Verwenden Sie multiValueQueryStringParameters

Sie können die Parameter auch hier erhalten, Wird verwendet, wenn mehrere (Arrays) desselben Parameternamens vorhanden sind.

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


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

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

Ergebnis

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

Worauf muss man achten? Wenn Sie einen Parameternamen angeben, der nicht vorhanden ist Wenn Sie versuchen, den Inhalt des Arrays so zu erhalten, wie er ist, tritt ein Fehler auf.

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

Dies ist in Ordnung (wird null)


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

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

Dies ist ein Fehler Hören wir mit dieser Art der Einnahme auf.

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

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

Beim Abrufen mehrerer (Array-) gleicher Parameternamen mit queryStringParameters

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


response = event.get('queryStringParameters')

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

Ergebnis

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

Der Baz wird abgerufen und mit dem letzten Wert überschrieben.

Zusammenfassung

Nehmen wir die Methode, die dem Zweck entspricht, anhand der übergebenen Parameter.

Recommended Posts

Unterschiede zwischen queryStringParameters und multiValueQueryStringParameters in AWS Lambda
Unterschied in der Authentizität zwischen Python und JavaScript
Unterschiede zwischen Ruby und Python im Umfang
Unterschiede zwischen Python- und Java-Syntax
Unterschiede in der Multithread-Verarbeitung zwischen Python und Jython
[Python] Scraping in AWS Lambda
Unterschied zwischen Windows- und Linux-Verzeichnissen
Unterschied zwischen list () und [] in Python
Unterschied zwischen yum-Befehl und APT-Befehl
Schreiben Sie die AWS Lambda-Funktion in Python
Unterschied zwischen Python, Stftime und Strptime
Unterschiede in Identität, Äquivalenz und Aliasnamen
Ich habe Node.js und Python beim Erstellen eines Miniaturbilds mit AWS Lambda verglichen
Unterschied zwischen Anweisungen (Anweisungen) und Ausdrücken (Ausdrücken) in Python
Unterschied zwischen @classmethod und @staticmethod in Python
Unterschied zwischen Anhängen und + = in der Python-Liste
Unterschied zwischen nicht lokal und global in Python
Einfache Serverüberwachung mit AWS Lambda (Python) und Ergebnisbenachrichtigung mit Slack
[AWS] Verknüpfen Sie Lambda und S3 mit boto3
matplotlib Grundlagen / Unterschied zwischen Feigen und Achsen
Unterschied zwischen Numpy 1D Array [x] und 2D Array [x, 1]
Unterschied zwischen Ruby und Python (grundlegende Syntax)
Zusammenfassung der Unterschiede zwischen PHP und Python
Unterschied zwischen Variablen und Selbst. Variablen in der [Python] -Klasse
Über den Unterschied zwischen "==" und "is" in Python
Unterschiede und Gemeinsamkeiten zwischen Diktattyp, Listentyp und Tupeltyp
Einfache Verbindung zwischen Raspberry Pi und AWS IoT
Amazon API Gateway und AWS Lambda Python-Version
Unterschiede im Verhalten zwischen den Operatoren append () und "+ =" beim Hinzufügen von Daten zu einer Liste in Python
Ich habe Selen und kopfloses Chrom in AWS Lambda gegeben. (Hinweise unter Win10-Umgebung usw.)
Dynamische HTML-Seiten mit AWS Lambda und Python
Untersuchen Sie die Beziehung zwischen TensorFlow und Keras in der Übergangszeit
Erstellen Sie Amazon Linux mit AWS EC2 und melden Sie sich an
Unterschied zwischen Ruby und Python in Bezug auf Variablen
Ich habe versucht, TensorFlow in der AWS Lambda-Umgebung auszuführen: Vorbereitung
Berechnen Sie Pose- und Transformationsunterschiede in Python mit ROS
EP 3 Kennen Sie die Unterschiede zwischen Bytes, Str und Unicode
Gegenseitige Konvertierung zwischen JSON und YAML / TOML in Python
Unterschied zwischen return, return None und no return description in Python
[Python] Memo zur erneuten Verarbeitung (Exponential Backoff) in AWS Lambda
Machen Sie mit AWS Lambda und Python gewöhnliche Tweets flottenartig
Vergleiche "log and infininity" mit Gauche (0.9.4) und Python (3.5.1)
Unterschied zwischen Numpy- und Pandas-Methoden zur Ermittlung der Verteilung