Лямбда-функция для вызова базы данных - PullRequest
0 голосов
/ 23 февраля 2019

Я новичок в AWS / Lambda / Amazon Connect и пробую обойти это.У меня есть код ниже, чтобы запросить информацию из моей таблицы DynamoDB и обновить таблицу в случае новой записи.Моя проблема в том, что функция, кажется, запускает только часть кроме и полностью игнорирует попытку.Необходимо понять, почему

КОД

import boto3
import json
from boto3.dynamodb.conditions import Key, Attr

def lambda_handler(event, context):
    print("Lambda Trigger event: " + json.dumps(event))

    try:

        phoneNumber = event['Details']['ContactData']['CustomerEndpoint']['Address']
        print("Customer Phone Number : " + phoneNumber)

        dynamodb = boto3.resource('dynamodb',region_name='ap-southeast-2')

        table = dynamodb.Table('data_dip_table')

        response = table.get_item(Key={
                                'phone-number': phoneNumber
                                })
        print("dynamodb response: " + json.dumps(response))

        if 'Item' in response:
            # TODO: Match Found
            print("Phone number match found!")

            firstName = response['Item']['first-name']
            print("Customer First Name: " + firstName)

            welcomeMessage = 'Welcome' + firstName + ' to Our data dip'
            print("welcome message :" + welcomeMessage)

            return {'welcomeMessage' : welcomeMessage }

        else:
            print("Phone Number was not Found")

            return { 'welcomeMessage' : 'Welcome!' }

    except Exception as e:
        print("An Error Has Occurred")
        print(e)
        return {'welcomeMessage' : 'Welcome !'}

Мой вывод

Ответ: {"welcomeMessage": "Добро пожаловать!»}

Идентификатор запроса: "0d9b6bf6-62f8-4385-81f0-f1d36ee489c8"

Журналы функций: START RequestId: 0d9b6bf6-62f8-4385-81f0-f1d36ee489c8 Версия: событие триггера: $ LATEST{} Произошла ошибка 'Детали'. END RequestId: 0d9b6bf6-62f8-4385-81f0-f1d36ee489c8

У меня есть запись для моего номера телефона в таблице DD, но все еще появляется ошибка. Есть идеи ??

1 Ответ

0 голосов
/ 23 февраля 2019

Объект event пуст.Проверьте эту строку в CloudWatchLogs:

Lambda Trigger event: {}

Ваш код определенно не игнорирует блок try, однако, в первой строке вашего блока try у вас есть phoneNumber = event['Details']['ContactData']['CustomerEndpoint']['Address'], который автоматически завершается неудачей, потому что ваше событиепустой, поэтому перенаправляет выполнение в блок except.

Как эта функция запускается?Если вы делаете это вручную из консоли AWS, вам нужно будет создать тестовое событие, содержащее тело, ожидаемое вашим методом.

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