簡體   English   中英

lambda python dynamodb write獲取超時錯誤

[英]lambda python dynamodb write gets timeout error

我一直在努力完成關於lambda dynamodb連接的第一個教程並遇到超時錯誤。

在lambda控制台中,我有以下代碼:

from __future__ import print_function
import json
import boto3

print('Loading function')

def lambda_handler(event, context):

    dynamodb = boto3.resource('dynamodb', region_name='us-east-1', endpoint_url="http://localhost:8000")
    print('Dynamodb loaded')
    pages_table = dynamodb.Table('Pages')
    print('Pages table referenced')

    for item in event:
        print('Item: {}'.format(item))
        response = pages_table.put_item( Item=item)
        print('Response: {}'.format(response))

    return "hi"

我通過dynamodb控制台創建了Pages表。

當我測試從lambda控制台運行lambda函數時,我得到:

START RequestId: 4008f77f-3b3e-11e7-ad79-0713f3bd7f4e Version: $LATEST
Dynamodb loaded
Pages table referenced
Item: {'UID': 1, 'id': 1, 'label': 'Original', 'snippet': 'Style', 'type': 'item', '$$hashKey': 'object:4'}
END RequestId: 4008f77f-3b3e-11e7-ad79-0713f3bd7f4e
REPORT RequestId: 4008f77f-3b3e-11e7-ad79-0713f3bd7f4e  Duration: 3002.30 ms    
Billed Duration: 3000 ms    Memory Size: 128 MB Max Memory Used: 36 MB  
2017-05-17T20:20:24.159Z 4008f77f-3b3e-11e7-ad79-0713f3bd7f4e Task timed out after 3.00 seconds

我的調試打印語句表明,第一個pages_table.put_item()是超時發生的地方,因為沒有后續的響應打印。 (我的Item數組中有一些元素用於測試)

當我檢查我的dynamodb表時,表中沒有數據,即使是幾天之后。

我認為我已經准確地遵循AWS文檔中的所有步驟來創建可通過lambda訪問的dynamodb(IAM權限,dynamodb表鍵等),但在搜索具有超時的類似體驗的其他實例時卻被困住了。 我能找到的最接近的東西引用了VPC配置,但是對於我來說這對我來說似乎沒有意義,因為教程沒有提到VPC設置。 此外,當我挖到VPC控制台時,那里的設置似乎是默認的。

我錯過了什么?

DynamoDB的端點URL似乎不正確:

endpoint_url="http://localhost:8000"

這僅用於DynamoDB的本地測試。 從Lambda函數來看,us-east-1的端點需要是:

endpoint_url="https://dynamodb.us-east-1.amazonaws.com"

根據AWS Regions和Endpoints文檔。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM