Configuração do Snowflake para usar o Git¶
Quando você conecta sua conta Snowflake a um repositório Git remoto, o Snowflake cria um clone do repositório Git , copiando a versão mais recente de todos os arquivos no repositório (um clone raso ) e armazenando metadados sobre a localização do repositório remoto, credenciais (se necessário) e detalhes de configuração sobre como o Snowflake deve interagir com a API do repositório Git.
Dependendo dos seus requisitos, configurando componentes para autenticação, interação com a Git API e comunicação por um link privado entre o Snowflake e seu provedor de serviços de nuvem, você pode configurar o Snowflake para que um repositório Git remoto se torne parte integrante do seu fluxo de trabalho dentro do Snowflake.
Escolha de um modelo de configuração¶
Dependendo dos seus requisitos de rede e fluxo de trabalho, você pode configurar o Snowflake para acessar um repositório Git remoto de várias maneiras. A seguir, listamos exemplos de casos de uso, juntamente com as estratégias de acesso ao repositório que você pode usar para oferecer suporte a eles.
Trabalhe com arquivos em um repositório Git por meio de um fluxo de trabalho que inclui extrair, enviar e criar arquivos.
Considere o uso de Espaços de trabalho do Snowflake. Se você estiver usando um repositório em github.com, poderá autenticar-se com OAuth.
Arquivos de referência em um repositório Git como parte de um pipeline de dados ou projeto ML.
Se um processo com script acessar o repositório, considere a autenticação usando um token.
Comece clonando um repositório público (incluindo o Snowflake Labs) para executar scripts ou arquivos de notebook.
Você pode usar espaços de trabalho para
.sql
Arquivos, Notebooks Snowflake para aquivos.ipynb
ou Espaços de trabalho do Snowflake para aquivos.py
.
A seguir, as opções são descritas em termos de se você deseja acesso por uma rede pública ou privada:
Acesso por uma rede pública |
Acesso por uma rede privada |
---|---|
O acesso por uma rede pública permite que você se autentique no seu servidor de repositório Git remoto usando toda a faixa de IP de sua implantação do provedor de nuvem Snowflake (porque o Snowflake não fornece um intervalo de IP estático).
|
O acesso por uma rede privada ajuda a evitar permitir o acesso ao servidor Git para todo o Intervalo de IP de sua implantação do provedor de nuvem Snowflake. É possível configurar o Snowflake para estabelecer a conectividade de saída por meio de uma conexão de link privado de saída entre o Snowflake e sua infraestrutura na nuvem. O Snowflake encaminha o tráfego do Git por meio desta conexão para o servidor do repositório Git.
|
Configuração do Snowflake para acesso em uma rede pública¶
Você pode configurar o Snowflake para acessar seu repositório Git por meio de uma rede pública. Você pode fazer com que o Snowflake realize a autenticação usando qualquer uma das seguintes estratégias:
-
Configuração de uma integração de API com detalhes sobre o servidor do repositório Git.
Autenticar com um token, como um token de acesso pessoal .
Configure um segredo contendo o nome de usuário e token a ser usado e depois configure uma integração de API que permita ao Snowflake usar o segredo ao autenticar.
Autenticar por meio de um fluxo OAuth.
Configuração de uma integração de API para permitir qualquer um dos seguintes tipos de autenticação: OAuth2, um token de acesso pessoal ou nenhuma autenticação.
Nota
O uso de OAuth para trabalhar com um repositório Git é compatível somente com espaços de trabalho e somente quando o repositório está hospedado em github.com. Para obter mais informações, consulte Criar um espaço de trabalho Git.
Configurar para nenhuma autenticação¶

Para configurar o Snowflake para usar um repositório Git sem autenticação, siga estas etapas:
Crie uma integração de API que ofereça suporte ao acesso sem autenticação e especifique os seguintes detalhes:
git_https_api
como o valor do parâmetro API_PROVIDERPontos de extremidade HTTPS aos quais solicitações devem ser limitadas como valores do parâmetro API_ALLOWED_PREFIXES
Para obter mais informações, consulte CREATE API INTEGRATION.
CREATE OR REPLACE API INTEGRATION my_git_api_integration API_PROVIDER = git_https_api API_ALLOWED_PREFIXES = ('https://example.com/my-account') ENABLED = TRUE;
Criar um clone do repositório Git conforme descrito em Criação de um clone do repositório Git do Snowflake
Configuração do para autenticação com um token¶

Para que o Snowflake seja autenticado no repositório Git usando um nome de usuário e token, como um token de acesso pessoal (PAT), siga estes passos:
Fornecimento de credenciais em um segredo de autenticação básica.
Para fornecer as credenciais que o Snowflake usa para autenticar no repositório, crie um segredo contendo o seguinte:
Um valor TYPE de
password
Um nome de usuário e token, como um token de acesso pessoal (PAT)
Se seu repositório Git estiver hospedado no Bitbucket, especifique
x-token-auth
como o valor do nome de usuário.Nota
Para obter informações sobre como criar um token de acesso pessoal em GitHub, consulte Como gerenciar seus tokens de acesso pessoal na documentação do GitHub.
Para obter mais informações sobre o comando SQL para criar um segredo, consulte CREATE SECRET.
O código no exemplo a seguir cria um segredo chamado
my_git_secret
com um nome de usuário e o token de acesso pessoal do usuário para usar como credenciais:CREATE OR REPLACE SECRET my_git_secret TYPE = password USERNAME = 'gladyskravitz' PASSWORD = 'ghp_token';
Crie uma integração de API que ofereça suporte à autenticação com um token.
Para criar uma integração de API para acesso a um repositório Git sem autenticação, especifique os seguintes detalhes:
git_https_api
como o valor do parâmetro API_PROVIDERPontos de extremidade HTTPS aos quais solicitações devem ser limitadas como valores do parâmetro API_ALLOWED_PREFIXES
Para obter mais informações, consulte CREATE API INTEGRATION.
CREATE OR REPLACE API INTEGRATION my_git_api_integration API_PROVIDER = git_https_api API_ALLOWED_PREFIXES = ('https://github.com/my-account') ALLOWED_AUTHENTICATION_SECRETS = (my_git_secret) ENABLED = TRUE;
Criar um clone do repositório Git conforme descrito em Criação de um clone do repositório Git do Snowflake
Configuração do para autenticação com OAuth¶
Nota
O uso de OAuth para trabalhar com um repositório Git é compatível somente com espaços de trabalho e somente quando o repositório está hospedado em github.com. Para obter mais informações, consulte Criar um espaço de trabalho Git.

Para configurar o Snowflake para que ele seja autenticado no repositório Git remoto usando um fluxo OAuth, siga estes passos:
Crie uma integração de API que ofereça suporte à autenticação por meio de OAuth.
Ao especificar a autenticação com um fluxo OAuth2, crie uma integração de API que especifique o seguinte:
git_https_api
como o valor do parâmetro API_PROVIDERPontos de extremidade HTTPS aos quais solicitações devem ser limitadas como valores do parâmetro API_ALLOWED_PREFIXES
Este deve ser um prefixo em
https://github.com
. A autenticação com OAuth é compatível somente com repositórios hospedados em github.com.Um API_USER_AUTHENTICATION cujo valor é
(TYPE = SNOWFLAKE_GITHUB_APP)
Para obter mais informações, consulte CREATE API INTEGRATION.
O código no exemplo a seguir cria uma integração de API chamada
my_git_api_integration
:CREATE OR REPLACE API INTEGRATION my_git_api_integration API_PROVIDER = git_https_api API_ALLOWED_PREFIXES = ('https://github.com') API_USER_AUTHENTICATION = (TYPE = SNOWFLAKE_GITHUB_APP) ENABLED = TRUE;
Crie um espaço de trabalho conectado a um repositório Git, conforme descrito em Criar um espaço de trabalho Git.
Configuração do Snowflake para acesso em uma rede privada¶
É possível configurar o Snowflake para estabelecer a conectividade de saída por meio de uma conexão de link privado de saída entre o Snowflake e sua infraestrutura na nuvem. O Snowflake encaminha o tráfego do Git por meio desta conexão para o servidor do repositório Git.
Com uma conexão de link privado, você evita permitir o acesso ao servidor Git para todo o intervalo de IP da sua implementação do provedor de nuvem Snowflake. Esta seção descreve as etapas em alto nível.
Configuração da conexão do Private Link.
Você aplicará alterações de configuração ao Snowflake e à sua infraestrutura de serviço de nuvem. Este tópico descreve as etapas no lado do Snowflake. Para obter detalhes sobre todas as etapas, incluindo a configuração de seu provedor de serviços de nuvem, consulte o artigo da base de conhecimento Configuração da integração do Git com o Snowflake pelo Private Link.
Configuração do acesso do Snowflake ao repositório Git remoto.
Nota
O Snowflake oferece suporte apenas a conexões dentro da mesma nuvem e região. Por exemplo, se sua implantação do Snowflake estiver na AWS na região us-west-2, seus outros componentes também deverão estar nessa região.
Configuração da conexão do Private Link¶
Antes de configurar o Snowflake para acessar o repositório Git remoto, você deve configurar um link privado entre o Snowflake e seu provedor de serviços de nuvem.
Para aplicar alterações de configuração ao Snowflake e à sua infraestrutura, siga estas etapas:
No seu provedor de serviços de nuvem, crie um serviço de link privado para receber solicitações do serviço de ponto de extremidade privado do Snowflake.
Para obter mais detalhes, consulte o artigo da base de conhecimento Configuração da integração do Git com o Snowflake pelo Private Link.
No Snowflake, forneça um ponto de extremidade privado que chegará à sua infraestrutura por meio de um IP privado.
Para provisionar o ponto de extremidade, use a função SYSTEM$PROVISION_PRIVATELINK_ENDPOINT com os dois argumentos a seguir:
ID do serviço de link privado de seu provedor de nuvem
Nome de domínio do seu servidor Git
SELECT SYSTEM$PROVISION_PRIVATELINK_ENDPOINT( 'com.amazonaws.vpce.us-west-2.vpce-svc-xxx', // VPC Endpoint Service Name 'git_address.com' // Git server domain );
SELECT SYSTEM$PROVISION_PRIVATELINK_ENDPOINT( '/subscriptions/9217bbdd-434e-4dbb-97c2-0825c627a277/resourceGroups/git-server_group/providers/Microsoft.Network/privateLinkServices/git-server-pl-service', // Private Service ID 'git_address.com' // Git server domain );
Em seu provedor de serviços de nuvem, aceite a configuração do ponto de extremidade privado do Snowflake para terminar de configurar a conexão do link privado.
Para verificar o status do provisionamento, chame a função do sistema SYSTEM$GET_PRIVATELINK_ENDPOINTS_INFO.
Configuração do acesso do Snowflake ao repositório Git remoto¶
Depois de configurar um link privado entre o Snowflake e seu provedor de serviços de nuvem, você pode configurar o acesso do Snowflake ao repositório Git remoto.
Crie uma integração de API que ofereça suporte à autenticação com um certificado.
Como o Snowflake acessará seu servidor Git usando o protocolo HTTPS, o nome de domínio precisa ter um certificado válido. A configuração usada difere dependendo se você usa um certificado autoassinado ou um certificado assinado por uma autoridade de certificação.
Uso de um certificado autoassinado:
Fornecimento de credenciais em um segredo da cadeia de caracteres genérica.
Esta deve ser uma chave pública de um domínio autoassinado para estabelecer uma conexão HTTPS. Para fornecer ao Snowflake as credenciais que ele usará para autenticação no servidor, crie um segredo que contenha os seguintes detalhes:
Um valor de parâmetro TYPE de
GENERIC_STRING
Uma cadeia de caracteres de certificado público como o valor do parâmetro SECRET_STRING
Para o valor do parâmetro, especifique uma cadeia de caracteres secreta, como um corpo de certificação público.
CREATE OR REPLACE SECRET my_public_certificate TYPE = GENERIC_STRING SECRET_STRING = '-----BEGIN CERTIFICATE----- <certificate_body> -----END CERTIFICATE-----';
Crie uma integração de API para integrar com a API Git e especifique os seguintes detalhes:
Um parâmetro API_PROVIDER definido como
git_https_api
Um API_ALLOWED_PREFIXES definido como a URL base abaixo da qual o acesso é permitido
Um parâmetro USE_PRIVATELINK_ENDPOINT definido como
TRUE
Um parâmetro TLS_TRUSTED_CERTIFICATES definido como o nome do segredo que você criou, que contém o certificado
Para obter mais informações, consulte CREATE API INTEGRATION.
CREATE OR REPLACE API INTEGRATION my_git_api_integration API_PROVIDER = git_https_api API_ALLOWED_PREFIXES = ('https://example.com/my-account') ALLOWED_AUTHENTICATION_SECRETS = ALL USE_PRIVATELINK_ENDPOINT = TRUE TLS_TRUSTED_CERTIFICATES = (my_public_certificate) ENABLED = TRUE;
Usando um certificado assinado por uma autoridade de certificação:
Crie uma integração de API para integrar com a API Git e especifique os seguintes detalhes:
Um parâmetro API_PROVIDER definido como
git_https_api
Um API_ALLOWED_PREFIXES definido como a URL base abaixo da qual o acesso é permitido
Um parâmetro USE_PRIVATELINK_ENDPOINT definido como
TRUE
Um parâmetro TLS_TRUSTED_CERTIFICATES definido como o nome do segredo que você criou, que contém o certificado
Para obter mais informações, consulte CREATE API INTEGRATION.
CREATE OR REPLACE API INTEGRATION my_git_api_integration API_PROVIDER = git_https_api API_ALLOWED_PREFIXES = ('https://example.com/my-account') ALLOWED_AUTHENTICATION_SECRETS = ALL USE_PRIVATELINK_ENDPOINT = TRUE ENABLED = TRUE;
Fornecimento de credenciais em um segredo de autenticação básica.
Após conectar-se com sucesso ao servidor Git por meio do link privado, você ainda deve se autenticar no repositório criando outro segredo que fornece credenciais para o repositório.
Para fornecer as credenciais que o Snowflake usa para autenticar no repositório, crie um segredo contendo o seguinte:
Um valor TYPE de
password
Um nome de usuário e token, como um token de acesso pessoal (PAT)
Nota
Para obter informações sobre como criar um token de acesso pessoal em GitHub, consulte Como gerenciar seus tokens de acesso pessoal na documentação do GitHub.
Para obter mais informações sobre o comando SQL para criar um segredo, consulte CREATE SECRET.
Criar um clone do repositório Git conforme descrito em Criação de um clone do repositório Git do Snowflake
Criação de um clone do repositório Git do Snowflake¶
Para configurar o Snowflake para trabalhar com um repositório Git remoto, crie um clone do repositório Git no Snowflake para conter os arquivos obtidos do repositório remoto.
Nota
Antes de iniciar as etapas desta seção, considere primeiro a configuração dos componentes de que você pode precisar, incluindo um segredo (se o repositório remoto exigir autenticação), uma integração de API e conexão privada entre o Snowflake e seu provedor de serviços de nuvem.
Nota
Para obter informações sobre como criar um espaço de trabalho Git em Snowsight, consulte Criar um espaço de trabalho Git.
Um clone do repositório Git no Snowflake especifica os seguintes detalhes:
A origem do repositório remoto
No Git,
origin
é o URL do repositório remoto. Use esse URL ao configurar o Snowflake para usar um repositório Git remoto. O URL deve usar HTTPS. Por exemplo, você pode recuperar a URL de origem das seguintes maneiras:Na interface do usuário do GitHub, você pode obter o URL de origem da página inicial do repositório. Selecione o botão Code e, em seguida, copie o HTTPS URL na caixa exibida abaixo do botão.
Na linha de comando, use o comando
git config
de dentro do seu repositório local, como no exemplo a seguir:$ git config --get remote.origin.url
O comando produz saídas como as seguintes:
https://github.com/my-account/snowflake-extensions.git
Para obter informações de referência sobre
git config
, veja a documentação do git.
Credenciais, se necessário , para o Snowflake usar ao autenticar com o repositório
Para o parâmetro GIT_CREDENTIALS, especifique um segredo do Snowflake que você criou.
Uma integração da API especificando detalhes para interação do Snowflake com a API do repositório
Você pode criar um clone do repositório Git usando Snowsight ou SQL.
Nota
Antes de criar um clone do repositório Git, você precisará criar um segredo (se o repositório remoto exigir autenticação) e uma Integração de API.
O código no exemplo a seguir cria um clone de repositório Git chamado snowflake_extensions
. O clone especifica a integração da my_git_api_integration
API e o segredo my_git_secret
com credenciais para autenticação.
USE ROLE ACCOUNTADMIN;
GRANT CREATE GIT REPOSITORY ON SCHEMA myco_db.integrations TO ROLE myco_git_admin;
USE ROLE myco_git_admin;
CREATE OR REPLACE GIT REPOSITORY snowflake_extensions
API_INTEGRATION = my_git_api_integration
GIT_CREDENTIALS = my_git_secret
ORIGIN = 'https://github.com/my-account/snowflake-extensions.git';
Nota
Para obter informações sobre como criar um espaço de trabalho Git em Snowsight, consulte Criar um espaço de trabalho Git.
Faça login no Snowsight.
No menu de navegação, selecione Data » Databases.
No explorador de objetos, selecione o banco de dados e o esquema que você deseja que contenha o clone do repositório Git que você está criando.
Selecione Create » Git Repository.
Na caixa de diálogo Create Git Repository, para Repository Name, insira um nome que identificará exclusivamente esse clone de repositório no esquema.
Para diretrizes de nomenclatura, consulte Requisitos para identificadores.
Para Origin, insira o URL de origem do repositório remoto.
No menu suspenso API Integration, selecione a integração de API para fazer referência ao criar o clone do repositório Git.
Se você não tiver uma integração da API para usar, selecione Create new API integration in Worksheets para usar o SQL para criar um. Para obter mais informações, consulte CREATE API INTEGRATION.
Opcional: para o Comment, insira um texto descrevendo esta integração para outros.
Opcional: se o repositório remoto exigir autenticação, defina a opção Authentication para a posição _on_.
Se você ativar o botão, no menu suspenso Secret, selecione o segredo que deve ser referenciado pela integração do Git para autenticação com o repositório remoto.
Se você não tiver um segredo para usar, selecione Create new secret in Worksheets para usar SQL para criar um. Para obter mais informações, consulte CREATE SECRET.
Selecione Create.
Quando você cria a integração com sucesso, o clone do repositório Git aparece abaixo do esquema, em um diretório Git Repositories. Você também verá uma página que lista diretórios de repositórios, ramificações e tags.