Snowpark Container Services: como trabalhar com um registro e repositório de imagens

O Snowpark Container Services fornece um serviço de registro de imagens compatível com OCIv2 e um repositório de chamadas de unidade de armazenamento para armazenar imagens.

Registro de imagens

O serviço de registro de imagens fornece a OCIv2 API para armazenar imagens de contêiner compatíveis com OCI.

Nome do host do registro de imagens

Cada registro de imagem em uma conta Snowflake tem um nome de host exclusivo, que permite que clientes OCI (como Docker CLI) acessem um registro de imagens usando chamadas REST API. A sintaxe geral para um nome de host de registro de imagens é:

<orgname>-<acctname>.registry.snowflakecomputing.com

No nome do host:

  • <nomeorg>-<nomeconta> identifica uma conta Snowflake.

  • registry permite que o Snowflake forneça nomes de host por conta para clientes de registro.

    O nome do host está sempre em letras minúsculas.

Nota

O nome de uma conta Snowflake (<nomeconta>) pode ter um sublinhado (por exemplo, my_account), mas os sublinhados não são válidos em um URL. Portanto, ao usar um nome de host de registro, você precisa substituir um sublinhado por um traço. Por exemplo, altere my_account por my-account.

Você pode encontrar o nome da sua organização e as informações do nome da conta para nomes de host do repositório de imagens de uma das seguintes maneiras:

Autenticação de registro de imagem

Para acessar um repositório de imagens em sua conta Snowflake, os usuários devem se autenticar no registro de imagens usando suas credenciais do Snowflake. Além disso, privilégios apropriados são necessários para acessar repositórios dentro do registro. Para obter esses privilégios, um usuário deve ter uma função que conceda privilégios de acesso ao repositório.

Você tem as seguintes opções para autenticar seu cliente com um registro de imagem em sua conta:

  • Use comandos fornecidos pelo cliente: Ferramentas como o Docker oferecem comandos para autenticação em um registro usando um nome de usuário e senha. Por exemplo, no Tutorial 1 (veja o Tutorial 1: Como criar e carregar a imagem), você usa o comando docker login para autenticar o Docker com um registro. Este método só estará disponível se o administrador de conta permitir que o usuário utilize autenticação de nome de usuário/senha.

  • Use Snowflake CLI: A CLI Snowflake oferece suporte a todas as formas de autenticação Snowflake.

    • Para o cliente Docker, use o comando snow spcs image-registry login para autenticar o Docker com um registro.

    • Para qualquer cliente (incluindo Docker), a CLI Snowflake também oferece a opção de primeiro gerar um token de autenticação e usá-lo para autenticar o cliente. Para obter mais informações, consulte snow spcs image-registry token.

Repositório de imagens

Um registro é um serviço que atende ao OCIv2 API e um repositório é uma unidade de armazenamento que você cria dentro do serviço.

Um repositório é um local nomeado em sua conta onde você armazena imagens. Isso é semelhante ao relacionamento entre DBMS e uma tabela dentro de DBMS. Ou seja, um DBMS equivale a um registro e uma tabela equivale a um repositório.

Você pode criar um ou mais repositórios em sua conta Snowflake. Por exemplo, os repositórios DEV, TEST e PROD podem armazenar imagens durante o desenvolvimento, teste e produção. Você também pode criar repositórios com permissões diferentes; por exemplo, alguns repositórios podem ser somente leitura para algumas funções.

O controle de acesso é suportado no nível do repositório; o controle de acesso individual em nível de imagem não é suportado.

Para carregar imagens em um repositório de imagens, o serviço de registro oferece várias opções de autenticação e login único (SSO).

Atenção

Os repositórios de imagens do Snowpark Container Services não são compatíveis com Tri-Secret Secure e Periodic Rekeying. Isso significa que se sua conta tiver habilitado o Tri-Secret Secure ou a Periodic Rekeying, enquanto todos os outros dados do Snowflake continuarão a ter segurança adicional, quaisquer imagens armazenadas em seus repositórios de imagens do Snowpark Container Services não se beneficiarão dessa segurança adicional.

Para criar um repositório de imagens em uma conta com Tri-Secret Secure ou Periodic Rekeying, você deve primeiro confirmar que entende e concorda em continuar sem o benefício desta segurança adicional para seus repositórios de imagens. Para confirmar o acordo, um administrador da conta (usuário com a função ACCOUNTADMIN) precisará definir o parâmetro no nível da conta ENABLE_TRI_SECRET_AND_REKEY_OPT_OUT_FOR_IMAGE_REPOSITORY como TRUE.

URL do repositório de imagens

A seguir está uma sintaxe geral para um URL do repositório Snowflake:

<registry-hostname>/<db_name>/<schema_name>/<repository_name>

Por exemplo,

myorg-myacct.registry.snowflake.com/my_db/my_schema/my_repository

Para buscar o URL do repositório na sua conta, use o comando SHOW IMAGE REPOSITORIES SQL.

Nota

  • O URL do Snowflake codifica o caractere $, que é o único caractere diferente de URL que o Snowflake suporta em identificadores (consulte Requisitos do identificador). Nomes entre aspas duplas que contêm caracteres especiais não são suportados.

  • Ao criar manualmente um URL do repositório, substitua um sublinhado no nome de uma conta (my_acct) por um traço (my-acct).

Operações de repositório

Para criar e gerenciar repositórios, o Snowflake oferece suporte às seguintes operações de repositório:

  • CREATE IMAGE REPOSITORY

  • DROP IMAGE REPOSITORY

  • SHOW IMAGE REPOSITORIES

Para listar imagens armazenadas em um repositório de imagens Snowflake, use o seguinte comando:

Para ver um exemplo de criação de um repositório e upload de uma imagem, consulte o Tutorial de configuração comum.

Privilégios de repositório

Ao trabalhar com um repositório, o seguinte modelo de privilégio se aplica:

  • Para criar um repositório em um esquema, você deve ter o privilégio CREATE IMAGE REPOSITORY no esquema.

  • Para gerenciamento de repositório, os seguintes privilégios (recursos) são suportados:

    Privilégio

    Uso

    READ

    Permite listar e baixar imagens de um repositório.

    WRITE

    Permite listar e baixar imagens de um repositório. Você também pode enviar imagens para o repositório.

    OWNERSHIP

    Permite listar e baixar imagens de um repositório. Você também pode enviar imagens para o repositório.

    SERVICE READ

    Permite que um serviço de contêiner liste e baixe imagens de um repositório. Isso é necessário para a etapa de construção da imagem do serviço de modelos.

    SERVICE WRITE

    Permite que um serviço de contêiner envie imagens para o repositório. Isso é necessário para a etapa de construção da imagem do serviço de modelos.

Diretrizes e limitações

  • Atualmente não é possível descartar imagens de um repositório. Você pode descartar um repositório, mas isso removerá todas as imagens.