Чтение форм-данных с помощью AWS python lambda - PullRequest
0 голосов
/ 07 сентября 2018

Я хочу прочитать параметр "ключ" в запросе http post, но он не работает.

def my_handler(event, context):
    print(event)
    print(event['body'])
    print("key: " + event['key'])

    key = event['query']['key']

    encoded_string = str(key).encode("utf-8")
    # Create the file named for example "42.json" containing the appropriate data
    s3_path =  str(key) + '.json'
    s3 = boto3.resource("s3")
    s3.Bucket(BUCKET_NAME).put_object(Key=s3_path, Body=encoded_string)

    message = {
       'message': 'Created {}!'.format(key)  
    }
    return {
        'statusCode': 200,
        'headers': {'Content-Type': 'application/json'},
        'body': json.dumps(message)
    }

Обновление: если я использую приведенный ниже код, я могу читать данные JSON в посте http, но все равно не могу прочитать данные формы.

def my_handler(event, context):
    print(event)
    print(event['body'])
   # print("key: " + event['key'])
    print("key  " + json.loads(event['body'])["key"])

    key = json.loads(event['body'])["key"]

    encoded_string = str(key).encode("utf-8")
    # Create the file named for example "42.json" containing the appropriate data
    s3_path =  str(key) + '.json'
    s3 = boto3.resource("s3")
    s3.Bucket(BUCKET_NAME).put_object(Key=s3_path, Body=encoded_string)

    message = {
       'message': 'Created {}!'.format(key)  
    }
    return {
        'statusCode': 200,
        'headers': {'Content-Type': 'application/json'},
        'body': json.dumps(message)
    }

1 Ответ

0 голосов
/ 07 сентября 2018

enter image description here 1. Я предполагаю, что вы используете API-шлюз, тогда стоит использовать интеграцию Lambda-прокси, которая находится под вашими запросами на интеграцию на вашем API-шлюзе. Документы AWS

  1. Если вы используете эту настройку, вам не нужны никакие сопоставления.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...