Manifest-Datei für eine App mit Containern erstellen

Unter diesem Thema werden die Komponenten der Datei manifest.yml in Snowflake Native Apps with Snowpark Container Services beschrieben. Weitere allgemeine Informationen zur manifest.yml-Datei finden Sie unter Manifest-Datei für ein Anwendungspaket erstellen.

Von der App verwendete Container-Images angeben

Um den Speicherort der Container-Images anzugeben, die von der App mit Containern verwendet werden, fügen Sie die Eigenschaft images zum Block artifacts.container_services hinzu.

Sie müssen für jedes Image einen Eintrag einfügen. Der angegebene Pfad enthält die Namen von Datenbank, Schema und Image-Repository. Diese Pfadangabe hat das folgende Format:

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

Das folgende Beispiel zeigt, wie die Eigenschaft images angegeben wird:

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

Benutzer-Schnittstellenendpunkt für eine App angeben

Um den Benutzerschnittstellen-Endpunkt der App mit Containern festzulegen, fügen Sie die Eigenschaft default_web_endpoint zum Block artifacts hinzu.

Die Eigenschaft default_web_endpoint ist optional. Wenn diese Eigenschaft angegeben ist, muss der Endpunkt auch in der Dienstspezifikationsdatei definiert sein.

Bemerkung

Es kann nur eine der beiden Optionen default_web_endpoint und default_streamlit angegeben werden.

Dieser Eintrag in der Manifest-Datei hat zwei zusätzliche Eigenschaften:

  • service

    Gibt den Namen des Dienstes der Benutzerschnittstelle an.

  • endpoint

    Gibt den Namen des Endpunkts an.

Das folgende Beispiel zeigt, wie Sie die Eigenschaft default_web_endpoint angeben.

default_web_endpoint:
  service: ux_schema.ux_service
  endpoint: ui
Copy

Für die App erforderliche Berechtigungen angeben

Wie bei anderen Apps gibt die Eigenschaft references der Datei manifest.yml die Referenzen an, die eine App von Verbrauchern anfordert. Die folgenden Berechtigungen sind spezifisch für eine App mit Containern:

  • CREATE COMPUTE POOL

    Diese Berechtigung ist erforderlich, damit die App einen Computepool im Verbraucherkonto erstellen kann. Sie ist nicht erforderlich, wenn der Verbraucher den Computepool manuell erstellt.

  • BIND SERVICE ENDPOINT

    Diese Berechtigung ist erforderlich, damit ein Endpunkt auch von außerhalb von Snowflake zugänglich ist.

Das folgende Beispiel zeigt, wie Sie diese Berechtigungen zum privileges-Block hinzufügen:

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

Beispiel einer Manifest-Datei für eine App mit Containern

Das Snowflake Native App Framework unterstützt Einträge in der Manifest-Datei, die für eine App mit Containern spezifisch sind. Die folgende Beispiel für die Datei manifest.yml zeigt eine typische Manifest-Datei für eine App mit Containern:

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