Я не могу запросить таблицу DynamodB из задачи AWS Fargate - PullRequest
2 голосов
/ 27 мая 2019

Я устанавливаю новую задачу AWS Fargate для запроса Dynamodb .Задача не является общедоступной, поэтому у нее нет общедоступного IP-адреса, а подсеть, в которой находится задача, не имеет доступа к Интернету.Таблица Dynamodb, которую я пытаюсь запросить, использует тип шифрования KMS.

Я создал:

  • a Шлюз конечной точки VPC , позволяющий подсети подключаться к Amazon Dynamodb
  • a Интерфейс конечной точки VPC, чтобы разрешить подсети подключаться к AWS Secret Manager

Я также обновил роль IAM задачи , чтобы иметь доступ к сервисам Dynamodb и AWS Secret.

Таблицы маршрутов, связанные с моим VPC: Route tables и, к сожалению, я не могу обновить таблицу.Если я нажимаю Edit routes и Add 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 голосов
/ 28 мая 2019

Я нашел решение благодаря комментарию пользователя StackOverflow. Я не знаю, почему при создании шлюза конечной точки VPC для подключения к Dynamodb AWS не обновлял автоматически мои таблицы маршрутов.

Это шлюз конечной точки VPC , поэтому вы должны быть уверены, что трафик к Dynamodb перенаправляется на созданный шлюз (с интерфейсом конечной точки VPC вам не нужно обновлять таблицы маршрутизации, потому что вы устанавливаете подсети, в которых это доступно).

Ваши таблицы маршрутов должны быть такими: enter image description here

...