Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Tutoriel : Création d'une API REST ConnectionType et d'une connexion
Connexion à l'API REST Foo
Nous allons créer une AWS Glue API REST ConnectionType et une AWS Glue connexion correspondante pour l'API Foo REST. Cette API possède les propriétés suivantes (qui peuvent être extraites de la documentation de l'API REST).
-
URL de l'instance : https://foo.cloud.com/rest/ v1.
-
Type d'authentification : OAuth2 (informations d'identification du client).
-
Méthode REST : GET.
-
Type de pagination : Offset avec les propriétés « limit » et « offset » placées dans le paramètre de requête de la requête.
-
Entités prises en charge :
-
Barre : chemin relatif [/bar.json].
-
Base : chemin relatif [/baz.json].
-
Une fois tous les détails obtenus, nous pouvons commencer à créer la AWS Glue connexion à l'API Foo REST.
Pour créer une connexion à l'API REST :
-
Créez le type de connexion à l'API REST en AWS Glue appelant l' RegisterConnectionType API à l'aide de l' AWS API, de la CLI ou du SDK. Cela créera une nouvelle ConnectionType ressource dans AWS Glue.
{ "ConnectionType": "REST-FOO-CONNECTOR", "IntegrationType": "REST", "Description": "AWS Glue Connection Type for the FOO REST API", "ConnectionProperties": { "Url": { "Name": "Url", "Required": true, "DefaultValue": "https://foo.cloud.com/rest/v1", "PropertyType": "USER_INPUT" } }, "ConnectorAuthenticationConfiguration": { "AuthenticationTypes": ["OAUTH2"], "OAuth2Properties": { "OAuth2GrantType": "CLIENT_CREDENTIALS" } }, "RestConfiguration": { "GlobalSourceConfiguration": { "RequestMethod": "GET", "ResponseConfiguration": { "ResultPath": "$.result", "ErrorPath": "$.error.message" }, "PaginationConfiguration": { "OffsetConfiguration": { "OffsetParameter": { "Key": "offset", "PropertyLocation": "QUERY_PARAM" }, "LimitParameter": { "Key": "limit", "PropertyLocation": "QUERY_PARAM", "DefaultValue": "50" } } } }, "ValidationEndpointConfiguration": { "RequestMethod": "GET", "RequestPath": "/bar.json?offset=1&limit=10" }, "EntityConfigurations": { "bar": { "SourceConfiguration": { "RequestMethod": "GET", "RequestPath": "/bar.json", "ResponseConfiguration": { "ResultPath": "$.result", "ErrorPath": "$.error.message" } }, "Schema": { "name": { "Name": "name", "FieldDataType": "STRING" }, "description": { "Name": "description", "FieldDataType": "STRING" }, "id": { "Name": "id", "FieldDataType": "STRING" }, "status": { "Name": "status", "FieldDataType": "STRING" } } } } } } -
Dans AWS Secrets Manager, créez un secret. Le secret doit contenir le secret du consommateur de l'application connectée avec
USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRETcomme clé.Note
Vous devez créer un secret par connexion dans AWS Glue
-
Créez la AWS Glue connexion en appelant l' CreateConnection API à l'aide de l' AWS API, de la CLI ou du SDK.
-
Référencez le nom du type de connexion REST indiqué à l'étape 1 sous la forme « ConnectionType ».
-
Indiquez le InstanceUrl et tout autre ConnectionProperties élément défini au cours du processus AWS Glue ConnectionType d'enregistrement.
-
Choisissez parmi les types d'authentification configurés. L'API REST utilisée par Foo OAuth2 avec le type de ClientCredentials subvention.
-
Fournissez le SecretArnet les autres AuthenticationPropertiesqui sont configurés. Par exemple, nous avons configuré
OAUTH2comme suit : AuthenticationType nous allons définir les « OAuth2 Propriétés » dans le CreateConnectionInput. Cela nécessitera des propriétés telles que « OAuth2 GrantType », « TokenUrl » et « OAuth2 ClientApplication ».
-
-
Faites la CreateConnection demande qui créera la AWS Glue connexion.
{ "ConnectionInput": { "Name": "ConnectionFooREST", "ConnectionType": "REST-FOO-CONNECTOR", "ConnectionProperties": {}, "ValidateCredentials": true, "AuthenticationConfiguration": { "AuthenticationType": "OAUTH2", "SecretArn": "arn:aws:secretsmanager:<region>:<accountId>:secret:<secretId>", "OAuth2Properties": { "OAuth2GrantType": "CLIENT_CREDENTIALS", "TokenUrl": "https://foo.cloud.com/oauth/token", "OAuth2ClientApplication": { "UserManagedClientApplicationClientId": "your-managed-client-id" } } } } }