Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ez a cikk bemutatja, hogyan lehet lekérni a megfelelő hitelesítési adatokat és URL-címet, hogy le tudja kérdezni az útvonaloptimalizált modellkiszolgálás vagy feature kiszolgáló végpontját.
Követelmények
- Útvonaloptimalizálással engedélyezett modellkiszolgáló végpont vagy jellemzőkiszolgáló végpont. Lásd : Útvonaloptimalizálás a végpontok kiszolgálására.
- Az útvonaloptimalizált végpontok lekérdezése csak OAuth-jogkivonatok használatát támogatja. A személyes hozzáférési jogkivonatok nem támogatottak.
Az útvonaloptimalizált URL-cím beolvasása
Figyelmeztetés
2025. szeptember 22-től az összes újonnan létrehozott útvonaloptimalizált végpontot kizárólag az útvonaloptimalizált URL-címen keresztül kell lekérdezni. Az ezen dátum után létrehozott végpontok nem támogatják a munkaterület URL-címén keresztüli lekérdezést.
Ha az útvonaloptimalizált végpont 2025. szeptember 22. előtt lett létrehozva:
A szabványos munkaterület URL-címe a végpont lekérdezésére is használható. A szabványos munkaterület URL-elérési útja nem biztosítja az útvonaloptimalizálás előnyeit.
https://<databricks-workspace>/serving-endpoints/<endpoint-name>/invocationsAz ezen dátum előtt létrehozott útvonaloptimalizált végpontok továbbra is támogatják a meghívások URL-címeit: az útvonaloptimalizált URL-címet és a szabványos munkaterület URL-elérési útját.
Útvonaloptimalizált végpont létrehozásakor a rendszer a következő útvonaloptimalizált URL-címet hozza létre a végponthoz.
https://<unique-id>.<shard>.serving.azuredatabricks.net/<workspace-id>/serving-endpoints/<endpoint-name>/invocations
Ezt az URL-címet az alábbiakból szerezheti be:
Felhasználói felület kiszolgálása
REST API
Használja az GET /api/2.0/serving-endpoints/{name} API-hívást. Az URL-cím a végpont válaszobjektumában a következőképpen endpoint_urljelenik meg: . Ez a mező csak akkor lesz feltöltve, ha a végpont útvonaloptimalizált.
GET /api/2.0/serving-endpoints/my-endpoint
{
"name": "my-endpoint"
}
Databricks SDK
Használja a Serving Endpoints API get hívást. Az URL-cím a végpont válaszobjektumában a következőképpen endpoint_urljelenik meg: . Ez a mező csak akkor lesz feltöltve, ha a végpont útvonaloptimalizált.
from databricks.sdk import WorkspaceClient
workspace = WorkspaceClient()
workspace.serving_endpoints.get("my-endpoint")
OAuth-jogkivonat lekérése és a végpont lekérdezése
Az útvonaloptimalizált végpont lekérdezéséhez OAuth-jogkivonatot kell használnia. A Databricks szolgáltatásnevek használatát javasolja az éles alkalmazásokban az OAuth-jogkivonatok programozott lekéréséhez. Az alábbi szakasz ismerteti az ajánlott útmutatást az OAuth token tesztelési és éles környezetekben való használatához.
OAuth-jogkivonat lekérése a kiszolgálói felhasználói felület használatával
Az alábbi lépések bemutatják, hogyan lehet jogkivonatot lekérni a kiszolgáló felhasználói felületén. Ezek a lépések a végpont fejlesztéséhez és teszteléséhez ajánlottak.
Éles használat esetén, például az útvonaloptimalizált végpont alkalmazáson belüli használata esetén a jogkivonat egy szolgáltatásnév használatával lesz lekérve. A gyakorlati felhasználási esetekhez szükséges OAuth-jogkivonat lekéréséhez javasolt útmutatásért tekintse meg a programozott módon történő OAuth-jogkivonat lekérését.
A munkaterület kiszolgálói felhasználói felületén:
- A Végpontok kiszolgálása lapon válassza ki az útvonaloptimalizált végpontot a végpont részleteinek megtekintéséhez.
- A végpont részletei lapon válassza a Használat gombot.
- Válassza a Jogkivonat lekérése lapot.
- Válassza az OAuth-jogkivonat beolvasása gombot. Ez a jogkivonat 1 órán át érvényes. Új jogkivonat lekérése, ha az aktuális jogkivonat lejár.
Az OAuth-jogkivonat lekérése után kérje le a végpontot a végpont URL-címével és az OAuth-jogkivonattal.
REST API
A következő egy REST API-példa:
URL="<endpoint-url>"
OAUTH_TOKEN="<token>"
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OAUTH_TOKEN" \
--data "@data.json" \
"$URL"
Python
A következő egy Python-példa:
import requests
import json
url = "<url>"
oauth_token = "<token>"
data = {
"dataframe_split": {
"columns": ["feature_1", "feature_2"],
"data": [
[0.12, 0.34],
[0.56, 0.78],
[0.90, 0.11]
]
}
}
headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {oauth_token}"
}
response = requests.post(url, headers=headers, json=data)
# Print the response
print("Status Code:", response.status_code)
print("Response Body:", response.text)
OAuth-jogkivonat programozott beolvasása
Éles forgatókönyvek esetén a Databricks azt javasolja, hogy állítsa be a szolgáltatási főazonosítókat az alkalmazásába, hogy programozottan lekérhesse az OAuth-jogkivonatokat. Ezek a lekért jogkivonatok az útvonaloptimalizált végpontok lekérdezésére szolgálnak.
Kövesse az Azure Databricks szolgáltatásnévhez való hozzáférésének engedélyezése az OAuthtal a 2. lépésben a szolgáltatásnév létrehozásához, az engedélyek hozzárendeléséhez és egy OAuth-titkos kód létrehozásához a szolgáltatásnévhez. A szolgáltatásnév létrehozása után legalább lekérdezési engedélyt kell adnia a szolgáltatásnévnek a végponton. Lásd: Engedélyek kezelése egy végpontot kiszolgáló modellen.
A Databricks Python SDK egy API-t biztosít egy útvonaloptimalizált végpont közvetlen lekérdezéséhez.
Megjegyzés:
A Databricks SDK a Go-ban is elérhető, lásd: Databricks SDK for Go.
A következő példához az alábbiakra van szükség egy útvonaloptimalizált végpont lekérdezéséhez a Databricks SDK használatával:
- Kiszolgálóvégpont neve (az SDK a név alapján lekéri a megfelelő végpont URL-címét)
- Szolgáltatásfő kliensazonosítója
- Szolgáltatásnév titkos kódja
- Munkaterület állomásneve
from databricks.sdk import WorkspaceClient
import databricks.sdk.core as client
endpoint_name = "<Serving-Endpoint-Name>" ## Insert the endpoint name here
# Initialize Databricks SDK
c = client.Config(
host="<Workspace-Host>", ## For example, my-workspace.cloud.databricks.com
client_id="<Client-Id>", ## Service principal ID
client_secret="<Secret>" ## Service principal secret
)
w = WorkspaceClient(
config = c
)
response = w.serving_endpoints_data_plane.query(endpoint_name, dataframe_records = ....)
OAuth-jogkivonat manuális lekérése
Olyan esetekben, amikor a Databricks SDK vagy a kiszolgáló felhasználói felület nem használható az OAuth-jogkivonat lekérésére, manuálisan is lekérhet egy OAuth-jogkivonatot. Az ebben a szakaszban található útmutatás elsősorban azokra a forgatókönyvekre vonatkozik, amelyekben a felhasználók olyan testreszabott ügyfélrel rendelkeznek, amelyet a végpont éles környezetben való lekérdezéséhez szeretnének használni.
Ha manuálisan kér le egy OAuth-jogkivonatot, meg kell adnia authorization_details a kérésben.
- A
<token-endpoint-URL>-t úgy hozhatja létre, hogy ahttps://<databricks-instance>-t a Databricks üzembe helyezési munkaterületének URL-címére cseréli ahttps://<databricks-instance>/oidc/v1/token-ben. Például:https://my-workspace.0.azuredatabricks.net/oidc/v1/token
- Cserélje le
<client-id>a szolgáltatásnév objektumának ügyfélazonosítójával, amely alkalmazásazonosítóként is ismert. - Cserélje le a(z)
<client-secret>a szolgáltatásfelelős által létrehozott OAuth titkos kódjára.
- Cserélje le
<endpoint-id>az útvonaloptimalizált végpont végpontazonosítójára. Ez annak a végpontnak az alfa-numerikus azonosítója, amelyet ahostNamevégpont URL-címében talál. Például, ha a kiszolgáló végpontja ahttps://abcdefg.0.serving.azuredatabricks.net/9999999/serving-endpoints/test, akkor a végpont azonosítója aabcdefg.
- Cserélje le
<action>a szolgáltatásnévnek adott műveleti engedélyre. A művelet lehet vagyquery_inference_endpointmanage_inference_endpoint.
REST API
A következő egy REST API-példa:
export CLIENT_ID=<client-id>
export CLIENT_SECRET=<client-secret>
export ENDPOINT_ID=<endpoint-id>
export ACTION=<action> # for example, 'query_inference_endpoint'
curl --request POST \
--url <token-endpoint-URL> \
--user "$CLIENT_ID:$CLIENT_SECRET" \
--data 'grant_type=client_credentials&scope=all-apis'
--data-urlencode 'authorization_details=[{"type":"workspace_permission","object_type":"serving-endpoints","object_path":"'"/serving-endpoints/$ENDPOINT_ID"'","actions": ["'"$ACTION"'"]}]'
Python
A következő egy Python-példa:
import os
import requests
# Set your environment variables or replace them directly here
CLIENT_ID = os.getenv("CLIENT_ID")
CLIENT_SECRET = os.getenv("CLIENT_SECRET")
ENDPOINT_ID = os.getenv("ENDPOINT_ID")
ACTION = "query_inference_endpoint" # Can also be `manage_inference_endpoint`
# Token endpoint URL
TOKEN_URL = "<token-endpoint-URL>"
# Build the payload, note the creation of authorization_details
payload = { 'grant_type': 'client_credentials', 'scope': 'all-apis', 'authorization_details': f'''[{{"type":"workspace_permission","object_type":"serving-endpoints","object_path":"/serving-endpoints/{ENDPOINT_ID}","actions":["{ACTION}"]}}]''' }
# Make the POST request with basic auth
response = requests.post( TOKEN_URL, auth=(CLIENT_ID, CLIENT_SECRET), data=payload )
# Check the response
if response.ok:
token_response = response.json()
access_token = token_response.get("access_token")
if access_token:
print(f"Access Token: {access_token}")
else:
print("access_token not found in response.")
else: print(f"Failed to fetch token: {response.status_code} {response.text}")
Az OAuth-jogkivonat lekérése után kérje le a végpontot a végpont URL-címével és az OAuth-jogkivonattal.
REST API
A következő egy REST API-példa:
URL="<endpoint-url>"
OAUTH_TOKEN="<token>"
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OAUTH_TOKEN" \
--data "@data.json" \
"$URL"
Python
A következő egy Python-példa:
import requests
import json
url = "<url>"
oauth_token = "<token>"
data = {
"dataframe_split": {
"columns": ["feature_1", "feature_2"],
"data": [
[0.12, 0.34],
[0.56, 0.78],
[0.90, 0.11]
]
}
}
headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {oauth_token}"
}
response = requests.post(url, headers=headers, json=data)
# Print the response
print("Status Code:", response.status_code)
print("Response Body:", response.text)