Kopírování dat z koncového bodu HTTP pomocí Azure Data Factory nebo Azure Synapse Analytics

VZTAHUJE SE NA: Azure Data Factory Azure Synapse Analytics

Tip

Data Factory v Microsoft Fabric je nová generace Azure Data Factory s jednodušší architekturou, integrovanou AI a novými funkcemi. Pokud s integrací dat začínáte, začněte Fabric Data Factory. Stávající úlohy ADF lze upgradovat na Fabric pro přístup k novým funkcím v oblastech datové vědy, analýz v reálném čase a vytváření sestav.

Tento článek popisuje, jak pomocí aktivity kopírování v Azure Data Factory a Azure Synapse kopírovat data z koncového bodu HTTP. Článek vychází z Copy Activity, která představuje obecný přehled Copy Activity.

Poznámka:

Tento konektor je také k dispozici ve službě Data Factory v Microsoft Fabric. Informace o konfiguraci a funkcích specifických pro Fabric najdete v dokumentaci ke konektoru Fabric HTTP.

Rozdíl mezi tímto konektorem HTTP, konektorem REST a konektorem webové tabulky jsou:

  • Konektor REST konkrétně podporuje kopírování dat z rozhraní RESTful API;
  • Konektor HTTP je obecný k načtení dat z libovolného koncového bodu HTTP, například ke stažení souboru. Než bude konektor REST dostupný, může se stát, že pomocí konektoru HTTP zkopírujete data z rozhraní RESTful API, což je podporované, ale méně funkční porovnání s konektorem REST.
  • Konektor webové tabulky extrahuje obsah tabulky z webové stránky HTML.

Podporované funkce

Tento konektor HTTP je podporovaný pro následující funkce:

Podporované funkce IR
aktivita Copy (zdroj/-) (1) (2)
Vyhledávací aktivita (1) (2)

(1) Azure Integration Runtime (2) Lokálně hostované Integration Runtime

Seznam úložišť dat podporovaných jako zdroje nebo jímky najdete v tématu Podporované úložiště dat.

Tento konektor HTTP můžete použít k:

  • Načtěte data z koncového bodu HTTP/S pomocí metod HTTP GET nebo POST .
  • Načtení dat pomocí jednoho z následujících ověřování: Anonymous, Basic, Digest, Windows nebo ClientCertificate.
  • Zkopírujte odpověď HTTP tak, jak je, nebo ji parsujte pomocí podporovaných formátů souborů a komprese kodeků.

Tip

Pokud chcete otestovat požadavek HTTP na načtení dat před konfigurací konektoru HTTP, přečtěte si o specifikaci rozhraní API pro požadavky na hlavičku a tělo. K ověření můžete použít nástroje, jako jsou Visual Studio, Invoke-RestMethod PowerShellu nebo webový prohlížeč.

Požadavky

Pokud se vaše úložiště dat nachází uvnitř místní sítě, Azure virtuální sítě, nebo Amazon Virtual Private Cloud, musíte pro připojení nakonfigurovat self-hosted Integration Runtime.

Pokud je vaše úložiště dat spravovanou cloudovou datovou službou, můžete použít Azure Integration Runtime. Pokud je přístup omezený na IP adresy schválené v pravidlech brány firewall, můžete do seznamu povolených přidat ip adresy Azure Integration Runtime.

Funkci managed virtual network Integration Runtime můžete také použít v Azure Data Factory pro přístup k místní síti bez nutnosti instalace a konfigurace místního prostředí Integration Runtime.

Další informace o mechanismech zabezpečení sítě a možnostech podporovaných službou Data Factory najdete v tématu Strategie přístupu k datům.

Začínáme

K provedení aktivity kopírování pomocí datového kanálu můžete použít jeden z následujících nástrojů nebo sad SDK:

Vytvoření propojené služby ke zdroji HTTP pomocí uživatelského rozhraní

Pomocí následujícího postupu vytvořte propojenou službu ke zdroji HTTP v uživatelském rozhraní portálu Azure.

  1. Přejděte na kartu Spravovat v pracovním prostoru Azure Data Factory nebo Synapse a vyberte Propojené služby a potom klikněte na Nový:

  2. Vyhledejte HTTP a vyberte konektor HTTP.

    Snímek obrazovky HTTP konektoru.

  3. Nakonfigurujte podrobnosti o službě, otestujte připojení a vytvořte novou propojenou službu.

    Snímek obrazovky s konfigurací propojené služby HTTP

Podrobnosti konfigurace konektoru

Následující části obsahují podrobnosti o vlastnostech, které můžete použít k definování entit specifických pro konektor HTTP.

Vlastnosti propojené služby

Propojená služba HTTP podporuje následující vlastnosti:

Vlastnost Popis Povinné
typ Vlastnost typu musí být nastavena na HttpServer. Ano
url Základní adresa URL webového serveru. Ano
enableServerCertificateValidation Určete, jestli se má při připojení ke koncovému bodu HTTP povolit ověření certifikátu TLS/SSL serveru. Pokud váš server HTTPS používá certifikát podepsaný svým držitelem, nastavte tuto vlastnost na false. Ne
(výchozí hodnota je true)
typ autentizace Určuje typ ověřování. Povolené hodnoty jsou Anonymous, Basic, Digest, Windows a ClientCertificate. Můžete také nakonfigurovat hlavičky ověřování v rámci vlastnosti authHeader. Další vlastnosti a ukázky JSON pro tyto typy ověřování najdete v částech, které následují v této tabulce. Ano
authHeaders Další hlavičky požadavku HTTP pro ověřování.
Pokud například chcete použít ověřování pomocí klíče rozhraní API, můžete vybrat typ ověřování jako Anonymní a zadat klíč rozhraní API v hlavičce.
Ne
connectVia Integration Runtime použít pro připojení k úložišti dat. Další informace najdete v části Požadavky . Pokud není zadaný, použije se výchozí Azure Integration Runtime. Ne

Použití základního, digestu nebo Windows authentication

Nastavte vlastnost authenticationType na Basic, Digest nebo Windows. Kromě obecných vlastností popsaných v předchozí části zadejte následující vlastnosti:

Vlastnost Popis Povinné
userName Uživatelské jméno, které se má použít pro přístup ke koncovému bodu HTTP. Ano
heslo Heslo pro uživatele ( hodnota userName ). Označte toto pole jako typ SecureString , abyste ho bezpečně uložili. Můžete také odložit tajný kód uložený v Azure Key Vault. Ano

Příklad

{
    "name": "HttpLinkedService",
    "properties": {
        "type": "HttpServer",
        "typeProperties": {
            "authenticationType": "Basic",
            "url" : "<HTTP endpoint>",
            "userName": "<user name>",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Použití ověřování klientského certifikátu

Chcete-li použít ověřování ClientCertificate, nastavte vlastnost authenticationType na ClientCertificate. Kromě obecných vlastností popsaných v předchozí části zadejte následující vlastnosti:

Vlastnost Popis Povinné
embeddedCertData Data certifikátu s kódováním Base64 Zadejte identifikátor embeddedCertData nebo identifikátor certThumbprint.
certThumbprint Kryptografický otisk certifikátu nainstalovaného v úložišti certifikátů místního počítače Integration Runtime. Platí pouze v případech, kdy je ve vlastnosti connectVia zadaný typ Integration Runtime. Zadejte identifikátor embeddedCertData nebo identifikátor certThumbprint.
heslo Heslo přidružené k certifikátu. Označte toto pole jako typ SecureString , abyste ho bezpečně uložili. Můžete také odložit tajný kód uložený v Azure Key Vault. Ne

Pokud používáte certThumbprint k ověřování a certifikát je nainstalovaný v osobním úložišti místního počítače, udělte oprávnění ke čtení místnímu Integration Runtime:

  1. Otevřete konzola Microsoft Management Console (MMC). Přidejte modul snap-in Certifikáty, který cílí na místní počítač.
  2. Rozbalte položku Certifikáty>Osobní a pak vyberte Certifikáty.
  3. Klikněte pravým tlačítkem myši na certifikát z osobního úložiště a pak vyberte Všechny úkoly>spravovat privátní klíče.
  4. Na kartě Security přidejte uživatelský účet, pod kterým je spuštěná hostitelská služba Integration Runtime (DIAHostService) s přístupem pro čtení k certifikátu.
  5. Konektor HTTP načte pouze důvěryhodné certifikáty. Pokud používáte certifikát podepsaný vlastní rukou nebo neintegrovaný certifikát vydaný certifikační autoritou, pro umožnění důvěry musí být certifikát nainstalován také v jednom z následujících úložišť:
    • Důvěryhodné osoby
    • Kořenové certifikační autority třetích stran
    • důvěryhodné kořenové certifikační autority

Příklad 1: Použití nástroje certThumbprint

{
    "name": "HttpLinkedService",
    "properties": {
        "type": "HttpServer",
        "typeProperties": {
            "authenticationType": "ClientCertificate",
            "url": "<HTTP endpoint>",
            "certThumbprint": "<thumbprint of certificate>"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Příklad 2: Použití embeddedCertData

{
    "name": "HttpLinkedService",
    "properties": {
        "type": "HttpServer",
        "typeProperties": {
            "authenticationType": "ClientCertificate",
            "url": "<HTTP endpoint>",
            "embeddedCertData": "<Base64-encoded cert data>",
            "password": {
                "type": "SecureString",
                "value": "password of cert"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Použití ověřovacích hlaviček

Kromě toho můžete nakonfigurovat hlavičky požadavků pro ověřování spolu s integrovanými typy ověřování.

Příklad: Použití ověřování pomocí klíče rozhraní API

{
    "name": "HttpLinkedService",
    "properties": {
        "type": "HttpServer",
        "typeProperties": {
            "url": "<HTTP endpoint>",
            "authenticationType": "Anonymous",
            "authHeader": {
                "x-api-key": {
                    "type": "SecureString",
                    "value": "<API key>"
                }
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Vlastnosti datové sady

Úplný seznam oddílů a vlastností dostupných pro definování datových sad najdete v článku Datové sady .

Azure Data Factory podporuje následující formáty souborů. Informace o nastaveních založených na formátu najdete v jednotlivých článcích.

V nastavení location pod HTTP v datové sadě založené na formátu datové sady jsou podporovány následující vlastnosti.

Vlastnost Popis Povinné
typ Vlastnost location typu v datové sadě musí být nastavena na HttpServerLocation. Ano
relativní URL Relativní adresa URL prostředku, který obsahuje data. Konektor HTTP kopíruje data z kombinované adresy URL: [URL specified in linked service][relative URL specified in dataset]. Ne

Poznámka:

Podporovaná velikost datové části požadavku HTTP je přibližně 500 kB. Pokud je velikost datové části, kterou chcete předat do webového koncového bodu, větší než 500 kB, zvažte dávkování datové části v menších blocích dat.

Příklad:

{
    "name": "DelimitedTextDataset",
    "properties": {
        "type": "DelimitedText",
        "linkedServiceName": {
            "referenceName": "<HTTP linked service name>",
            "type": "LinkedServiceReference"
        },
        "schema": [ < physical schema, optional, auto retrieved during authoring > ],
        "typeProperties": {
            "location": {
                "type": "HttpServerLocation",
                "relativeUrl": "<relative url>"
            },
            "columnDelimiter": ",",
            "quoteChar": "\"",
            "firstRowAsHeader": true,
            "compressionCodec": "gzip"
        }
    }
}

Vlastnosti aktivity kopírování

Tato část obsahuje seznam vlastností, které zdroj HTTP podporuje.

Úplný seznam oddílů a vlastností dostupných pro definování aktivit najdete v tématu Pipelines.

HTTP jako zdroj

Azure Data Factory podporuje následující formáty souborů. Informace o nastaveních založených na formátu najdete v jednotlivých článcích.

Následující vlastnosti jsou podporovány pro HTTP v nastavení pod storeSettings ve zdroji kopírování založeném na formátu:

Vlastnost Popis Povinné
typ Vlastnost typu v části storeSettings musí být nastavena na HttpReadSettings. Ano
requestMethod Metoda HTTP.
Povolené hodnoty jsou Get (výchozí) a Post.
Ne
dalšíZáhlaví Další hlavičky požadavku HTTP Ne
requestBody Text požadavku HTTP. Ne
Doba čekání na httpRequestTimeout Časový limit ( hodnota TimeSpan ) požadavku HTTP pro získání odpovědi. Tato hodnota je časový limit pro získání odpovědi, nikoli časový limit pro čtení dat odpovědi. Výchozí hodnota je 00:01:40. Ne
maximální počet současných připojení Horní limit souběžných připojení vytvořených k úložišti dat během spuštění aktivity. Zadejte hodnotu pouze v případech, kdy chcete omezit souběžná připojení. Ne

Příklad:

"activities":[
    {
        "name": "CopyFromHTTP",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Delimited text input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "DelimitedTextSource",
                "formatSettings":{
                    "type": "DelimitedTextReadSettings",
                    "skipLineCount": 10
                },
                "storeSettings":{
                    "type": "HttpReadSettings",
                    "requestMethod": "Post",
                    "additionalHeaders": "<header key: header value>\n<header key: header value>\n",
                    "requestBody": "<body for POST HTTP request>"
                }
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Vlastnosti aktivity vyhledávání

Zjistit podrobnosti o vlastnostech můžete v aktivitě Vyhledávání.

Modely z předchozí generace

Poznámka:

Následující modely jsou stále podporovány, protože je to kvůli zpětné kompatibilitě. Doporučujeme použít nový model uvedený v předchozích částech a uživatelské rozhraní pro vytváření obsahu se přepnulo na generování nového modelu.

Starší model datové sady

Vlastnost Popis Povinné
typ Vlastnost typu datové sady musí být nastavena na HttpFile. Ano
relativní URL Relativní adresa URL prostředku, který obsahuje data. Pokud tato vlastnost není zadána, použije se pouze adresa URL zadaná v definici propojené služby. Ne
requestMethod Metoda HTTP. Povolené hodnoty jsou Get (výchozí) a Post. Ne
dalšíZáhlaví Další hlavičky požadavku HTTP Ne
requestBody Text požadavku HTTP. Ne
formát Pokud chcete načíst data z koncového bodu HTTP bez analýzy a pak je zkopírovat do úložiště založeného na souborech, přeskočte oddíl formátu v definicích vstupní i výstupní datové sady.

Pokud chcete během kopírování parsovat obsah odpovědi HTTP, podporují se následující typy formátů souborů: TextFormat, JsonFormat, AvroFormat, OrcFormat a ParquetFormat. Ve formátu nastavte vlastnost typu na jednu z těchto hodnot. Další informace najdete ve formátu JSON, formátu textu, formátu Avro, formátu Orc a formátu Parquet.
Ne
komprese Zadejte typ a úroveň komprese dat. Další informace naleznete v tématu Podporované formáty souborů a komprimační kodeky.

Podporované typy: GZip, Deflate, BZip2 a ZipDeflate.
Podporované úrovně: Optimální a nejrychlejší.
Ne

Poznámka:

Podporovaná velikost datové části požadavku HTTP je přibližně 500 kB. Pokud je velikost datové části, kterou chcete předat do webového koncového bodu, větší než 500 kB, zvažte dávkování datové části v menších blocích dat.

Příklad 1: Použití metody Get (výchozí)

{
    "name": "HttpSourceDataInput",
    "properties": {
        "type": "HttpFile",
        "linkedServiceName": {
            "referenceName": "<HTTP linked service name>",
            "type": "LinkedServiceReference"
        },
        "typeProperties": {
            "relativeUrl": "<relative url>",
            "additionalHeaders": "Connection: keep-alive\nUser-Agent: Mozilla/5.0\n"
        }
    }
}

Příklad 2: Použití metody Post

{
    "name": "HttpSourceDataInput",
    "properties": {
        "type": "HttpFile",
        "linkedServiceName": {
            "referenceName": "<HTTP linked service name>",
            "type": "LinkedServiceReference"
        },
        "typeProperties": {
            "relativeUrl": "<relative url>",
            "requestMethod": "Post",
            "requestBody": "<body for POST HTTP request>"
        }
    }
}

Model starší verze zdroje aktivity kopírování

Vlastnost Popis Povinné
typ Vlastnost typu zdroje aktivity kopírování musí být nastavena na HttpSource. Ano
Doba čekání na httpRequestTimeout Časový limit ( hodnota TimeSpan ) požadavku HTTP pro získání odpovědi. Tato hodnota je časový limit pro získání odpovědi, nikoli časový limit pro čtení dat odpovědi. Výchozí hodnota je 00:01:40. Ne

Příklad

"activities":[
    {
        "name": "CopyFromHTTP",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<HTTP input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "HttpSource",
                "httpRequestTimeout": "00:01:00"
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Seznam úložišť dat, která aktivita kopírování podporuje jako zdroje a jímky, najdete v tématu Podporované úložiště a formáty dat.