我无法从 AWS Fargate 任务查询 dynamodb table
I can't query dynamodb table from AWS Fargate task
我正在设置一个新的 AWS Fargate 任务来查询 Dynamodb。该任务不是 public,因此它没有 public IP 地址,并且任务所在的子网无法访问 Internet。我正在尝试查询的 Dynamodb table 使用 KMS 加密类型。
我创建了:
- a VPC 端点网关 允许子网连接到 Amazon Dynamodb
- a VPC 端点接口 以允许子网连接到 AWS Secret Manager
我还更新了任务的 IAM 角色,以便能够访问 Dynamodb 和 AWS Secret 服务。
与我的 VPC 关联的路由 table 是:
不幸的是,我无法更新 table。如果我点击 Edit routes
和 Add route
,它会显示:"No results found".
我正在尝试执行这些代码行:
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 端点的问题,但我不知道我还需要哪些其他端点。
我做错了什么?
感谢 Whosebug 用户的评论,我找到了解决方案。我不知道为什么当我创建 VPC 端点网关连接到 Dynamodb 时,AWS 没有自动更新我的路由表。
它是一个 VPC 端点网关 所以你必须确保到 Dynamodb 的流量被重定向到创建的网关(使用 VPC 端点接口你不必更新路由表,因为您设置了可用的子网)。
你的路由表应该是这样的:
我正在设置一个新的 AWS Fargate 任务来查询 Dynamodb。该任务不是 public,因此它没有 public IP 地址,并且任务所在的子网无法访问 Internet。我正在尝试查询的 Dynamodb table 使用 KMS 加密类型。
我创建了:
- a VPC 端点网关 允许子网连接到 Amazon Dynamodb
- a VPC 端点接口 以允许子网连接到 AWS Secret Manager
我还更新了任务的 IAM 角色,以便能够访问 Dynamodb 和 AWS Secret 服务。
与我的 VPC 关联的路由 table 是:Edit routes
和 Add route
,它会显示:"No results found".
我正在尝试执行这些代码行:
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 端点的问题,但我不知道我还需要哪些其他端点。
我做错了什么?
感谢 Whosebug 用户的评论,我找到了解决方案。我不知道为什么当我创建 VPC 端点网关连接到 Dynamodb 时,AWS 没有自动更新我的路由表。
它是一个 VPC 端点网关 所以你必须确保到 Dynamodb 的流量被重定向到创建的网关(使用 VPC 端点接口你不必更新路由表,因为您设置了可用的子网)。
你的路由表应该是这样的: