Почему моя AWS лямбда-функция возвращает значение null? (Python код) - PullRequest
0 голосов
/ 18 июня 2020

Я использую REST API для обновления моей таблицы DynamoDB каждый раз, когда обновляется моя веб-страница. Я хочу напечатать значение, которое было обновлено для отображения на моей веб-странице.

Первоначально у меня была одна функция Python в моей лямбда-функции. Я добавил вторую функцию, чтобы получить элемент из таблицы DynamoDB, когда я увидел null, когда я хотел проверить функцию. После добавления второй функции в журналах по-прежнему отображается значение null.

Таблица DynamoDB обновляется при каждом обновлении страницы. Журналы тестирования API показывают статус 200.

Ниже я опубликую свой код и журналы тестирования API.

    import boto3
dynamodb = boto3.client('dynamodb')
def lambda_handler(event, context, callback):
    response = dynamodb.update_item(
        TableName='ResumeCounter',
        Key={
            'Site': {
                'N': '0'
            }
        },
        UpdateExpression='SET Visits = Visits + :inc',
        ExpressionAttributeValues={
            ':inc': {'N': '1'}
        },
        ReturnValues="UPDATED_NEW"
    )

def lambda_get(event, context):
    res = dynamodb.get_item(
        TableName='ResumeCounter',
        Key={
            'Site': {
                'N': '0'
            }
        },
        ProjectionExpression='Visits',
    )
    print(res)

Thu Jun 18 01:55:44 UTC 2020 : Method response body after transformations: null
Thu Jun 18 01:55:44 UTC 2020 : Method response headers: {X-Amzn-Trace-Id=Root=[REDACTED];Sampled=0, Access-Control-Allow-Origin=*, Content-Type=application/json}
Thu Jun 18 01:55:44 UTC 2020 : Successfully completed execution
Thu Jun 18 01:55:44 UTC 2020 : Method completed with status: 200

1 Ответ

0 голосов
/ 18 июня 2020

Команда печати просто выводит это на консоль / журналы. Он не возвращает значения вызывающей службе (например, шлюзу API).

Чтобы вернуть что-то в шлюз API, верните ответ, используя return response или return json.dumps(response). Таким образом, вызывающее приложение увидит ответ вместо получения нулевого ответа.

...