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.
Su utilidad de introspección de AWS AppSync puede descubrir modelos a partir de tablas de bases de datos y proponer tipos de GraphQL. El asistente de creación de API de la AWS AppSync consola puede generar instantáneamente una API a partir de una base de datos Aurora MySQL o PostgreSQL. Crea automáticamente tipos y JavaScript resolutores para leer y escribir datos.
AWS AppSync proporciona una integración directa con las bases de datos de Amazon Aurora a través de la API de datos de Amazon RDS. En lugar de requerir una conexión de base de datos persistente, la API de datos de Amazon RDS ofrece un punto de enlace HTTP seguro al que AWS AppSync se conecta para ejecutarse SQL declaraciones. Puede utilizarlo para crear una API de base de datos relacional para sus cargas de trabajo de MySQL y PostgreSQL en Aurora.
Crear una API para su base de datos relacional AWS AppSync tiene varias ventajas:
-
Su base de datos no está expuesta directamente a los clientes, lo que desacopla el punto de acceso de la propia base de datos.
-
Puede crear aplicaciones diseñadas específicamente para APIs adaptarse a las necesidades de las diferentes aplicaciones, lo que elimina la necesidad de una lógica empresarial personalizada en las interfaces de usuario. Esto se alinea con el patrón Backend-For-Frontend (BFF).
-
La autorización y el control de acceso se pueden implementar en la AWS AppSync capa utilizando varios modos de autorización para controlar el acceso. No se requieren recursos informáticos adicionales para conectarse a la base de datos, como alojar un servidor web o establecer conexiones mediante proxy.
-
Las capacidades en tiempo real se pueden añadir mediante suscripciones, y las mutaciones de datos AppSync se envían automáticamente a los clientes conectados.
-
Los clientes pueden conectarse a la API a través de HTTPS mediante puertos comunes, como el 443.
AWS AppSync facilita la creación APIs a partir de bases de datos relacionales existentes. Su utilidad de introspección puede descubrir modelos a partir de tablas de bases de datos y proponer tipos de GraphQL. El asistente Creación de API de la consola de AWS AppSync puede generar una API al instante a partir de una base de datos Aurora MySQL o PostgreSQL. Crea automáticamente tipos y JavaScript resolutores para leer y escribir datos.
AWS AppSync proporciona JavaScript utilidades integradas para simplificar la escritura de sentencias SQL en los resolutores. Puede utilizar las plantillas AWS AppSync de sql
etiquetas para sentencias estáticas con valores dinámicos o las utilidades del rds
módulo para crear sentencias mediante programación. Para obtener más información, consulte los orígenes de datos Referencia a la función de solucionador para RDS y los módulos integrados.
Uso de la característica de introspección (consola)
Para ver un tutorial detallado y una guía de introducción, consulte Tutorial: Aurora PostgreSQL sin servidor con API de datos.
La AWS AppSync consola le permite crear una API AWS AppSync GraphQL a partir de su base de datos Aurora existente configurada con la API de datos en solo unos minutos. Esto genera rápidamente un esquema operativo basado en la configuración de la base de datos. Puede usar la API tal cual o desarrollarla para añadir características.
-
Inicie sesión en la AppSyncconsola AWS Management Console
y ábrala. -
En el Panel, elija Crear API.
-
-
En Opciones de API, selecciona GraphQL APIs, Comience con un clúster de Amazon Aurora y, a continuación, Siguiente.
-
Escriba un Nombre de API. Se utilizará como identificador de la API en la consola.
-
Para obtener los detalles de contacto, puede introducir un punto de contacto para identificar al administrador de la API. Se trata de un campo opcional.
-
En Configuración de API privada, puede habilitar las características de API privadas. Solo se puede acceder a una API privada desde un punto de conexión de VPC (VPCE) configurado. Para obtener más información, consulte Privado APIs.
No le recomendamos habilitar esta característica para este ejemplo. Seleccione Siguiente después de revisar sus entradas.
-
-
En la página Base de datos, elija Seleccionar base de datos.
-
Es necesario elegir la base de datos de su clúster. El primer paso es elegir la región en la que se encuentra el clúster.
-
Elija el clúster de Aurora en la lista desplegable. Tenga en cuenta que debe haber creado y habilitado la API de datos correspondiente antes de utilizar el recurso.
-
A continuación, debe añadir las credenciales de la base de datos al servicio. Esto se hace principalmente usando AWS Secrets Manager. Elija la región en la que se encuentra su secreto. Para obtener más información sobre cómo recuperar información del secreto, consulte Buscar secretos o Recuperar secretos.
-
Añada su secreto en la lista desplegable. Tenga en cuenta que el usuario debe tener permisos de lectura para su base de datos.
-
-
Seleccione Importar.
AWS AppSync empezará a inspeccionar su base de datos, descubriendo tablas, columnas, claves principales e índices. Comprueba que las tablas descubiertas se pueden admitir en una API de GraphQL. Tenga en cuenta que para permitir la creación de nuevas filas, las tablas necesitan una clave principal, que puede utilizar varias columnas. AWS AppSync asigna las columnas de la tabla a los campos de texto de la siguiente manera:
Tipo de datos: Tipo de campo VARCHAR Cadena CHAR Cadena BINARIO Cadena VARBINARY Cadena TINYBLOB Cadena TINYTEXT Cadena TEXT Cadena BLOB Cadena MEDIUMTEXT Cadena MEDIUMBLOB Cadena LONGTEXT Cadena LONGBLOB Cadena BOOL Booleano BOOLEAN Booleano BIT Int TINYINT Int SMALLINT Int MEDIUMINT Int INT Int INTEGER Int BIGINT Int YEAR Int FLOAT Flotante DOUBLE Flotante DECIMAL Flotante DEC Flotante NUMERIC Flotante DATE AWSDate TIMESTAMP Cadena DATETIME Cadena TIME AWSTime JSON AWSJson ENUM ENUM -
Una vez que se haya completado la detección de tablas, la sección Base de datos se rellenará con su información. En la nueva sección Tablas de base de datos, es posible que los datos de la tabla ya estén rellenados y convertidos a un tipo para su esquema. Si no ve algunos de los datos necesarios, puede comprobarlos. Para ello, seleccione Añadir tablas, haga clic en las casillas de verificación de esos tipos en el modal que aparece y, a continuación, seleccione Añadir.
Para eliminar un tipo de la sección Tablas de bases de datos, haga clic en la casilla de verificación situada junto al tipo que desea eliminar y, a continuación, seleccione Eliminar. Los tipos eliminados se colocarán en el modal Añadir tablas si desea volver a añadirlos más adelante.
Tenga en cuenta que AWS AppSync utiliza los nombres de las tablas como nombres de tipos, pero puede cambiarles el nombre, por ejemplo, cambiando un nombre de tabla plural por el nombre
Movie
del tipo.movies
Para cambiar el nombre de un tipo en la sección Tablas de bases de datos, haga clic en la casilla de verificación del tipo al que desee cambiar el nombre y, a continuación, haga clic en el icono del lápiz en la columna Nombre del tipo.Para obtener una vista previa del contenido del esquema en función de sus selecciones, elija Vista previa del esquema. Tenga en cuenta que este esquema no puede estar vacío, por lo que tendrá al menos una tabla convertida en un tipo. Además, este esquema no puede tener un tamaño superior a 1 MB.
-
En Rol de servicio, elija si desea crear un nuevo rol de servicio específicamente para esta importación o utilizar un rol existente.
-
-
Elija Next (Siguiente).
-
A continuación, elija si desea crear una API de solo lectura (solo consultas) o una API para leer y escribir datos (con consultas y mutaciones). Esta última también admite suscripciones en tiempo real activadas por mutaciones.
-
Elija Next (Siguiente).
-
Revise sus opciones y, a continuación, seleccione Crear API. AWS AppSync creará la API y adjuntará los solucionadores a las consultas y mutaciones. La API generada es totalmente operativa y se puede ampliar según sea necesario.
Uso de la característica de introspección (API)
Puede usar la API de introspección StartDataSourceIntrospection
para descubrir modelos en su base de datos mediante programación. Para obtener más información sobre el comando, consulte el uso de la API StartDataSourceIntrospection
.
Para usarloStartDataSourceIntrospection
, proporcione el nombre de recurso de Amazon (ARN), el nombre de la base de datos y AWS Secrets Manager el ARN secreto del clúster Aurora. El comando inicia el proceso de introspección. Puede recuperar los resultados con el comando GetDataSourceIntrospection
. Puede especificar si el comando debe devolver la cadena de lenguaje de definición de almacenamiento (SDL) de los modelos descubiertos. Esto resulta útil para generar una definición de esquema de SDL directamente a partir de los modelos descubiertos.
Por ejemplo, si tiene la siguiente instrucción de lenguaje de definición de datos (DDL) para una tabla Todos
sencilla:
create table if not exists public.todos
(
id serial constraint todos_pk primary key,
description text,
due timestamp,
"createdAt" timestamp default now()
);
Comience la introspección con lo siguiente.
aws appsync start-data-source-introspection \ --rds-data-api-config resourceArn=<cluster-arn>,secretArn=<secret-arn>,databaseName=database
A continuación, utilice el comando GetDataSourceIntrospection
para recuperar el resultado.
aws appsync get-data-source-introspection \ --introspection-id a1234567-8910-abcd-efgh-identifier \ --include-models-sdl
Esto devuelve el resultado siguiente.
{
"introspectionId": "a1234567-8910-abcd-efgh-identifier",
"introspectionStatus": "SUCCESS",
"introspectionStatusDetail": null,
"introspectionResult": {
"models": [
{
"name": "todos",
"fields": [
{
"name": "description",
"type": {
"kind": "Scalar",
"name": "String",
"type": null,
"values": null
},
"length": 0
},
{
"name": "due",
"type": {
"kind": "Scalar",
"name": "AWSDateTime",
"type": null,
"values": null
},
"length": 0
},
{
"name": "id",
"type": {
"kind": "NonNull",
"name": null,
"type": {
"kind": "Scalar",
"name": "Int",
"type": null,
"values": null
},
"values": null
},
"length": 0
},
{
"name": "createdAt",
"type": {
"kind": "Scalar",
"name": "AWSDateTime",
"type": null,
"values": null
},
"length": 0
}
],
"primaryKey": {
"name": "PRIMARY_KEY",
"fields": [
"id"
]
},
"indexes": [],
"sdl": "type todos\n{\ndescription: String\n\ndue: AWSDateTime\n\nid: Int!\n\ncreatedAt: AW
SDateTime\n}\n"
}
],
"nextToken": null
}
}