Créer le fichier manifeste pour une application avec des conteneurs

La rubrique décrit les éléments du fichier manifest.yml dans un Snowflake Native Apps with Snowpark Container Services. Pour des informations générales sur le fichier manifest.yml, voir Création du fichier manifeste d’un paquet d’application.

Spécifier les images de conteneurs utilisées par l’application

Pour spécifier l’emplacement des images de conteneurs utilisées par l’application avec conteneurs, ajoutez la propriété images au bloc artifacts.container_services.

Vous devez inclure une entrée pour chaque image. Le chemin spécifié comprend le nom de la base de données, du schéma et du référentiel d’images. Ce chemin a la forme suivante :

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

L’exemple suivant montre comment spécifier la propriété images :

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

Spécifier le point de terminaison de l’interface utilisateur pour une application

Pour spécifier le point de terminaison de l’interface utilisateur de l’application avec conteneurs, ajoutez la propriété default_web_endpoint au bloc artifacts.

La valeur default_web_endpoint est facultative. Si cette propriété est spécifiée, le point de terminaison doit également être défini dans le fichier de spécification du service.

Note

Un seul des deux default_web_endpoint et default_streamlit peut être spécifié.

Cette entrée du fichier manifeste possède deux propriétés supplémentaires :

  • service

    Spécifie le nom du service de l’interface utilisateur.

  • endpoint

    Spécifie le nom du point de terminaison.

L’exemple suivant montre comment spécifier la propriété default_web_endpoint.

default_web_endpoint:
  service: ux_schema.ux_service
  endpoint: ui
Copy

Déterminer les privilèges requis par l’application

Comme pour les autres applications, la propriété references du fichier manifest.yml spécifie les références qu’une application demande aux consommateurs. Les privilèges suivants sont spécifiques à une application avec des conteneurs :

  • CREATE COMPUTE POOL

    Ce privilège est nécessaire pour permettre à l’appli de créer un pool de calcul dans le compte du consommateur. Il n’est pas nécessaire que le consommateur crée le pool de calcul manuellement.

  • BIND SERVICE ENDPOINT

    Ce privilège est nécessaire pour permettre à un point de terminaison d’être accessible en dehors de Snowflake.

L’exemple suivant montre comment ajouter ces privilèges au bloc 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

Exemple de fichier manifeste pour une application avec des conteneurs

Le Snowflake Native App Framework prend en charge les entrées du fichier manifeste qui sont spécifiques à une application avec des conteneurs. L’exemple suivant manifest.yml montre un fichier manifeste typique pour une application avec des conteneurs :

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