http_request-Funktion

Gilt für:Grünes Häkchen für „Ja“ Databricks SQL Grünes Häkchen für „Ja“ Databricks Runtime 16.2 und höher.

Führt eine HTTP-Anforderung mithilfe einer definierten HTTP-Verbindung aus.

Für diese Funktion ist ein benannter Parameteraufruf erforderlich.

Syntax

http_request( { CONN => connectionName |
                METHOD => httpMethod |
                PATH => path |
                HEADERS => headerMap |
                PARAMS => paramMap |
                JSON => jsonStr  } [, ..] )

Argumente

Ein Fehler wird ausgelöst, wenn ein Parameter mehrmals angegeben wird.

  • connectionName

    Eine STRING Konstante, die auf einen vorhandenen HTTP-Verbindungsbezeichner verweist. Dieses Argument ist erforderlich.

  • httpMethod

    Ein STRINGkonstanter Ausdruck , der die zu verwendende HTTP-Methode darstellt. Die folgenden Methoden werden unterstützt: 'GET', 'POST', 'PUT', 'DELETE', 'PATCH'. Dieses Argument ist erforderlich.

  • path

    Ein STRINGkonstanter Ausdruck , der an die base_path Verbindungs-URL angefügt wird. Der Pfad darf kein Verzeichnis-Traversal (../..) enthalten. Dieses Argument ist erforderlich.

  • headerMap

    Ein optionaler MAP<STRING, STRING>-Anforderungsheader. Der Standardwert lautet NULL.

  • paramMap

    MAP<STRING, STRING> Optional mit Anforderungsabfrageparametern im JSON-Format. Der Standardwert lautet NULL.

  • jsonStr

    Ein optionaler JSON-Zeichenfolgenausdruck mit dem Anforderungstext.

Rückkehr

Ein STRUCT<status_code INT, text STRING>, an dem

  • status_code ist der HTTP-Statuscode der Antwort vom externen Dienst. Beispiel: 200 oder 403.
  • text ist die Antwort, die vom externen Dienst zurückgegeben wird. In der Regel handelt es sich um eine JSON-Zeichenfolge.

Beispiele

-- Set up a connect to Slack.
> CREATE CONNECTION slack_conn
  TYPE HTTP
  OPTIONS (
    host 'https://slack.com',
    port '443',
    base_path '/api/',
    bearer_token 'xoxb-xxxxx'
  );

-- Request to the external service
> SELECT http_request(
    conn => 'slack_conn',
    method => 'POST',
    path => '/chat.postMessage',
    json => to_json(named_struct(
      'channel', channel,
      'text', text
    ))
    headers => map(
       'Accept', "application/vnd.github+json",
    )
  );

Einschränkungen

  • Die http_request Funktion ist eingeschränkt. Sie wurde für interaktive und agentbasierte Anwendungsfälle entwickelt, nicht für Batchabfragen mit hohem Volumen. Wenn Sie in einer einzelnen Abfrage über viele Zeilen hinweg ausgeführt http_request werden, werden Anforderungen möglicherweise gedrosselt und führen zu Fehlern. Um dies zu umgehen, verwenden Sie das Databricks SDK für Python, um Anforderungen in kleineren Batches mit Verzögerungen zwischen ihnen zu senden. Für neuen Code empfiehlt Databricks die Verwendung des Unity Catalog Connections-Proxy-Endpunkts mit dem SDK des Anbieters anstelle von http_request.