Partilhar via


Gerindo o suporte a proxy

Este artigo descreve como pode ativar o suporte de proxy no seu conector personalizado Power Query usando o Power Query SDK.

Definições do proxy do Windows

Primeiro terás de configurar as definições do proxy no Windows. Existem duas formas de configurar o proxy, seja através das Opções de Internet ou da definição de Rede & Internet.

Opções de Internet

  1. No menu inicial do Windows, procure e abra as Opções da Internet.
  2. Selecione a guia Conexões .
  3. Seleciona as definições da LAN.
  4. Na secção de servidor proxy , configure o servidor proxy.

Rede & internet

  1. No menu inicial do Windows, selecione o ícone Definições .
  2. Nas Definições, selecione Rede & Internet (Windows 10), ou selecione o ícone Abrir Navegação e depois selecione Rede & Internet (Windows 11).
  3. Selecionar Proxy.
  4. Na secção de configuração manual de proxy , desative o botão Usar um servidor proxy (Windows 10), ou selecione o botão Configurar e desative o botão Usar um servidor proxy (Windows 11).
  5. Configura o endereço e a porta.

Ativação do suporte de proxy

Foi adicionada uma Web.DefaultProxy função ao módulo de extensibilidade. Os conectores M de terceiros podem usar esta função para obter as definições do proxy web a serem definidas nas propriedades do driver (quando o proxy está ativado, conforme descrito nas definições do proxy do Windows).

A informação proxy pode ser definida na cadeia de ligação em relação ao parâmetro de ligação, que pode variar consoante os conectores. As credenciais proxy (nome de utilizador e palavra-passe) não são suportadas. Web.DefaultProxy recebe o serverUri/host como parâmetro e retorna um registo contendo o URI proxy como ProxyUri campo de um registo. Para obter as partes constituintes do URI (por exemplo: esquema, host, porta) dentro do conector, use Uri.Parts.

Se o proxy não estiver configurado, Web.DefaultProxy devolve um registo vazio.

Exemplo de utilização

Exemplo 1

Para usar Web.DefaultProxy no código do conector, pode ser usada uma variável do tipo booleano para optar por aderir ou não usar esta funcionalidade. Neste exemplo, Web.DefaultProxy é invocado no código do conector se o parâmetro booleano opcional UseWebDefaultProxy estiver definido como true (é falso por defeito).

UseWebDefaultProxyOption = options[UseWebDefaultProxy]?,
ProxyUriRecord = if UseWebDefaultProxyOption then Web.DefaultProxy(Host) else null,
ProxyOptions = if Record.FieldCount(ProxyUriRecord) > 0 then
      [
            Proxy = ProxyUriRecord[ProxyUri]
      ]
      else [],
      ...

Uma vez que o UseWebDefaultProxy é definido como verdadeiro e ProxyUriRecord é obtido, pode ser criado um registo para definir o Proxy (parâmetro de configuração suportado pelo driver, que pode variar) com o ProxyUri campo devolvido por Web.DefaultProxy. Pode ser nomeado de forma semelhante a ProxyOptions. Este registo pode então ser anexado à base ConnectionString, e incluir os detalhes do proxy juntamente com ele.

Databases = Odbc.DataSource(ConnectionString & ProxyOptions, Options)

Exemplo 2

Se existirem múltiplos parâmetros de configuração usados pelo driver para definir os detalhes do proxy (como os detalhes do host e da porta serem tratados separadamente), Uri.Parts pode ser utilizado.

UseWebDefaultProxyOption = options[UseWebDefaultProxy]?,
ProxyRecord = if UseWebDefaultProxyOption then Web.DefaultProxy(Host) else null,
UriRecord = if ProxyRecord <> null then Uri.Parts(ProxyRecord) else null,
ProxyOptions = if UriRecord <> null then
    [
        ProxyHost = UriRecord[Scheme] & "://" & UriRecord[Host],
        ProxyPort = UriRecord[Port]
    ]
    else [],
    ...