Manifest-Datei für eine App erstellen

In diesem Thema wird beschrieben, wie Sie die Manifest-Datei für eine App erstellen.

Allgemeine Informationen zur Manifest-Datei

Die Manifest-Datei enthält Informationen, die das Anwendungspaket benötigt, um einen Snowflake Native App zu erstellen und zu verwalten. Dazu gehören der Speicherort des Setup-Skripts, die Definitionen der Versionen und die Konfigurationsinformationen für die App.

Für die Manifest-Datei gelten folgende Anforderungen:

  • Der Name der Manifest-Datei muss manifest.yml sein.

  • Die Manifest-Datei muss in einen benannten Stagingbereich hochgeladen werden, damit das Anwendungspaket auf sie zugreifen kann.

  • Die Manifest-Datei muss im Stammverzeichnis der Verzeichnisstruktur im benannten Stagingbereich vorhanden sein, in dem auch andere Anwendungsdateien gespeichert sind.

Version 1 und Version 2 der Manifest-Datei

Snowflake Native Apps unterstützen zwei Versionen der Manifest-Datei. Die Version wird durch das Feld manifest_version angegeben.

manifest_version: 1

Diese Version der Manifest-Datei unterstützt die aktuelle und ältere Funktionalität von Snowflake Native Apps.

manifest_version: 2

Diese Version der Manifest-Datei bietet Unterstützung für zusätzliche Features, einschließlich der automatischen Zuweisung von Berechtigungen.

Sicherheitshinweise bei der Verwendung von Version 2 der Manifest-Datei

Wenn Sie Version 2 der Manifest-Datei verwenden, beachten Sie die folgenden Auswirkungen auf die Sicherheit:

Wenn ein Anbietender eine App für die Verwendung von manifest_version: 2 in der Manifest-Datei konfiguriert, ist die automatische Zuweisung von Berechtigungen aktiviert. Standardmäßig kann Snowflake auf diese Weise der App automatisch bestimmte Berechtigungen erteilen. Informationen zu den Berechtigungen, die der App automatisch erteilt werden können, finden Sie unter Berechtigungen, die durch das automatisierte Gewähren von Berechtigungen gewährt werden.

Während der Installation zeigt Snowsight eine Benachrichtigung über die von der App angefragten Berechtigungen an. Wenn ein Verbrauchender eine App installiert, die die automatische Erteilung von Berechtigungen verwendet, wird zugestimmt, dass der App diese Berechtigungen bei Upgrades erteilt werden können, ohne dass eine zusätzliche Zustimmung erforderlich ist.

Verbrauchende können Feature-Richtlinien erstellen, die die Objekte beschränken, die eine App erstellen kann. Weitere Informationen zum Erstellen von Feature-Richtlinien finden Sie unter Verwenden Sie Feature-Richtlinien, um die Objekte einzuschränken, die eine Anwendung erstellen kann.

Berechtigungen angeben, die für eine App mit Containern erforderlich sind

Wie auch bei anderen Apps, gibt das Feld privileges der Manifest-Datei die Berechtigungen an, die eine App mit Containern von Verbrauchenden 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

Container-Images angeben, die von einer App mit Containern verwendet werden

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

Schnittstellenendpunkt des Benutzenden für eine App mit Containern 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

Beispiele für Manifest-Dateien

Die folgenden Beispiele zeigen typische Manifest-Dateien für verschiedene Arten von Anwendungsfällen.

Beispiel einer Manifest-Datei für die Verwendung der automatischen Zuweisung von Berechtigungen

Die folgende Manifest-Datei zeigt, wie Sie eine App für die automatische Zuweisung von Berechtigungen konfigurieren. Dieses Beispiel verwendet Version 2 der Manifest-Datei. Der Block privileges gibt die Berechtigungen an, die die App benötigt.

manifest_version: 2
version:
  name: v1
artifacts:
  readme: readme.md
  setup_script: setup.sql
privileges:
  - CREATE TABLE:
    description: "Allows the app to create tables in the consumer account"
  - CREATE WAREHOUSE:
    description: "Allows the app to create warehouses in the consumer account"
Copy

Wenn die App installiert wird, gewährt Snowflake automatisch die Berechtigungen CREATE TABLE und CREATE WAREHOUSE für die App.

Beispiel für Manifest-Dateien für eine App mit Containern

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

manifest_version: 2
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