Webová aktivita ve službě Azure Data Factory a Azure Synapse Analytics

PLATÍ PRO: Azure Data Factory Azure Synapse Analytics

Tip

Vyzkoušejte si službu Data Factory v Microsoft Fabric, řešení pro analýzy typu all-in-one pro podniky. Microsoft Fabric zahrnuje všechno od přesunu dat až po datové vědy, analýzy v reálném čase, business intelligence a vytváření sestav. Přečtěte si, jak začít používat novou zkušební verzi zdarma.

Webová aktivita se dá použít k volání vlastního koncového bodu REST z kanálu Azure Data Factory nebo Synapse. Můžete předávat datové sady a propojené služby, které má aktivita používat a ke kterým má mít přístup.

Poznámka:

Webová aktivita se podporuje pro volání adres URL hostovaných v privátní virtuální síti a také adres URL hostovaných s využitím místního prostředí Integration Runtime. Modul runtime integrace by měl být v dohledu koncového bodu adresy URL.

Poznámka:

Maximální podporovaná velikost datové části výstupní odpovědi je 4 MB.

Vytvoření webové aktivity pomocí uživatelského rozhraní

Pokud chcete použít webovou aktivitu v kanálu, proveďte následující kroky:

  1. Vyhledejte web v podokně Aktivity kanálu a přetáhněte webovou aktivitu na plátno kanálu.

  2. Vyberte novou webovou aktivitu na plátně, pokud ještě není vybraná, a její Nastavení kartu pro úpravu podrobností.

    Shows the UI for a Web activity.

  3. Zadejte adresu URL, což může být řetězec adresy URL literálu nebo libovolná kombinace dynamických výrazů, funkcí, systémových proměnných nebo výstupů z jiných aktivit. Zadejte další podrobnosti, které se mají odeslat s žádostí.

  4. Výstup z aktivity použijte jako vstup do jakékoli jiné aktivity a odkazujte na výstup kdekoli, kde je v cílové aktivitě podporovaný dynamický obsah.

Syntaxe

{
   "name":"MyWebActivity",
   "type":"WebActivity",
   "typeProperties":{
      "method":"Post",
      "url":"<URLEndpoint>",
      "httpRequestTimeout": "00:01:00"
      "connectVia": {
          "referenceName": "<integrationRuntimeName>",
          "type": "IntegrationRuntimeReference"
      }
      "headers":{
         "Content-Type":"application/json"
      },
      "authentication":{
         "type":"ClientCertificate",
         "pfx":"****",
         "password":"****"
      },
      "datasets":[
         {
            "referenceName":"<ConsumedDatasetName>",
            "type":"DatasetReference",
            "parameters":{
               ...
            }
         }
      ],
      "linkedServices":[
         {
            "referenceName":"<ConsumedLinkedServiceName>",
            "type":"LinkedServiceReference"
         }
      ]
   }
}

Vlastnosti typu

Vlastnost Popis Povolené hodnoty Požaduje se
name Název webové aktivity String Ano
type Musí být nastavená na WebActivity. String Ano
metoda Metoda rozhraní REST API pro cílový koncový bod Řetězec.

Podporované typy: "GET", "POST", "PUT", "PATCH", "DELETE"
Ano
url Cílový koncový bod a cesta Řetězec (nebo výraz s typem výsledku řetězce). Pokud aktivita neobdrží odpověď z koncového bodu do 1 minuty, vyprší její časový limit s chybou. Tuto dobu odezvy můžete zvýšit až o 10 minut aktualizací vlastnosti httpRequestTimeout. Ano
httpRequestTimeout Doba trvání časového limitu odpovědi hh:mm:ss s maximální hodnotou 00:10:00. Pokud není explicitně zadán výchozí hodnota 00:01:00 No
záhlaví Hlavičky, které se odešlou do požadavku. Chcete-li například nastavit jazyk a zadat v požadavku: "headers" : { "Accept-Language": "en-us", "Content-Type": "application/json" }. Řetězec (nebo výraz s typem výsledku řetězce) No
text Představuje datovou část, která se odešle do koncového bodu. Řetězec (nebo výraz s typem výsledku řetězce).

Viz schéma datové části požadavku v části Schéma datové části požadavku.
Vyžaduje se pro metody POST/PUT/PATCH. Volitelné pro metodu DELETE.
ověřování Metoda ověřování používaná pro volání koncového bodu Podporované typy jsou "Základní klientský certifikát, spravovaná identita přiřazená systémem, spravovaná identita přiřazená uživatelem, instanční objekt.". Další informace najdete v části Ověřování . Pokud ověřování není povinné, vylučte tuto vlastnost. Řetězec (nebo výraz s typem výsledku řetězce) No
turnOffAsync Možnost zakázat vyvolání http GET v poli umístění v hlavičce odpovědi odpovědi http 202 Response. Pokud je nastavena hodnota true, zastaví vyvolání HTTP GET v umístění HTTP zadaném v hlavičce odpovědi. Pokud nastavíte hodnotu false, bude pokračovat v vyvolání volání HTTP GET v umístění zadaném v hlavičce odpovědi HTTP. Povolené hodnoty jsou false (výchozí) a true. No
disableCertValidation Odebere ověření certifikátu na straně serveru (nedoporučuje se, pokud se nepřipojíte k důvěryhodnému serveru, který nepoužívá standardní certifikát certifikační autority). Povolené hodnoty jsou false (výchozí) a true. No
Power BI Seznam datových sad předaných koncovému bodu Pole odkazů na datovou sadu Může to být prázdné pole. Ano
linkedServices Seznam propojených služeb předaných koncovému bodu Pole odkazů na propojenou službu Může to být prázdné pole. Ano
connectVia Prostředí Integration Runtime , které se má použít pro připojení k úložišti dat. Můžete použít prostředí Azure Integration Runtime nebo místní prostředí Integration Runtime (pokud je vaše úložiště dat v privátní síti). Pokud tato vlastnost není zadaná, služba používá výchozí prostředí Azure Integration Runtime. Referenční informace k prostředí Integration Runtime. No

Poznámka:

Koncové body REST volané webovou aktivitou musí vracet odpověď typu JSON. Pokud aktivita neobdrží odpověď z koncového bodu do 1 minuty, vyprší její časový limit s chybou. U koncových bodů, které podporují vzor asynchronní žádosti a odpovědi, bude webová aktivita dál čekat bez vypršení časového limitu (až 7 dnů) nebo až do ukončení úlohy koncové body.

Následující tabulka uvádí požadavky na obsah JSON:

Typ hodnoty Text požadavku Text odpovědi
Objekt JSON Podporováno Podporováno
Pole JSON Podporovány
(V současné době pole JSON nefungují v důsledku chyby. Probíhá oprava.)
Nepodporované
Hodnota JSON Podporováno Nepodporované
Typ jiného typu než JSON Nepodporované Nepodporované

Ověřování

Níže jsou uvedené podporované typy ověřování ve webové aktivitě.

Nic

Pokud ověřování není povinné, nezahrnujte vlastnost "authentication".

Basic

Zadejte uživatelské jméno a heslo, které se má použít se základním ověřováním.

"authentication":{
   "type":"Basic",
   "username":"****",
   "password":"****"
}

Klientský certifikát

Zadejte obsah souboru PFX s kódováním base64 a heslo.

"authentication":{
   "type":"ClientCertificate",
   "pfx":"****",
   "password":"****"
}

Certifikát musí být certifikát x509. K převodu na soubor PFX můžete použít svůj oblíbený nástroj. Pro kódování base-64 můžete použít následující fragment kódu PowerShellu.

$fileContentBytes = get-content 'enr.dev.webactivity.pfx' -AsByteStream

[System.Convert]::ToBase64String($fileContentBytes) | Out-File ‘pfx-encoded-bytes.txt’

Spravovaná identita

Zadejte identifikátor URI prostředku, pro který se bude vyžadovat přístupový token pomocí spravované identity pro instanci datové továrny nebo instance pracovního prostoru Synapse. Pokud chcete volat rozhraní API služby Azure Resource Management, použijte https://management.azure.com/. Další informace o tom, jak spravované identity fungují, najdete na stránce přehledu spravovaných identit pro prostředky Azure.

"authentication": {
	"type": "MSI",
	"resource": "https://management.azure.com/"
}

Poznámka:

Pokud je vaše datová továrna nebo pracovní prostor Synapse nakonfigurovaný s úložištěm Git, musíte přihlašovací údaje uložit ve službě Azure Key Vault, abyste mohli používat základní nebo klientské ověřování certifikátů. Služba neukládá hesla v Gitu.

Schéma datové části požadavku

Když použijete metodu POST/PUT, vlastnost body představuje datovou část, která je odeslána do koncového bodu. Propojené služby a datové sady můžete předat jako součást datové části. Toto je schéma datové části:

{
    "body": {
        "myMessage": "Sample",
        "datasets": [{
            "name": "MyDataset1",
            "properties": {
                ...
            }
        }],
        "linkedServices": [{
            "name": "MyStorageLinkedService1",
            "properties": {
                ...
            }
        }]
    }
}

Příklad

V tomto příkladu webová aktivita v kanálu volá koncový bod REST. Předává propojenou službu Azure SQL a datovou sadu Azure SQL do koncového bodu. Koncový bod REST používá azure SQL připojovací řetězec pro připojení k logickému SQL serveru a vrátí název instance SQL serveru.

Definice kanálu

{
    "name": "<MyWebActivityPipeline>",
    "properties": {
        "activities": [
            {
                "name": "<MyWebActivity>",
                "type": "WebActivity",
                "typeProperties": {
                    "method": "Post",
                    "url": "@pipeline().parameters.url",
                    "headers": {
                        "Content-Type": "application/json"
                    },
                    "authentication": {
                        "type": "ClientCertificate",
                        "pfx": "*****",
                        "password": "*****"
                    },
                    "datasets": [
                        {
                            "referenceName": "MySQLDataset",
                            "type": "DatasetReference",
                            "parameters": {
                                "SqlTableName": "@pipeline().parameters.sqlTableName"
                            }
                        }
                    ],
                    "linkedServices": [
                        {
                            "referenceName": "SqlLinkedService",
                            "type": "LinkedServiceReference"
                        }
                    ]
                }
            }
        ],
        "parameters": {
            "sqlTableName": {
                "type": "String"
            },
            "url": {
                "type": "String"
            }
        }
    }
}

Hodnoty parametrů kanálu

{
    "sqlTableName": "department",
    "url": "https://adftes.azurewebsites.net/api/execute/running"
}

Kód koncového bodu webové služby


[HttpPost]
public HttpResponseMessage Execute(JObject payload)
{
    Trace.TraceInformation("Start Execute");

    JObject result = new JObject();
    result.Add("status", "complete");

    JArray datasets = payload.GetValue("datasets") as JArray;
    result.Add("sinktable", datasets[0]["properties"]["typeProperties"]["tableName"].ToString());

    JArray linkedServices = payload.GetValue("linkedServices") as JArray;
    string connString = linkedServices[0]["properties"]["typeProperties"]["connectionString"].ToString();

    System.Data.SqlClient.SqlConnection sqlConn = new System.Data.SqlClient.SqlConnection(connString);

    result.Add("sinkServer", sqlConn.DataSource);

    Trace.TraceInformation("Stop Execute");

    return this.Request.CreateResponse(HttpStatusCode.OK, result);
}

Projděte si další podporované aktivity toku řízení: