【发布时间】:2020-08-24 22:49:56
【问题描述】:
我正在开发一个我在 DynamoDB 中编写的 lambda 函数。一方面,我创建了一个层,其中包含具有 DynamoDB 功能的脚本:
class DynamoHandler():
def __init__(self):
self.resource = boto3.resource('dynamodb', region_name = 'eu-west-1')
self.__table = None
def set_table(self, table_name: str):
table = self.resource.Table(table_name)
table.table_arn
self.__table = table
def insert(self, item, **kwargs):
self.__check_table()
return self.__table.put_item(
Item=item,
**kwargs
)
在 lambda 中,我编写了以下代码:
from dynamo_class import DynamoHandler
db = DynamoHandler()
db.set_table(TABLE NAME)
db.insert(msg)
我得到了错误:
[错误] EndpointConnectionError:无法连接到端点 URL:“https://dynamodb.eu-west-1.amazonaws.com/”
你知道我该如何解决这个问题吗? 我已经搜索过类似的错误,但它们是在未指定区域时发生的,在我的 DynamoDB 类中,我分配了区域“eu-west-1”。
【问题讨论】:
-
您可以检查运行 lambda 的角色的 IAM 权限。
-
lambda 是否在 VPC 中?
-
@Jim 是的,lambda 被分配了在 DynamoDB 中读写的权限。
-
@Marcin 没错,lambda 在 VPC 中,谢谢!
标签: python amazon-web-services amazon-dynamodb boto3