Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
ПРИМЕНИМО К:
Azure Data Factory
Azure Synapse Analytics
Совет
Data Factory в Microsoft Fabric — это следующее поколение Azure Data Factory с более простой архитектурой, встроенным ИИ и новыми функциями. Если вы не знакомы с интеграцией данных, начните с Fabric Data Factory. Существующие рабочие нагрузки ADF могут обновляться до Fabric для доступа к новым возможностям в области обработки и анализа данных, аналитики в режиме реального времени и отчетов.
В этой статье описывается, как использовать действие копирования в Azure Data Factory и Azure Synapse для копирования данных из конечной точки HTTP. Статья основывается на Copy Activity, в которой представлены общие сведения об этом процессе.
Далее приводятся различия между соединителем HTTP, соединителем REST и соединителем веб-таблиц.
- Соединитель REST предназначен для поддержки копирования данных из RESTful API.
- Соединитель HTTP применяется для извлечения данных из любой конечной точки HTTP, например для скачивания файла. Пока соединитель REST недоступен, для копирования данных из интерфейсов REST API можно использовать соединитель HTTP, который поддерживается, но является менее функциональным по сравнению с соединителем REST.
- Соединитель веб-таблиц извлекает содержимое таблицы со страницы HTML.
Поддерживаемые возможности
Соединитель HTTP поддерживается для перечисленных ниже возможностей.
| Поддерживаемые возможности | IR |
|---|---|
| Copy activity (источник/-) | (1) (2) |
| Операция поиска | (1) (2) |
(1) Azure среды выполнения интеграции (2) локальная среда выполнения интеграции
Список хранилищ данных, которые поддерживаются в качестве источников/приемников, см. в разделе Поддерживаемые хранилища данных.
Можно использовать этот HTTP-коннектор для следующих действий:
- Извлечение данных из конечной точки HTTP/S с помощью методов GET или POST HTTP.
- Получение данных с помощью одной из следующих аутентификаций: Anonymous, Basic, Digest, Windows или ClientCertificate.
- Копирование ответа HTTP "как есть" или его анализ с использованием поддерживаемых форматов файлов и сжатия кодеков.
Совет
Чтобы проверить HTTP-запрос для получения данных, прежде чем настраивать соединитель HTTP, ознакомьтесь со спецификацией API по требованиям к заголовку и тексту запроса. Для проверки можно использовать такие средства, как Visual Studio, Invoke-RestMethod PowerShell или веб-браузер.
Требования
Если хранилище данных находится в локальной сети, виртуальной сети Azure или Amazon Virtual Private Cloud, необходимо настроить самостоятельно размещаемую среду выполнения интеграции для подключения к нему.
Если хранилище данных является управляемой облачной службой данных, можно использовать Azure Integration Runtime. Если доступ ограничен ip-адресами, утвержденными в правилах брандмауэра, в список разрешений можно добавить ip-адреса Azure Integration Runtime/c0.
Вы также можете использовать функцию управляемой среды выполнения интеграции виртуальной сети в Azure Data Factory для доступа к локальной сети без установки и настройки локальной среды выполнения интеграции.
Дополнительные сведения о вариантах и механизмах обеспечения сетевой безопасности, поддерживаемых Фабрикой данных, см. в статье Стратегии получения доступа к данным.
Начало работы
Для выполнения действия копирования с конвейером можно использовать один из следующих средств или пакетов SDK:
- Средство копирования данных
- портал Azure
- SDK .NET
- пакет SDK Python
- Azure PowerShell
- REST API
- шаблон Azure Resource Manager
Создание связанной службы для источника HTTP с помощью пользовательского интерфейса
Выполните следующие действия, чтобы создать связанную службу к источнику HTTP в пользовательском интерфейсе портала Azure.
Перейдите на вкладку "Управление" в рабочей области Azure Data Factory или Synapse и выберите "Связанные службы", а затем нажмите кнопку "Создать".
Выполните поиск по запросу HTTP и выберите соединитель HTTP.
Настройте сведения о службе, проверьте подключение и создайте связанную службу.
Сведения о конфигурации соединителя
В разделах ниже приведены сведения о свойствах, которые используются для определения сущностей, относящихся к соединителю HTTP.
Свойства связанной службы
Для связанной службы HTTP поддерживаются следующие свойства:
| Свойство | Описание: | Обязательное поле |
|---|---|---|
| тип | Для свойства type необходимо задать значение HttpServer. | Да |
| URL-адрес | Базовый URL-адрес веб-сервера. | Да |
| enableServerCertificateValidation | Укажите, следует ли включать проверку TLS/SSL-сертификата на сервере при подключении к конечной точке HTTP. Если ваш сервер HTTPS использует самозаверенный сертификат, установите свойство false. | Нет (значение по умолчанию true) |
| тип аутентификации | Указывает тип проверки подлинности. Допустимые значения: Anonymous, Basic, Digest, Windows и ClientCertificate. Кроме того, можно настроить заголовки проверки подлинности в свойстве authHeader. С дополнительными свойствами и примерами JSON этих типов проверки подлинности ознакомьтесь в последующих разделах этой таблицы. |
Да |
| authHeaders | Дополнительные заголовки HTTP-запросов для проверки подлинности. Например, чтобы использовать проверку подлинности с помощью ключа API, можно выбрать тип проверки подлинности "Анонимный" и указать ключ API в заголовке. |
Нет |
| connectVia | Integration Runtime для подключения к хранилищу данных. Дополнительные сведения см. в разделе Предварительные условия. Если не указано, используется Azure Integration Runtime по умолчанию. | Нет |
Использование базовой, дайджест, или Windows аутентификации
Задайте для свойства
| Свойство | Описание: | Обязательное поле |
|---|---|---|
| userName | Имя пользователя для доступа к конечной точке HTTP. | Да |
| пароль | Пароль для пользователя (значение userName). Пометьте это поле как тип SecureString для безопасного хранения. Вы также можете сослаться на секрет, хранящийся в Azure Key Vault. | Да |
Пример
{
"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"
}
}
}
Использование аутентификации ClientCertificate
Чтобы использовать проверку подлинности ClientCertificate, установите свойство authenticationType для ClientCertificate. В дополнение к общим свойствам, описанных в предыдущих разделах, укажите следующие свойства:
| Свойство | Описание: | Обязательное поле |
|---|---|---|
| embeddedCertData | Данные сертификата, закодированные в Base64. | Укажите либо embeddedCertData или certThumbprint. |
| отпечаток сертификата | Отпечаток сертификата, установленного в хранилище сертификатов на вашей локальной машине с Integration Runtime. Применяется только при указании локального типа Integration Runtime в свойстве connectVia. | Укажите либо embeddedCertData или certThumbprint. |
| пароль | Пароль, связанный с сертификатом. Пометьте это поле как тип SecureString для безопасного хранения. Вы также можете сослаться на секрет, хранящийся в Azure Key Vault. | Нет |
Если для проверки подлинности используется certThumbprint и сертификат устанавливается в личном хранилище локального компьютера, предоставьте разрешения на чтение локальному Integration Runtime:
- Откройте Microsoft Management Console (MMC). Добавьте оснастку Сертификаты, нацеленную на локальный компьютер.
- Разверните Сертификаты>Личные, и затем выберите Сертификаты.
- Щелкните правой кнопкой мыши сертификат в личном хранилище, а затем выберите Все задачи>Управление закрытыми ключами.
- На вкладке Security добавьте учетную запись пользователя, в которой выполняется служба узла Integration Runtime (DIAHostService), с доступом на чтение к сертификату.
- Соединитель HTTP загружает только доверенные сертификаты. Если вы используете самоподписанный или выданный неинтегрированным УЦ сертификат, то, чтобы включить доверие, сертификат также должен быть установлен в одном из следующих хранилищ:
- Доверенные лица
- Сторонние корневые центры сертификации
- Доверенные корневые удостоверяющие центры
Пример 1. Использование certThumbprint
{
"name": "HttpLinkedService",
"properties": {
"type": "HttpServer",
"typeProperties": {
"authenticationType": "ClientCertificate",
"url": "<HTTP endpoint>",
"certThumbprint": "<thumbprint of certificate>"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Пример 2. Использование 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"
}
}
}
Использование заголовков аутентификации
Кроме того, можно настроить заголовки запроса для проверки подлинности вместе со встроенными типами проверки подлинности.
Пример. Использование проверки подлинности ключа 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"
}
}
}
Свойства набора данных
Полный список разделов и свойств, доступных для определения наборов данных, см. в статье о наборах данных.
Azure Data Factory поддерживает следующие форматы файлов. Дополнительные сведения о параметрах с учетом форматирования см. в соответствующих статьях.
- Формат Avro
- Двоичный формат
- Формат текста с разделителями
- формат Excel
- Формат JSON
- Формат ORC
- Формат Parquet
- ФОРМАТ XML
Ниже перечислены свойства, которые поддерживаются для HTTP в настройках location в наборе данных на основе форматов:
| Свойство | Описание: | Обязательное поле |
|---|---|---|
| тип | Свойство типа в location для набора данных следует установить как HttpServerLocation. |
Да |
| relativeUrl | Относительный URL-адрес ресурса, который содержит данные. HTTP-соединитель копирует данные из объединенного URL-адреса: [URL specified in linked service][relative URL specified in dataset]. |
Нет |
Примечание.
Поддерживаемый размер полезных данных HTTP-запроса — около 500 КБ. Если размер полезных данных, которые вы хотите передать в конечную веб-точку, превышает размер 500 КБ, разбейте полезные данные на небольшие блоки.
Пример:
{
"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"
}
}
}
Свойства действия копирования
Этот раздел содержит список свойств, поддерживаемых источником HTTP.
Полный список разделов и свойств, доступных для определения действий, см. в разделе Конвейеры.
HTTP в качестве источника
Azure Data Factory поддерживает следующие форматы файлов. Дополнительные сведения о параметрах с учетом форматирования см. в соответствующих статьях.
- Формат Avro
- Двоичный формат
- Формат текста с разделителями
- формат Excel
- Формат JSON
- Формат ORC
- Формат Parquet
- ФОРМАТ XML
Поддерживаемые свойства для HTTP в настройках storeSettings в источнике копирования на основе формата:
| Свойство | Описание: | Обязательное поле |
|---|---|---|
| тип | Для свойства типа в storeSettings необходимо задать значение HttpReadSettings. |
Да |
| метод запроса | Метод HTTP. Допустимые значения: GET (по умолчанию) и POST. |
Нет |
| дополнительные заголовки | Дополнительные заголовки HTTP-запроса. | Нет |
| requestBody | Текст HTTP-запроса. | Нет |
| httpRequestTimeout | Время ожидания (значение TimeSpan) для получения ответа HTTP-запроса. Это значение является интервалом времени для получения ответа, а не считывания данных ответа. По умолчанию используется значение 00:01:40. | Нет |
| максимальное количество одновременных подключений | Верхний предел одновременных подключений, установленных в хранилище данных при запуске задачи. Указывайте значение только при необходимости ограничить количество одновременных подключений. | Нет |
Пример:
"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>"
}
}
}
]
Свойства операции поиска
Подробные сведения об этих свойствах см. в разделе Действие поиска.
Устаревшие модели
Примечание.
Следующие модели по-прежнему поддерживаются на условиях "как есть" для обеспечения обратной совместимости. В дальнейшем рекомендуется использовать новую модель, упомянутую в разделах выше. Пользовательский интерфейс разработки был изменен для создания новой модели.
Устаревшая модель набора данных
| Свойство | Описание: | Обязательное поле |
|---|---|---|
| тип | Свойство type для набора данных должно иметь значение HttpFile. | Да |
| relativeUrl | Относительный URL-адрес ресурса, который содержит данные. Если свойство не задано, используется только URL-адрес, указанный в определении связанной службы. | Нет |
| метод запроса | Метод HTTP. Допустимые значения: GET (по умолчанию) и POST. | Нет |
| дополнительные заголовки | Дополнительные заголовки HTTP-запроса. | Нет |
| requestBody | Текст HTTP-запроса. | Нет |
| format | Если требуется получить данные из конечной точки HTTP "как есть", — без анализа и копирования в хранилище файлов — можно пропустить раздел форматирования в определениях входного и выходного наборов данных. Поддерживаемые форматы для выполнения анализа содержимого ответа HTTP в процессе выполнения операции копирования: TextFormat, JsonFormat, AvroFormat, OrcFormat и ParquetFormat. Свойству type в разделе format необходимо присвоить одно из этих значений. Дополнительные сведения см. в разделах о формате JSON, текстовом формате, формате Avro, формате Orc и формате Parquet. |
Нет |
| сжатие | Укажите тип и уровень сжатия данных. Дополнительные сведения см. в разделе Поддержка сжатия. Поддерживаемые типы: GZip, Deflate, BZip2 и ZipDeflate. Поддерживаемые уровни: Optimal и Fastest. |
Нет |
Примечание.
Поддерживаемый размер полезных данных HTTP-запроса — около 500 КБ. Если размер полезных данных, которые вы хотите передать в конечную веб-точку, превышает размер 500 КБ, разбейте полезные данные на небольшие блоки.
Пример 1. Использование метода Get (по умолчанию)
{
"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"
}
}
}
Пример 2. Использование метода 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>"
}
}
}
Устаревшая модель источника для операции копирования
| Свойство | Описание: | Обязательное поле |
|---|---|---|
| тип | Свойство type источника действия копирования должно иметь значение HttpSource. | Да |
| httpRequestTimeout | Время ожидания (значение TimeSpan) для получения ответа HTTP-запроса. Это значение является интервалом времени для получения ответа, а не считывания данных ответа. По умолчанию используется значение 00:01:40. | Нет |
Пример
"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>"
}
}
}
]
Связанный контент
Список хранилищ данных, поддерживаемых действием копирования в качестве источников и приемников, приведен в разделе Поддерживаемые хранилища данных и форматы.