Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Las fuentes de datos son recursos de tu AWS cuenta con los que GraphQL APIs puede interactuar. AWS AppSync admite múltiples fuentes de datos AWS Lambda, como Amazon DynamoDB, bases de datos relacionales (Amazon Aurora Serverless), OpenSearch Amazon Service y puntos de enlace HTTP. Se puede configurar una AWS AppSync API para interactuar con varias fuentes de datos, lo que le permite agregar datos en una sola ubicación. AWS AppSync puede utilizar AWS los recursos existentes de su cuenta o aprovisionar tablas de DynamoDB en su nombre a partir de una definición de esquema.
La sección siguiente muestra cómo asociar un origen de datos a la API de GraphQL.
Tipos de orígenes de datos
Ahora que ha creado un esquema en la AWS AppSync consola, puede adjuntarle una fuente de datos. Al crear una API por primera vez, existe la opción de aprovisionar una tabla de Amazon DynamoDB durante la creación del esquema predefinido. Sin embargo, en esta sección no hablaremos de esa opción. Puede ver un ejemplo de esto en la sección Lanzamiento de un esquema.
En su lugar, analizaremos todas las fuentes de datos AWS AppSync compatibles. Para elegir la solución adecuada para su aplicación se tienen en cuenta numerosos factores. Las siguientes secciones proporcionarán más contexto para cada origen de datos. Para obtener información general sobre los orígenes de datos, consulte Orígenes de datos.
Amazon DynamoDB
Amazon DynamoDB es una de las principales soluciones AWS de almacenamiento para aplicaciones escalables. El componente principal de DynamoDB es la tabla, que es simplemente una recopilación de datos. Por lo general, las tablas se crean a partir de entidades como Book
o Author
. La información de las entradas de la tabla se almacena como elementos, que son grupos de campos únicos para cada entrada. Un elemento completo representa una fila o un registro de la base de datos. Por ejemplo, un elemento de una entrada de Book
puede incluir title
y author
junto con sus valores. Cada uno de los campos, como el de title
y el de author
, se denominan atributos, que son similares a los valores de las columnas en las bases de datos relacionales.
Como puede adivinar, las tablas se utilizarán para almacenar los datos de su aplicación. AWS AppSync le permite conectar las tablas de DynamoDB a la API de GraphQL para manipular los datos. Tomemos este caso de uso
AWS Lambda
Lambda es un servicio basado en eventos que crea automáticamente los recursos necesarios para ejecutar código como respuesta a un evento. Lambda utiliza funciones, es decir, instrucciones de grupo que contienen el código, las dependencias y las configuraciones para ejecutar un recurso. Las funciones se ejecutan automáticamente cuando detectan un disparador, es decir, un grupo de actividades que invocan la función. Un desencadenante puede ser cualquier cosa, como una aplicación que realiza una llamada a la API, un AWS servicio de tu cuenta que activa un recurso, etc. Cuando se activen, las funciones procesarán eventos, que son documentos JSON que contienen los datos que se van a modificar.
Lambda es ideal para ejecutar código sin tener que aprovisionar los recursos para ejecutarlo. Tomemos este caso de usogetPostsByAuthor ( author: String ! ) : [ Post ]
o getPost ( id: String ! ) : Post
), utilizan las funciones de Lambda para procesar las solicitudes entrantes. En la opción 2: AWS AppSync con el solucionador Lambda, utilizan el AWS AppSync servicio para mantener su esquema y vincular una fuente de datos Lambda a una de las operaciones. Cuando se llama a la operación, Lambda interactúa con el Amazon RDS proxy para ejecutar la lógica empresarial en la base de datos.
Amazon RDS
Amazon RDS permite crear y configurar rápidamente bases de datos relacionales. En Amazon RDS, creará una instancia de base de datos genérica que servirá como entorno de base de datos aislado en la nube. En esta instancia, utilizará un motor de base de datos, que es de hecho el software de RDBMS (PostgreSQL, MySQL, etc.). El servicio reduce gran parte del trabajo de back-end, ya que proporciona escalabilidad mediante la AWS«infraestructura» y los servicios de seguridad, como la aplicación de parches y el cifrado, y reduce los costes administrativos de las implementaciones.
Tomemos el mismo caso de uso
Amazon EventBridge
En EventBridge, crearás buses de eventos, que son canalizaciones que reciben eventos de los servicios o aplicaciones que adjuntas (la fuente de eventos) y los procesarán en función de un conjunto de reglas. Un evento es un cambio de estado de un entorno de ejecución, mientras que una regla es un conjunto de filtros para eventos. Una regla sigue un patrón de eventos o los metadatos del cambio de estado de un evento (ID, región, número de cuenta, ARN, etc.). Cuando un evento coincide con el patrón de eventos, EventBridge lo enviará a través de la canalización hasta el servicio de destino (objetivo) y activará la acción especificada en la regla.
EventBridge es adecuado para enrutar las operaciones que cambian de estado a algún otro servicio. Tomemos este caso de uso
Orígenes de datos none
Si no tiene pensado utilizar un origen de datos, puede configurarlo como none
. Un origen de datos none
, aunque se siga considerando explícitamente un origen de datos, no es un medio de almacenamiento. Por lo general, un solucionador invocará uno o más orígenes de datos en algún momento para procesar la solicitud. Sin embargo, hay situaciones en las que tal vez no sea necesario manipular un origen de datos. Si se configura el origen de datos en none
, se ejecutará la solicitud, se omitirá el paso de invocación de datos y, a continuación, se ejecutará la respuesta.
Tomemos el mismo caso de usonone
, que actúa como un valor de transferencia sin invocar el origen de datos. A continuación, se rellena el esquema con los datos, que se envían a los suscriptores.
OpenSearch
Amazon OpenSearch Service es un conjunto de herramientas para implementar la búsqueda de texto completo, la visualización de datos y el registro. Puede utilizar este servicio para consultar los datos estructurados que ha cargado.
En este servicio, crearás instancias de OpenSearch. Estos se denominan nodos. En un nodo, agregará al menos un índice. Conceptualmente, los índices se parece un poco a las tablas de bases de datos relacionales. (Sin embargo, OpenSearch no es compatible con ACID, por lo que no debe usarse de esa manera). Rellenarás tu índice con los datos que subas al OpenSearch servicio. Cuando se carguen los datos, se indexarán en una o más particiones que existan en el índice. Una partición es como una subdivisión del índice que contiene algunos de sus datos y se puede consultar por separado de otras particiones. Una vez cargados, los datos se estructurarán como archivos JSON denominados documentos. A continuación, puede consultar los datos del documento en el nodo.
Puntos de conexión HTTP
Puedes usar puntos de enlace HTTP como fuentes de datos. AWS AppSync puede enviar solicitudes a los puntos finales con la información relevante, como los parámetros y la carga útil. La respuesta HTTP estará expuesta al solucionador, que devolverá la respuesta final cuando finalice sus operaciones.
Adición de un origen de datos
Si ha creado una fuente de datos, puede vincularla al AWS AppSync servicio y, más específicamente, a la API.
-
Inicie sesión en la AppSyncconsola AWS Management Console y ábrala
. -
En el panel, elija su API.
-
En la barra lateral, seleccione Origen de datos.
-
-
Elija Crear origen de datos.
-
Asigne un nombre al origen de datos. También puede asignarle una descripción, pero eso es opcional.
-
Elija el tipo de origen de datos.
-
Para DynamoDB, elija su región y, a continuación, la tabla dentro de la región. Para dictar las reglas de interacción con su tabla, elija crear un nuevo rol de tabla genérico o importe un rol existente para la tabla. Puede habilitar el control de versiones, que permite crear automáticamente versiones de los datos para cada solicitud cuando hay varios clientes intentando actualizar los datos al mismo tiempo. El control de versiones se utiliza para conservar y mantener múltiples variantes de datos con el fin de detectar y resolver conflictos. También puede habilitar la generación automática de esquemas, que toma el origen de datos y genera algunas de las operaciones CRUD,
List
yQuery
necesarias para acceder a ella en el esquema.Para OpenSearch ello, tendrás que elegir tu región y, a continuación, el dominio (clúster) de la región. Para dictar las reglas de interacción con su dominio, elija crear un nuevo rol de tabla genérico o importe un rol existente para la tabla.
Para Lambda, elija su región y, a continuación, el ARN de la función de Lambda de la región. Para dictar las reglas de interacción con su función de Lambda, elija crear un nuevo rol de tabla genérico o importe un rol existente para la tabla.
Para HTTP, introduzca su punto de conexión HTTP.
Para EventBridge ello, tendrás que elegir tu región y, a continuación, el autobús del evento en la región. Para dictar las reglas de interacción con su bus de eventos, elija crear un nuevo rol de tabla genérico o importe un rol existente para la tabla.
Para RDS, elija su región y, a continuación, el almacén secreto (nombre de usuario y contraseña), el nombre de la base de datos y el esquema.
Para none, añada un origen de datos sin un origen de datos real. Esto sirve para gestionar los solucionadores de forma local y no a través de un origen de datos real.
nota
Si importa roles existentes, estos necesitan una política de confianza. Para obtener más información, consulte la política de confianza de IAM.
-
-
Seleccione Crear.
nota
Como alternativa, si va a crear un origen de datos de DynamoDB, puede ir a la página Esquema de la consola, elegir Crear recursos en la parte superior de la página y, a continuación, rellenar un modelo predefinido para convertirlo en una tabla. En esta opción, rellenará o importará el tipo base, configurará los datos básicos de la tabla, incluida la clave de partición, y revisará los cambios del esquema.
Política de confianza de IAM
Si utiliza una función de IAM existente para su fuente de datos, debe conceder a esa función los permisos adecuados para realizar operaciones en el AWS recurso, por ejemplo, PutItem
en una tabla de Amazon DynamoDB. También debe modificar la política de confianza de ese rol para poder usarlo para el acceso AWS AppSync a los recursos, como se muestra en el siguiente ejemplo de política:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "appsync.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
También puede añadir condiciones a su política de confianza para limitar el acceso al origen de datos según lo desee. Actualmente, las claves SourceArn
y SourceAccount
se pueden utilizar en estas condiciones. Por ejemplo, la política siguiente limita el acceso a su origen de datos a la cuenta 123456789012
:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "appsync.amazonaws.com"
},
"Action": "sts:AssumeRole",
"Condition": {
"StringEquals": {
"aws:SourceAccount": "123456789012"
}
}
}
]
}
Como alternativa, puede limitar el acceso a un origen de datos a una API específica, por ejemplo abcdefghijklmnopq
, mediante la política siguiente:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "appsync.amazonaws.com"
},
"Action": "sts:AssumeRole",
"Condition": {
"ArnEquals": {
"aws:SourceArn": "arn:aws:appsync:us-west-2:123456789012:apis/abcdefghijklmnopq"
}
}
}
]
}
Puedes limitar el acceso a todos los AWS AppSync APIs usuarios de una región específica, por ejemplous-east-1
, mediante la siguiente política:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "appsync.amazonaws.com"
},
"Action": "sts:AssumeRole",
"Condition": {
"ArnEquals": {
"aws:SourceArn": "arn:aws:appsync:us-east-1:123456789012:apis/*"
}
}
}
]
}
En la sección siguiente (Configuración de los solucionadores), añadiremos nuestra lógica empresarial de solucionador y la asociaremos a los campos de nuestro esquema para procesar los datos de nuestro origen de datos.
Para obtener más información sobre la configuración de la política de roles, consulte Modificación de un rol en la Guía del usuario de IAM.
Para obtener más información sobre el acceso de los AWS Lambda solucionadores entre cuentas AWS AppSync, consulte Crear dispositivos de resolución multicuenta AWS Lambda