我无法从AWS Fargate任务查询dynamodb表

时间:2019-05-27 12:45:44

标签: docker amazon-dynamodb amazon-iam aws-fargate

我正在设置一个新的AWS Fargate 任务来查询Dynamodb 。该任务不是公共的,因此它没有公共IP地址,并且放置该任务的子网无法访​​问Internet。我要查询的Dynamodb表使用KMS加密类型。

我创建了:

  • VPC终端网关,以允许子网连接到Amazon Dynamodb
  • VPC终结点接口,以允许子网连接到AWS Secret Manager。

我还更新了任务的IAM角色,以便能够访问Dynamodb和AWS Secret服务。

与我的VPC关联的路由表为:Route tables 不幸的是,我无法更新表格。如果我单击Edit routesAdd route,它会显示:“未找到结果”。

我正在尝试执行以下代码行:

session = boto3.Session()
dynamodb_client = session.client(service_name='dynamodb', region_name='us-east-1')
dynamodb_client.get_item(
    TableName='table_name', ConsistentRead=True, Key={'key': {'S': 'key'}}))

我希望输出是包含从Dynamodb获取的信息的字典。我无法从Dynamodb中获取任何类型的数据,因为执行查询时,任务已中断,AWS Fargate启动了一个新数据。 我尝试从S3存储桶中下载某些内容,并且可以正常工作(我还创建了VPC端点网关,以允许子网连接到AWS S3,并且更新了任务的IAM角色)。我认为这是VPC端点的问题,但我不知道我需要哪些其他端点。

我在做什么错了?

1 个答案:

答案 0 :(得分:0)

由于StackOverflow用户的评论,我找到了解决方案。我不知道为什么当我创建VPC端点网关以连接到Dynamodb时,AWS不会自动更新我的路由表。

这是VPC端点网关,因此您必须确保流向Dynamodb的流量重定向到创建的网关(使用VPC端点接口,您无需更新路由表,因为可用的子网)。

您的路由表应如下所示: enter image description here