Connecting External Services to LakeFormation
Overview
This section describes how to connect external services to LakeFormation by calling APIs.
If a tenant plan to perform this operation, the tenant should completed service authorization on the LakeFormation console. For details about how to call APIs, see API Calling.
Prerequisites
The following information has been obtained:
- endpoint: For details about how to obtain the endpoints, see Regions and Endpoints.
- project_id: Obtain the value by referring to Obtaining a Project ID.
Procedure
- Call the Creating an Instance API to create a LakeFormation instance and record the instance ID returned by the API.
Example request:
POST https://{endpoint}/v1/{project_id}/instances
Body:
{ "name": "lakeformation", "charge_mode": "postPaid", "shared": "false", "specs": [ { "spec_code": "lakeformation.unit.basic.qps", "stride_num": 1 } ], "enterprise_project_id": "0" }
Example response
{ "instance_id": "13677734-a4ee-43e2-9d11-30b8b2e32a95", "name": "lakeformation", "description": "", "enterprise_project_id": "0", "shared": false, "default_instance": false, "create_time": "2023-06-29T09:08:33.000+00:00", "update_time": "2023-06-29T09:08:34.000+00:00", "status": "RESOURCE_PREPARATION", "resource_progress": 25, "resource_expected_duration": 15, "in_recycle_bin": false, "tags": [], "specs": [ { "spec_code": "lakeformation.unit.basic.qps", "stride_num": 1 }, { "spec_code": "lakeformation.unit.basic.metadata", "stride_num": 0 } ] }
- Call the Querying Instance Details API to query the instance status. Wait until the instance status changes to RUNNING, indicating that the instance is created.
Example request:
GET https://{endpoint}/v1/{project_id}/instances/{instance_id}
instance_id indicates the value of instance_id in the response of the request made in 1.
Example response
{ "instance_id": "13677734-a4ee-43e2-9d11-30b8b2e32a95", "name": "lakeformation", "description": "", "enterprise_project_id": "0", "shared": false, "default_instance": false, "create_time": "2023-06-29T09:08:33.000+00:00", "update_time": "2023-06-29T09:08:34.000+00:00", "status": "RUNNING", "in_recycle_bin": false, "tags": [], "specs": [ { "spec_code": "lakeformation.unit.basic.qps", "stride_num": 1 }, { "spec_code": "lakeformation.unit.basic.metadata", "stride_num": 0 } ] }
- (Optional) If the current tenant creates a LakeFormation instance for the first time, the instance is automatically used as the default instance. The client can directly access the default instance or access the corresponding instance by specifying the instance ID. You can set a non-default instance as the default instance by calling the Seting an Default Instance API.
Example request:
POST https://{endpoint}/v1/{project_id}/instances/{instance_id}/default
instance_id indicates the value of instance_id in the response of the request made in 1.
- Call the Creating a Service Access Client API and select the VPC information corresponding to the client to create an access client. LakeFormation automatically creates a VPC endpoint and a DNS private domain name for the client to connect to the network.
Example request:
POST https://{endpoint}/v1/{project_id}/instances/{instance_id}/access-clients
instance_id indicates the value of instance_id in the response of the request made in 1.
Body:
{ "name": "access-client", "vpc_id": "131fb837-37ae-4aa6-9e87-312919df659f", "subnet_id": "2fa7ec47-c7f6-4a81-8e77-1dd41121b726" }
Example response
{ "id": "b73a9311-1ce9-48fe-b714-21bc41ce7b82", "name": "access-client", "access_mode": "SYSTEM", "status": "CREATING", "vpc_id": "131fb837-37ae-4aa6-9e87-312919df659f", "subnet_id": "2fa7ec47-c7f6-4a81-8e77-1dd41121b726" }
- Call the Obtaining Service Access Client Details API to query the status of the access client. Wait until the status changes to RUNNING, indicating that the access client is created. In addition, you can view details such as the access IP address and domain name in the details.
Example request:
GET https://{endpoint}/v1/{project_id}/instances/{instance_id}/access-clients/{client_id}
- instance_id indicates the value of instance_id in the response of the request made in 1.
- client_id indicates the value of id in the response of the request made in 4.
Example response
{ "id": "b73a9311-1ce9-48fe-b714-21bc41ce7b82", "name": "access-client", "access_mode": "SYSTEM", "status": "RUNNING", "vpc_id": "131fb837-37ae-4aa6-9e87-312919df659f", "subnet_id": "2fa7ec47-c7f6-4a81-8e77-1dd41121b726", "access_connections": [ { "vpcep_id": "f72c8034-df38-4dbc-bd5d-2f50531ba104", "ip": "10.0.0.6", "owner": "555d9e8999c94705be3d7edb70a3199a", "domain": "xxx.dalf-ed1c-b3070cba-baae-4220-b7ff-9b2bca043efb.apig-lakeformation.com" } ], "create_time": "2023-06-29T12:12:12.000+00:00" }
- Use the access IP address and instance ID obtained in the preceding step to access the metadata management API and obtain the catalog list. For details, see the APIs in Catalog Management.
Example request:
GET https://{endpoint}/v1/{project_id}/instances/{instance_id}/catalogs
- endpoint: Use {instance_id}.lakeformation.lakecat.com. If the instance has been set as the default instance, use default-{project_id}.lakeformation.lakecat.com.
- instance_id: value of instance_id in the response of the request made in 1. If the instance has been set as the default instance, use default as the instance ID.
Request header example
Host: lakeformation.lakecat.com
Example response
[ { "catalog_name": "hive", "description": "Default catalog, for Hive", "location": "obs://lakeformation-555d9e8999c94705-xxx/ed1ce787-1671-4ce4-b84f-6f40ccb26752" } ]
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot