Sdílet prostřednictvím


Kopírování dat z koncového bodu HTTP pomocí služby Azure Data Factory nebo 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.

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

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)
Aktivita Lookup (1) (2)

(1) Prostředí Azure Integration Runtime (2) Místní prostředí 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čtěte data pomocí jednoho z následujících ověřování: Anonymní, Základní, 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 je 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ě, virtuální sítě Azure nebo amazonového privátního cloudu, musíte nakonfigurovat místní prostředí Integration Runtime pro připojení k němu.

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 prostředí Azure Integration Runtime.

K přístupu k místní síti bez nutnosti instalace a konfigurace místního prostředí Integration Runtime můžete také použít funkci Runtime integrace spravované virtuální sítě ve službě Azure Data Factory.

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í aktivita Copy s kanálem 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í webu Azure Portal.

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

  2. Vyhledejte HTTP a vyberte konektor HTTP.

    Screenshot konektoru HTTP.

  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í účastníci
type 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. No
(výchozí hodnota je true)
authenticationType Určuje typ ověřování. Povolené hodnoty jsou Anonymní, Základní, Digest, Windows a ClientCertificate. Můžete také nakonfigurovat hlavičky ověřování ve authHeader vlastnosti. 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.
No
connectVia Prostředí Integration Runtime , které se má 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í prostředí Azure Integration Runtime. No

Použití základního ověřování, digestu nebo windows

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

Vlastnost Popis Povinní účastníci
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é odkazovat na tajný klíč uložený ve službě 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í ClientCertificate

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í účastníci
embeddedCertData Data certifikátu s kódováním Base64 Zadejte embeddedCertData nebo certThumbprint.
certThumbprint Kryptografický otisk certifikátu nainstalovaného v úložišti certifikátů místního prostředí Integration Runtime. Platí pouze v případech, kdy je ve vlastnosti connectVia zadaný typ místního prostředí Integration Runtime. Zadejte embeddedCertData nebo 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é odkazovat na tajný klíč uložený ve službě Azure Key Vault. No

Pokud pro ověřování používáte certThumbprint 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 prostředí Integration Runtime:

  1. Otevřete konzolu 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ě Zabezpečení přidejte uživatelský účet, pod kterým je spuštěná hostitelská služba prostředí 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ý svým držitelem nebo neintegrovaný certifikát vydaný certifikační autoritou, musí být certifikát nainstalovaný 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í v datové sadě založené na formátu jsou podporovány následující vlastnosti:location

Vlastnost Popis Povinní účastníci
type Vlastnost location typu v datové sadě musí být nastavena na HttpServerLocation. Ano
relativeUrl 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]. No

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í, které jsou k dispozici pro definování aktivit, najdete v tématu Kanály.

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.

V nastavení ve zdroji kopírování založeném na formátu se podporují následující vlastnosti:storeSettings

Vlastnost Popis Povinní účastníci
type Vlastnost typu v části storeSettings musí být nastavena na HttpReadSettings. Ano
requestMethod Metoda HTTP.
Povolené hodnoty jsou Get (výchozí) a Post.
No
additionalHeaders Další hlavičky požadavku HTTP No
requestBody Text požadavku HTTP. No
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. No
maxConcurrentConnections 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í. No

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í

Podrobnosti o vlastnostech najdete v aktivitě Vyhledávání.

Starší modely

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í účastníci
type Vlastnost typu datové sady musí být nastavena na HttpFile. Ano
relativeUrl 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. No
requestMethod Metoda HTTP. Povolené hodnoty jsou Get (výchozí) a Post. No
additionalHeaders Další hlavičky požadavku HTTP No
requestBody Text požadavku HTTP. No
format 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.
No
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ší.
No

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 zdroje starší verze aktivity kopírování

Vlastnost Popis Povinní účastníci
type Vlastnost typu zdroje aktivity kopírování musí být nastavena na HttpSource. Ano
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. No

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.