Criação do arquivo do manifesto para um aplicativo com contêineres

O tópico descreve os componentes do arquivo manifest.yml em um Snowflake Native Apps with Snowpark Container Services. Para obter informações gerais sobre o arquivo manifest.yml, consulte Criação do arquivo de manifesto para um pacote de aplicativo.

Especificação das imagens de contêiner usadas pelo aplicativo

Para especificar a localização das imagens de contêiner usadas pelo aplicativo com contêineres, adicione a propriedade images para o bloco artifacts.container_services.

Você deve incluir uma entrada para cada imagem. O caminho especificado inclui o nome do banco de dados, o esquema e o repositório de imagens. Este caminho tem o seguinte formato:

/<database>/<schema>/<image_repository>/<image_name>:tag
Copy

O exemplo a seguir mostra como especificar a propriedade images:

artifacts
...
  container_services
    ...
    images
      - /dev_db/dev_schema/dev_repo/image1
      - /dev_db/dev_schema/dev_repo/image2
Copy

Especificação do ponto de extremidade da interface do usuário para um aplicativo

Para especificar o ponto de extremidade para a interface do usuário do aplicativo com contêineres, adicione a propriedade default_web_endpoint para o bloco artifacts.

A propriedade default_web_endpoint é opcional. Se esta propriedade for especificada, o ponto de extremidade também deverá ser definido no arquivo de especificação de serviço.

Nota

Apenas um dos default_web_endpoint e default_streamlit pode ser especificado.

Esta entrada no arquivo de manifesto tem duas propriedades adicionais:

  • service

    Especifica o nome do serviço da interface do usuário.

  • endpoint

    Especifica o nome do ponto de extremidade.

O exemplo a seguir mostra como especificar a propriedade default_web_endpoint.

default_web_endpoint:
  service: ux_schema.ux_service
  endpoint: ui
Copy

Especificação dos privilégios exigidos pelo aplicativo.

Assim como outros aplicativos, a propriedade references do arquivo manifest.yml especifica as referências que um aplicativo solicita dos consumidores. Os seguintes privilégios são específicos para um aplicativo com contêineres:

  • CREATE COMPUTE POOL

    Este privilégio é necessário para permitir que o aplicativo crie um pool de computação na conta do consumidor. Não é necessário se o consumidor criar o pool de computação manualmente.

  • BIND SERVICE ENDPOINT

    Este privilégio é necessário para permitir que um ponto de extremidade seja acessível fora do Snowflake.

O exemplo a seguir mostra como adicionar esses privilégios ao bloco privileges:

privileges:
- CREATE COMPUTE POOL
  description: 'Required to allow the app to create a compute pool in the consumer account.'
- BIND SERVICE ENDPOINT
  description: 'Required to allow endpoints to be externally accessible.'
Copy

Exemplo de arquivo de manifesto para um aplicativo com contêineres

O Snowflake Native App Framework oferece suporte a entradas no arquivo de manifesto que são específicas para um aplicativo com contêineres. No exemplo a seguir, manifest.yml mostra um arquivo de manifesto típico para um aplicativo com contêineres:

manifest_version: 1

version:
  name: v1

artifacts:
  readme: readme.md
  setup_script: setup.sql
  container_services:
    images
      - /dev_db/dev_schema/dev_repo/image1
      - /dev_db/dev_schema/dev_repo/image2

  default_web_endpoint:
    service: ux_schema.ux_service
    endpoint: ui

privileges:
 - CREATE COMPUTE POOL
   description: "...”
 - BIND SERVICE ENDPOINT
   description: "...”
Copy