Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
APLICA-SE A:
Azure Data Factory
Azure Synapse Analytics
Gorjeta
Data Factory em Microsoft Fabric é a próxima geração de Azure Data Factory, com uma arquitetura mais simples, IA incorporada e novas funcionalidades. Se és novo na integração de dados, começa pelo Fabric Data Factory. As cargas de trabalho existentes do ADF podem atualizar para o Fabric para aceder a novas capacidades em ciência de dados, análise em tempo real e relatórios.
Este artigo descreve como usar a Copy Activity no Azure Data Factory e no Azure Synapse para copiar dados de um endpoint HTTP. O artigo baseia-se na Atividade de Cópia, que apresenta uma visão geral da Atividade de Cópia.
A diferença entre esse conector HTTP, o conector REST e o conector de tabela Web é:
- O conector REST suporta especificamente a cópia de dados de APIs RESTful;
- O conector HTTP genérico serve para recuperar dados de qualquer endpoint HTTP, por exemplo, para baixar ficheiros. Antes do conector REST ficar disponível, você pode usar o conector HTTP para copiar dados de APIs RESTful, que é suportado, mas menos funcional em comparação com o conector REST.
- O conector da tabela Web extrai o conteúdo da tabela de uma página Web HTML.
Capacidades suportadas
Este conector HTTP é suportado para os seguintes recursos:
| Capacidades suportadas | IR |
|---|---|
| Atividade de cópia (fonte/-) | (1) (2) |
| Atividade de Pesquisa | (1) (2) |
(1) Runtime de integração Azure (2) Runtime de integração auto-hospedado
Para obter uma lista de armazenamentos de dados que são suportados como fontes/destinos, consulte Armazenamentos de dados suportados.
Você pode usar esse conector HTTP para:
- Recupere dados de um ponto de extremidade HTTP/S usando os métodos HTTP GET ou POST .
- Recupere dados utilizando uma das seguintes certificações: Anonymous, Basic, Digest, Windows, ou ClientCertificate.
- Copie a resposta HTTP no estado em que se encontra ou analise-a usando formatos de arquivo e codecs de compactação suportados.
Gorjeta
Para testar uma solicitação HTTP para recuperação de dados antes de configurar o conector HTTP, saiba mais sobre a especificação da API para requisitos de cabeçalho e corpo. Pode usar ferramentas como o Visual Studio, o Invoke-RestMethod do PowerShell ou um navegador web para validar.
Pré-requisitos
Se o seu armazenamento de dados estiver localizado numa rede local, numa rede virtual Azure ou na Amazon Virtual Private Cloud, precisa de configurar um runtime de integração auto-hospedado para se ligar a ele.
Se o seu armazenamento de dados for um serviço de dados na cloud gerido, pode usar o Azure Integration Runtime. Se o acesso for restrito a IPs aprovados nas regras do firewall, pode adicionar IPs Azure Integration Runtime à lista de autorizações.
Também pode usar a funcionalidade managed virtual network integration runtime no Azure Data Factory para aceder à rede local sem instalar e configurar um runtime de integração auto-hospedado.
Para obter mais informações sobre os mecanismos de segurança de rede e as opções suportadas pelo Data Factory, consulte Estratégias de acesso a dados.
Introdução
Para executar a atividade de cópia com um pipeline, você pode usar uma das seguintes ferramentas ou SDKs:
- Ferramenta Copiar dados
- Portal do Azure
- .NET SDK
- Python SDK
- Azure PowerShell
- API REST
- Modelo do Azure Resource Manager
Criar um serviço vinculado a uma fonte HTTP usando a interface do usuário
Use os passos seguintes para criar um serviço ligado a uma fonte HTTP na interface do portal Azure.
Navegue até ao separador Gerir no seu espaço de trabalho Azure Data Factory ou Synapse e selecione Serviços Ligados, depois clique em Novo:
Procure HTTP e selecione o conector HTTP.
Configure os detalhes do serviço, teste a conexão e crie o novo serviço vinculado.
Detalhes de configuração do conector
As seções a seguir fornecem detalhes sobre as propriedades que você pode usar para definir entidades específicas para o conector HTTP.
Propriedades do serviço vinculado
As seguintes propriedades são suportadas para o serviço vinculado HTTP:
| Propriedade | Descrição | Obrigatório |
|---|---|---|
| tipo | A propriedade type deve ser definida como HttpServer. | Sim |
| url | O URL base para o servidor Web. | Sim |
| enableServerCertificateValidation | Especifique se deseja habilitar a validação do certificado TLS/SSL do servidor quando você se conectar a um ponto de extremidade HTTP. Se o servidor HTTPS usar um certificado autoassinado, defina essa propriedade como false. | Não (o padrão é true) |
| tipoDeAutenticação | Especifica o tipo de autenticação. Os valores permitidos são Anonymous, Basic, Digest, Windows e ClientCertificate. Além disso, você pode configurar cabeçalhos de autenticação na authHeader propriedade. Consulte as seções que seguem esta tabela para obter mais propriedades e exemplos JSON para esses tipos de autenticação. |
Sim |
| CabeçalhosAuth | Cabeçalhos de solicitação HTTP adicionais para autenticação. Por exemplo, para usar a autenticação de chave de API, você pode selecionar o tipo de autenticação como "Anônimo" e especificar a chave de API no cabeçalho. |
Não |
| conectarVia | O Integration Runtime a usar para ligação ao armazenamento de dados. Saiba mais na seção Pré-requisitos . Se não for especificado, o Azure Integration Runtime padrão é usado. | Não |
Usar a autenticação Básica, Digest ou do Windows
Defina a propriedade authenticationType para Basic, Digest ou Windows. Além das propriedades genéricas descritas na seção anterior, especifique as seguintes propriedades:
| Propriedade | Descrição | Obrigatório |
|---|---|---|
| nome de utilizador | O nome do utilizador a usar para aceder ao ponto de extremidade HTTP. | Sim |
| palavra-passe | A senha do usuário (o valor userName ). Marque este campo como um tipo SecureString para armazená-lo com segurança. Também pode referenciar um segredo guardado em Azure Key Vault. | Sim |
Exemplo
{
"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"
}
}
}
Usando a autenticação de certificado de cliente
Para utilizar a autenticação através do ClientCertificate, configure a propriedade authenticationType para ClientCertificate. Além das propriedades genéricas descritas na seção anterior, especifique as seguintes propriedades:
| Propriedade | Descrição | Obrigatório |
|---|---|---|
| embeddedCertData | Dados de certificado codificados em Base64. | Especifique embeddedCertData ou certThumbprint. |
| certImpressão digital | A impressão digital do certificado instalado no repositório de certificados da sua máquina Integration Runtime auto-hospedada. Aplica-se apenas quando o tipo de Integration Runtime auto-hospedado é especificado na propriedade connectVia. | Especifique embeddedCertData ou certThumbprint. |
| palavra-passe | A senha associada ao certificado. Marque este campo como um tipo SecureString para armazená-lo com segurança. Também pode referenciar um segredo guardado em Azure Key Vault. | Não |
Se usar certThumbprint para autenticação e o certificado estiver instalado no repositório pessoal do computador local, conceda permissões de leitura ao Runtime de Integração auto-hospedado:
- Abra a Consola de Gestão da Microsoft (MMC). Adicione o snap-in Certificados que tem como alvo o Computador Local.
- Expanda Certificados>Pessoais e selecione Certificados.
- Clique com o botão direito do rato no certificado da loja pessoal e, em seguida, selecione Todos os Tarefas>Gerir chaves privadas.
- No separador Security, adicione a conta de utilizador sob a qual o Integration Runtime Host Service (DIAHostService) está a correr, com acesso de leitura ao certificado.
- O conector HTTP carrega apenas certificados confiáveis. Caso esteja a utilizar um certificado emitido por uma CA auto-assinada ou não integrada, para estabelecer a confiança, o certificado também deverá ser instalado em um dos seguintes repositórios:
- Pessoas de confiança
- Autoridades de certificação raiz de terceiros
- Autoridades de Certificação de Raiz Fidedigna
Exemplo 1: Usando certThumbprint
{
"name": "HttpLinkedService",
"properties": {
"type": "HttpServer",
"typeProperties": {
"authenticationType": "ClientCertificate",
"url": "<HTTP endpoint>",
"certThumbprint": "<thumbprint of certificate>"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Exemplo 2: Usando 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"
}
}
}
Usando cabeçalhos de autenticação
Além disso, você pode configurar cabeçalhos de solicitação para autenticação junto com os tipos de autenticação internos.
Exemplo: Usando a autenticação de chave de 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"
}
}
}
Propriedades do conjunto de dados
Para obter uma lista completa de seções e propriedades disponíveis para definir conjuntos de dados, consulte o artigo Conjuntos de dados.
Azure Data Factory suporta os seguintes formatos de ficheiro. Consulte cada artigo para obter as configurações baseadas no formato.
- Formato Avro
- Formato binário
- Formato de texto delimitado
- Formato Excel
- Formato JSON
- Formato ORC
- Formato Parquet
- Formato XML
As seguintes propriedades são suportadas para HTTP nas configurações baseadas em formato do conjunto de dados location.
| Propriedade | Descrição | Obrigatório |
|---|---|---|
| tipo | A propriedade type em location no dataset deve ser definida como HttpServerLocation. |
Sim |
| relativeUrl | Uma URL relativa ao recurso que contém os dados. O conector HTTP copia dados da URL combinada: [URL specified in linked service][relative URL specified in dataset]. |
Não |
Nota
O tamanho da carga útil da solicitação HTTP suportada é de cerca de 500 KB. Se o tamanho da carga útil que você deseja passar para seu ponto de extremidade da Web for maior que 500 KB, considere agrupar a carga em partes menores.
Exemplo:
{
"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"
}
}
}
Propriedades da Atividade de Cópia
Esta seção fornece uma lista de propriedades que a fonte HTTP suporta.
Para obter uma lista completa de seções e propriedades disponíveis para definir atividades, consulte Pipelines.
HTTP como fonte
Azure Data Factory suporta os seguintes formatos de ficheiro. Consulte cada artigo para obter as configurações baseadas no formato.
- Formato Avro
- Formato binário
- Formato de texto delimitado
- Formato Excel
- Formato JSON
- Formato ORC
- Formato Parquet
- Formato XML
As seguintes propriedades são suportadas para HTTP nas storeSettings configurações na fonte de cópia baseada em formato.
| Propriedade | Descrição | Obrigatório |
|---|---|---|
| tipo | A propriedade type under storeSettings deve ser definida como HttpReadSettings. |
Sim |
| métodoDeRequisição | O método HTTP. Os valores permitidos são Get (padrão) e Post. |
Não |
| cabeçalhos adicionais | Cabeçalhos de solicitação HTTP adicionais. | Não |
| corpo da solicitação | O corpo da solicitação HTTP. | Não |
| httpRequestTimeout | O tempo limite (valor de TimeSpan) para obter uma resposta da solicitação HTTP. Esse valor é o tempo limite para obter uma resposta, não o tempo limite para ler os dados da resposta. O valor padrão é 00:01:40. | Não |
| Máximo de conexões simultâneas (maxConcurrentConnections) | O limite superior de conexões simultâneas estabelecidas para o armazenamento de dados durante a execução da atividade. Especifique um valor somente quando quiser limitar conexões simultâneas. | Não |
Exemplo:
"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>"
}
}
}
]
Propriedades da atividade de consulta
Para saber detalhes sobre as propriedades, verifique Atividade de pesquisa.
Modelos antigos
Nota
Os modelos a seguir ainda são suportados no estado em que se encontram para compatibilidade com versões anteriores. Sugere-se que você use o novo modelo mencionado nas seções acima daqui para frente, e a interface do usuário de criação mudou para gerar o novo modelo.
Modelo de conjunto de dados herdado
| Propriedade | Descrição | Obrigatório |
|---|---|---|
| tipo | A propriedade type do conjunto de dados deve ser definida como HttpFile. | Sim |
| relativeUrl | Uma URL relativa ao recurso que contém os dados. Quando essa propriedade não é especificada, somente a URL especificada na definição de serviço vinculado é usada. | Não |
| métodoDeRequisição | O método HTTP. Os valores permitidos são Get (padrão) e Post. | Não |
| cabeçalhos adicionais | Cabeçalhos de solicitação HTTP adicionais. | Não |
| corpo da solicitação | O corpo da solicitação HTTP. | Não |
| formato | Se você quiser recuperar dados do ponto de extremidade HTTP como está sem analisá-los e, em seguida, copiar os dados para um armazenamento baseado em arquivo, ignore a seção de formato nas definições de conjunto de dados de entrada e saída. Se você quiser analisar o conteúdo da resposta HTTP durante a cópia, os seguintes tipos de formato de arquivo são suportados: TextFormat, JsonFormat, AvroFormat, OrcFormat e ParquetFormat. Em formato, defina a propriedade type como um destes valores. Para obter mais informações, consulte Formato JSON, Formato de texto, Formato Avro, Formato Orc e Formato Parquet. |
Não |
| compressão | Especifique o tipo e o nível de compactação dos dados. Para obter mais informações, consulte Formatos de arquivo e codecs de compactação suportados. Tipos suportados: GZip, Deflate, BZip2 e ZipDeflate. Níveis suportados: Ótimo e mais rápido. |
Não |
Nota
O tamanho da carga útil da solicitação HTTP suportada é de cerca de 500 KB. Se o tamanho da carga útil que você deseja passar para seu ponto de extremidade da Web for maior que 500 KB, considere agrupar a carga em partes menores.
Exemplo 1: Usando o método Get (padrão)
{
"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"
}
}
}
Exemplo 2: Usando o método 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>"
}
}
}
Modelo de origem da atividade de cópia herdada
| Propriedade | Descrição | Obrigatório |
|---|---|---|
| tipo | A propriedade type da fonte da atividade de cópia deve ser definida como HttpSource. | Sim |
| httpRequestTimeout | O tempo limite (valor de TimeSpan) para obter uma resposta da solicitação HTTP. Esse valor é o tempo limite para obter uma resposta, não o tempo limite para ler os dados da resposta. O valor padrão é 00:01:40. | Não |
Exemplo
"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>"
}
}
}
]
Conteúdos relacionados
Para obter uma lista de armazenamentos de dados que a Atividade de Cópia suporta como fontes e coletores, consulte Formatos e armazenamentos de dados suportados.