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 ConnectionType et d'une connexion REST
Connexion à l'API Foo REST
Nous allons créer une AWS Glue API REST ConnectionType et une AWS Glue connexion correspondante pour l'API REST Foo. 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 : décalage 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 :
-
Bar : chemin relatif [/bar.json].
-
Baz : 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 l'application connectée Consumer Secret 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 de l'étape 1 sous la forme « ConnectionType ».
-
Fournissez les informations InstanceUrl et ConnectionProperties tout autre élément défini lors du processus AWS Glue ConnectionType d'inscription.
-
Choisissez parmi les types d'authentification configurés. L'API REST Foo utilise OAuth2 avec le ClientCredentials type de subvention.
-
Indiquez les SecretArn éléments et les autres AuthenticationProperties qui sont configurés. Parce que cet exemple utilise
OAUTH2comme AuthenticationType, définissez le « OAuth2Properties » dans le CreateConnectionInput. Cela nécessite des propriétés telles que "OAuth2GrantType«," TokenUrl » et "OAuth2ClientApplication».
-
-
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" } } } } }