Estoy configurando una nueva tarea de AWS Fargate para consultar Dynamodb . La tarea no es pública, por lo que no tiene una dirección IP pública y la subred en la que se ubica la tarea no tiene acceso a Internet. La tabla de Dynamodb que intento consultar utiliza el tipo de cifrado KMS.
Yo creé:
También actualicé el rol de IAM de la tarea para poder acceder a los servicios Dynamodb y AWS Secret.
Las tablas de rutas asociadas con mi VPC son: y desafortunadamente, no puedo actualizar la tabla. Si hago clic en Edit routes
y Add route
, dice: "No se encontraron resultados".
Estoy tratando de ejecutar estas líneas de código:
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'}}))
Espero que el resultado sea un diccionario que contenga la información obtenida de Dynamodb. No puedo obtener ningún tipo de datos de Dynamodb porque cuando ejecuto la consulta, la tarea se interrumpe y AWS Fargate inicia una nueva . Intenté descargar algo de mi depósito S3 y funciona (también creé la puerta de enlace del punto final de la VPC para permitir que la subred se conecte a AWS S3 y actualicé el rol de IAM de la tarea). Creo que es un problema de los puntos finales de la VPC, pero no sé qué otros puntos finales necesito.
¿Qué estoy haciendo mal?
Encontré la solución gracias al comentario de un usuario de StackOverflow. No sé por qué, cuando creé VPC Endpoint Gateway para conectarme a Dynamodb, AWS no actualizó automáticamente mis tablas de rutas.
Es una puerta de enlace de punto final de VPC , por lo que debe asegurarse de que el tráfico a Dynamodb se redirija a la puerta de enlace creada (con una interfaz de punto final de VPC no tiene que actualizar las tablas de rutas porque establece las subredes en las que está disponible).