Tutorial 2: Eine App mit Containern erstellen¶
Einführung¶
Das Snowflake Native App Framework ermöglicht es Anbietern, eine App innerhalb der Snowflake Data Cloud zu erstellen, zu verkaufen und zu vertreiben. Anbieter können Apps erstellen, die die Kernfunktionen von Snowflake nutzen, um Daten und Anwendungslogik mit Verbrauchern zu teilen. Die Logik der Snowflake Native App kann Features wie gespeicherte Prozeduren und benutzerdefinierte Funktionen (UDFs) enthalten. Anbieter können ihre Anwendungen über den Snowflake Marketplace oder über private Freigabeangebote an Verbraucher weitergeben.
Eine Snowflake Native App kann Snowpark Container Services implementieren, das die Bereitstellung, Verwaltung und Skalierung von containerisierten Apps innerhalb des Snowflake-Ökosystems vereinfacht. In diesem Tutorial wird beschrieben, wie Sie ein Snowflake Native App with Snowpark Container Services erstellen. Dabei handelt es sich um eine Snowflake Native App, die Container-Workloads in Snowflake ausführt. Snowflake Native Apps with Snowpark Container Services können beliebige containerisierte Dienste ausführen und dabei alle Features des Snowflake Native App Framework nutzen, einschließlich Sicherheit, Protokollierung, Data Sharing und Anwendungslogik.
Bemerkung
Dieses Tutorial verwendet sowohl Snowflake CLI als auch Snowsight, um die erforderlichen Aufgaben auszuführen.
Was Sie in diesem Tutorial lernen¶
In diesem Tutorial lernen Sie Folgendes:
Verwenden der Snowflake CLI, um ein Snowflake Native App with Snowpark Container Services-Projekt zu initialisieren.
Erstellen eines Docker-Image für eine App.
Erstellen des Anwendungspakets und der erforderlichen Anwendungsdateien für eine Snowflake Native App with Snowpark Container Services.
Testen einer Snowflake Native App with Snowpark Container Services, indem die Dienstfunktion innerhalb des Containers aufgerufen wird.
Einrichten Ihrer Snowflake-Umgebung¶
Um dieses Tutorial auszuführen, müssen Sie die folgenden Voraussetzungen erfüllen:
Zugriff auf ein Snowflake-Konto, das Snowpark Container Services unterstützt.
Sie müssen in der Lage sein, mit der Rolle ACCOUNTADMIN die in diesem Tutorial verwendete Rolle zu erstellen und dieser Rolle die erforderlichen Berechtigungen zuzuweisen.
Sie müssen Snowflake CLI Version
3.0.0
oder höher auf Ihrem lokalen Computer installiert haben.Sie müssen Docker Desktop auf Ihrem lokalen Computer installiert haben.
Rolle für dieses Tutorial einrichten¶
Dieses Tutorial führt Sie durch den Prozess der Erstellung einer Snowflake Native App with Snowpark Container Services mit der Rolle tutorial_role
. Bevor Sie dieses Tutorial durcharbeiten können, muss ein Snowflake-Benutzer mit der Rolle ACCOUNTADMIN die folgenden Schritte ausführen, um diese Rolle zu konfigurieren.
Um die Rolle tutorial_role
zu erstellen und einzurichten, gehen Sie wie folgt vor:
Führen Sie den folgenden Befehl aus, um die Rollen
tutorial_role
zu erstellen:CREATE ROLE tutorial_role;
Um dem Snowflake Benutzer, der das Tutorial durchführt, die
tutorial_role
zuzuweisen, führen Sie den folgenden Befehl aus:GRANT ROLE tutorial_role TO USER <user_name>;
Wobei:
user_name
Gibt den Namen des Benutzers an, der das Tutorial durchführt.
Um die Berechtigungen zu erteilen, die zum Erstellen und Verwenden der von einer Container-App benötigten Snowflake-Objekte erforderlich sind, führen Sie die folgenden Befehle aus:
GRANT CREATE INTEGRATION ON ACCOUNT TO ROLE tutorial_role; GRANT CREATE WAREHOUSE ON ACCOUNT TO ROLE tutorial_role; GRANT CREATE DATABASE ON ACCOUNT TO ROLE tutorial_role; GRANT CREATE APPLICATION PACKAGE ON ACCOUNT TO ROLE tutorial_role; GRANT CREATE APPLICATION ON ACCOUNT TO ROLE tutorial_role; GRANT CREATE COMPUTE POOL ON ACCOUNT TO ROLE tutorial_role WITH GRANT OPTION; GRANT BIND SERVICE ENDPOINT ON ACCOUNT TO ROLE tutorial_role WITH GRANT OPTION;
Nachdem Sie die Aufgaben dieses Abschnitts ausgeführt haben, hat der Benutzer, dem die Rolle tutorial_role
für sein Konto zugewiesen wurde, die Berechtigung, alle Snowflake-Objekte zu erstellen, die für das Erstellen einer Snowflake Native App with Snowpark Container Services erforderlich sind.
Sie werden diese Rolle für den Rest des Tutorials verwenden.
In einer realen Situation benötigt ein Anbieter möglicherweise ähnliche Berechtigungen oder Zugriff auf bestehende Objekte, um eine App mit Containern zu entwickeln, einschließlich Computepool, Warehouse und Datenbank.
Erforderliche Objekte in Ihrem Konto erstellen¶
In diesem Abschnitt werden Sie die Snowflake-Objekte erstellen, die für eine App mit Containern benötigt werden.
Warehouse und Image-Repository erstellen¶
Um die benötigten Objekte zu erstellen, führen Sie entweder über Snowsight oder Snowflake CLI folgende Schritte aus.
Um den aktuellen Kontext in Snowsight so einzustellen, dass die Rolle
tutorial_role
verwendet wird, führen Sie den folgenden Befehl aus:USE ROLE tutorial_role;
Wenn Sie Snowflake CLI verwenden, können Sie stattdessen
--role tutorial_role
verwenden.Um ein Warehouse für die Snowflake Native App with Snowpark Container Services zu erstellen, führen Sie den folgenden Befehl aus:
CREATE OR REPLACE WAREHOUSE tutorial_warehouse WITH WAREHOUSE_SIZE = 'X-SMALL' AUTO_SUSPEND = 180 AUTO_RESUME = true INITIALLY_SUSPENDED = false;
Ein Warehouse wird von der Snowflake Native App benötigt, um SQL-Befehle und gespeicherte Prozeduren auszuführen.
Um das Image-Repository zu erstellen, das zum Speichern des Containers verwendet wird, führen Sie den folgenden Befehl aus:
CREATE DATABASE tutorial_image_database; CREATE SCHEMA tutorial_image_schema; CREATE IMAGE REPOSITORY tutorial_image_repo;
In diesem Abschnitt haben Sie ein Warehouse erstellt, das zum Ausführen von Abfragen für die von Ihnen erstellte App verwendet wird, sowie ein Image-Repository, das Container-Images hostet.
Im nächsten Abschnitt erstellen Sie ein Image für den Container und laden es in das zuvor erstellte Image-Repository hoch.
Erstellen einer Snowflake CLI-Verbindung für das Tutorial¶
Um die Snowflake CLI-Befehle in diesem Tutorial auszuführen, müssen Sie eine Snowflake CLI-Verbindung für das Tutorial einrichten.
Um eine Verbindung herzustellen, gehen Sie wie folgt vor:
Führen Sie vom Terminal aus den folgenden Befehl aus:
snow connection add
Geben Sie
tut-connection
als Namen für die Verbindung ein.Geben Sie zusätzliche Informationen für die Snowflake CLI-Verbindung ein.
Die spezifischen Werte, die Sie verwenden, hängen von Ihrem Snowflake-Konto ab. Sie müssen jedoch die folgenden Werte für die Eigenschaften der Rolle, des Warehouses, der Datenbank und des Schemas verwenden:
Parameter
Erforderlicher Wert
Rolle für die Verbindung
tutorial_role
Warehouse für die Verbindung
tutorial_warehouse
Datenbank für die Verbindung
tutorial_image_database
Schema für die Verbindung
tutorial_image_schema
Überprüfen Sie die Verbindung, indem Sie den folgenden Befehl ausführen:
snow connection test -c tut-connection
Die Ausgabe dieses Befehls sollte ungefähr wie folgt aussehen:
+----------------------------------------------------------------------------------+ | key | value | |-----------------+----------------------------------------------------------------| | Connection name | tut-connection | | Status | OK | | Host | USER_ACCOUNT.snowflakecomputing.com | | Account | USER_ACCOUNT | | User | tutorial_user | | Role | TUTORIAL_ROLE | | Database | TUTORIAL_IMAGE_DATABASE | | Warehouse | TUTORIAL_WAREHOUSE | +----------------------------------------------------------------------------------+
Vorsicht
Wenn Sie die Verbindung tut-connection
nicht erstellen, müssen Sie eine Verbindung verwenden, die die richtigen Werte für die Eigenschaften von Rolle, Datenbank und Warehouse-Verbindung angibt.
Projekt für die App einrichten¶
Im vorherigen Abschnitt haben Sie eine Snowflake CLI-Verbindung für das Tutorial eingerichtet.
In diesem Abschnitt verwenden Sie Snowflake CLI, um ein Projekt für Ihre App zu erstellen. Ein Projekt enthält alle Assets, die für eine App benötigt werden. Diese Dateien werden auf Ihrem lokalen Dateisystem gespeichert und können von einem Versionskontrollsystem als Teil Ihres Entwicklungs-Workflows verwaltet werden.
Projektdatei mit dem Snowflake CLI erstellen¶
Um eine Projektdatei zu erstellen, führen Sie den folgenden Befehl aus:
snow init --template app_basic na-spcs-tutorial
Geben Sie einen Wert für den Projektbezeichner ein.
Sie werden in späteren Unterabschnitten weitere Dateien und Unterordner zu diesem Ordner hinzufügen und die von diesem Befehl erstellten Dateien bearbeiten.
Dieser Befehl erstellt einen Ordner mit dem Namen na-spcs-tutorial
unter Verwendung der Projektvorlage app_basic
.
Innerhalb des Ordners na-spcs-tutorial
erstellt dieser Befehl die folgenden Dateien und Ordner:
├── README.md
├── app
└── manifest.yml
└── README.md
└── setup_script.sql
├── snowflake.yml
In späteren Abschnitten ändern Sie diese Dateien und fügen zusätzliche Ressourcen zu Ihrer App hinzu.
Servicedateien zum App-Projekt hinzufügen¶
Im vorigen Abschnitt haben Sie ein Projekt erstellt, das die für Ihre Anwendung erforderlichen Standardanwendungsdateien enthält. In diesem Abschnitt fügen Sie die erforderlichen Dateien hinzu, um die Container für Ihre App zu erstellen.
Erstellen Sie innerhalb des Ordners
na-spcs-tutorial
einen Ordner mit dem Namenservice
.Dieser Ordner enthält den Quellcode für den Container-basierten Dienst, den wir erstellen und in Snowflake veröffentlichen werden.
Um die für das Tutorial benötigten Docker-Dateien zu erhalten, laden Sie die Datei
na_spcs_tutorial.zip
auf Ihr lokales Dateisystem herunter.Entpacken Sie den Inhalt der Zip-Datei in den Ordner
na-spcs-tutorial/service
. Dieser Ordner sollte die folgenden Dateien enthalten:echo_service.py
Dockerfile
templates/basic_ui.html
echo_spec.yaml
Überprüfen Sie die Verzeichnisstruktur Ihres Projekts¶
Nachdem Sie das Projekt für Ihre App erstellt und die Dateien für den Dienst und den Docker-Container hinzugefügt haben, sollte das Projekt im Ordner na-spcs-tutorial
die folgende Struktur aufweisen:
├── app
└── manifest.yml
└── README.md
└── setup_script.sql
├── README.md
├── service
└── echo_service.py
├── echo_spec.yaml
├── Dockerfile
└── templates
└── basic_ui.html
├── snowflake.yml
Image für einen Snowpark Container Services-Dienst erstellen¶
In diesem Abschnitt erstellen Sie ein Docker-Image und laden es in das Image-Repository hoch, das Sie im vorherigen Abschnitt erstellt haben.
Docker-Image erstellen und in das Image-Repository hochladen¶
Um ein Docker-Image zu erstellen und es in das Image-Repository hochzuladen, gehen Sie wie folgt vor:
Wechseln Sie in einem Terminalfenster in den Ordner
na-spcs-tutorial/service
.Führen Sie den folgenden Docker CLI-Befehl aus. Beachten Sie, dass Sie in dem Befehl das aktuelle Verzeichnis (.) angeben müssen:
docker build --rm --platform linux/amd64 -t my_echo_service_image:tutorial .
Dieser Befehl führt Folgendes aus:
Erstellt ein Docker-Image anhand der Docker-Datei, die in der heruntergeladenen ZIP-Datei enthalten ist.
Benennt das Image
my_echo_service_image
.Wendet das Tag
tutorial
auf das Image an.
Um die URL des Image-Repositorys zu identifizieren, das Sie in einem früheren Abschnitt erstellt haben, führen Sie den folgenden Befehl aus:
REPO_URL=$(snow spcs image-repository url tutorial_image_database.tutorial_image_schema.tutorial_image_repo -c tut-connection) echo $REPO_URL
Die URL des Image-Repositorys wird in der Variable
$REPO_URL
erfasst und anschließend auf der Konsole ausgegeben. Sie benötigen diesen Wert im nächsten Schritt.Um ein Tag für das Image zu erstellen, das die Image-URL enthält, führen Sie den folgenden Docker CLI-Befehl aus:
docker tag <image_name> <image_url>/<image_name>
Dieser Befehl erfordert zwei Parameter:
<image_name>
gibt den Namen von Image und Tag an.<image_url>/<image_name>
gibt die URL des Image-Repositorys an, in das das Image hochgeladen wird, sowie den Image-Namen und das Tag, wo das Image im externen Repository gespeichert werden soll.
Verwenden Sie für dieses Tutorial
$REPO_URL
undmy_echo_service_image:tutorial
:docker tag my_echo_service_image:tutorial $REPO_URL/my_echo_service_image:tutorial
Um sich mit der Snowflake-Registry zu authentifizieren, führen Sie den folgenden Snowflake CLI-Befehl aus:
snow spcs image-registry login -c tut-connection
Mit diesem Befehl werden die erforderlichen Anmeldeinformationen geladen, die Docker CLI benötigt, um die Image-Repositorys in Ihrem Snowflake-Konto zu verwenden. Wenn Sie nicht die Standardeinstellung verwenden, müssen Sie den Namen der Verbindung angeben.
Wenn alles erfolgreich war, wird die Meldung
Login Succeeded
angezeigt.Um das Docker-Image in das Image-Repository hochzuladen, führen Sie den folgenden
docker push
-Befehl aus:docker push $REPO_URL/<image_name>
Wenn Sie denselben Wert wie
<image_name>
aus den vorherigen Schritten verwenden, lautet dieser Befehl:docker push $REPO_URL/my_echo_service_image:tutorial
Bestätigen Sie, dass das Image erfolgreich hochgeladen wurde, indem Sie den folgenden Befehl ausführen:
snow spcs image-repository list-images tutorial_image_database.tutorial_image_schema.tutorial_image_repo -c tut-connection
In diesem Abschnitt haben Sie ein Docker-Image erstellt, das den Echo-Dienst enthält, und dieses Image in das Image-Repository tutorial_repository
verschoben, das Sie zuvor in diesem Tutorial erstellt haben.
Im nächsten Abschnitt werden Sie ein Anwendungspaket erstellen, das dieses Image verwendet.
Snowflake Native App entwickeln¶
In einem früheren Abschnitt haben Sie die Snowflake CLI verwendet, um eine Projektdatei auf der Grundlage einer Projektvorlage zu erstellen. Diese Vorlage erstellt Standardversionen der von der Anwendung benötigten Dateien.
In diesem Abschnitt aktualisieren Sie diese Standarddateien für Ihre App:
- Projektdefinitionsdatei
Eine YAML-Datei, die Informationen über die Snowflake-Objekte enthält, die Sie erstellen möchten. Diese Datei heißt
snowflake.yml
und wird von Snowflake CLI verwendet, um das Anwendungspaket und das Objekt in Ihrem Konto bereitzustellen.- Manifest-Datei
Eine YAML-Datei, die grundlegende Konfigurations- und Callback-Informationen zu der Anwendung enthält. Diese Datei heißt
manifest.yml
.- Setup-Skript
Ein SQL-Skript, das automatisch ausgeführt wird, wenn ein Verbraucher eine Anwendung in seinem Konto installiert. Sie können diese Datei nennen, wie Sie möchten, solange Ihre Manifest-Datei auf sie verweist.
Die erste Datei wird von Snowflake CLI verwendet, während die beiden anderen von Snowflake Native App Framework benötigt werden.
Sie werden im Laufe dieses Tutorials mehr über diese Dateien und deren Inhalt erfahren.
In diesem Abschnitt erstellen Sie auch eine Readme-Datei, die beim Anzeigen und Veröffentlichen Ihrer App nützlich ist.
Standard-Manifestdatei ändern¶
Um die Manifestdatei für die App zu ändern, gehen Sie wie folgt vor:
Ändern Sie die Datei
na-spcs-tutorial/app/manifest.yml
so, dass sie Folgendes enthält:manifest_version: 1 artifacts: setup_script: setup_script.sql readme: README.md container_services: images: - /tutorial_image_database/tutorial_image_schema/tutorial_image_repo/my_echo_service_image:tutorial privileges: - BIND SERVICE ENDPOINT: description: "A service that can respond to requests from public endpoints." - CREATE COMPUTE POOL: description: "Permission to create compute pools for running services"
Dieses Beispiel enthält die folgenden Eigenschaften:
Die Eigenschaft
artifacts
gibt die Speicherorte der Ressourcen an, die von einer App mit Containern benötigt werden, einschließlich des Speicherorts des Docker-Images, das Sie in einem vorherigen Schritt erstellt haben, sowie die Projekt-README, die in Snowsight sichtbar sein wird.Die Eigenschaft
privileges
ermöglicht es einem Dienst, auf öffentliche Anforderungen zu antworten und seinen eigenen Computepool zu erstellen. Diese Eigenschaften werden für die Instanziierung unseres Dienstes im nächsten Schritt des Tutorials benötigt.
Standard-Setup-Skript ändern¶
Um das Standard-Setup-Skript für das Anwendungspaket zu ändern, gehen Sie wie folgt vor:
Ändern Sie die Datei
na-spcs-tutorial/app/setup_script.sql
so, dass Sie Folgendes enthält:CREATE APPLICATION ROLE IF NOT EXISTS app_user; CREATE SCHEMA IF NOT EXISTS core; GRANT USAGE ON SCHEMA core TO APPLICATION ROLE app_user; CREATE OR ALTER VERSIONED SCHEMA app_public; GRANT USAGE ON SCHEMA app_public TO APPLICATION ROLE app_user; CREATE OR REPLACE PROCEDURE app_public.start_app() RETURNS string LANGUAGE sql AS $$ BEGIN -- account-level compute pool object prefixed with app name to prevent clashes LET pool_name := (SELECT CURRENT_DATABASE()) || '_compute_pool'; CREATE COMPUTE POOL IF NOT EXISTS IDENTIFIER(:pool_name) MIN_NODES = 1 MAX_NODES = 1 INSTANCE_FAMILY = CPU_X64_XS AUTO_RESUME = true; CREATE SERVICE IF NOT EXISTS core.echo_service IN COMPUTE POOL identifier(:pool_name) FROM spec='service/echo_spec.yaml'; CREATE OR REPLACE FUNCTION core.my_echo_udf (TEXT VARCHAR) RETURNS varchar SERVICE=core.echo_service ENDPOINT=echoendpoint AS '/echo'; GRANT USAGE ON FUNCTION core.my_echo_udf (varchar) TO APPLICATION ROLE app_user; RETURN 'Service successfully created'; END; $$; GRANT USAGE ON PROCEDURE app_public.start_app() TO APPLICATION ROLE app_user; CREATE OR REPLACE PROCEDURE app_public.service_status() RETURNS TABLE () LANGUAGE SQL EXECUTE AS OWNER AS $$ BEGIN LET stmt VARCHAR := 'SHOW SERVICE CONTAINERS IN SERVICE core.echo_service; LET res RESULTSET := (EXECUTE IMMEDIATE :stmt); RETURN TABLE(res); END; $$; GRANT USAGE ON PROCEDURE app_public.service_status() TO APPLICATION ROLE app_user;
Standard-README ändern¶
Um die README-Datei für die App zu ändern, gehen Sie wie folgt vor:
Ändern Sie die Datei
na-spcs-tutorial/app/README.md
so, dass sie Folgendes enthält:Welcome to your first app with containers!
Diese README-Datei ist für Verbraucher sichtbar, nachdem sie Ihre App installiert haben.
Standard-Projektdefinitionsdatei ändern¶
In diesem Abschnitt ändern Sie die Projektdefinitionsdateien, die von Snowflake CLI verwendet wird.
Ändern Sie die Datei
na-spcs-tutorial/snowflake.yml
so, dass sie Folgendes enthält:definition_version: 2 entities: na_spcs_tutorial_pkg: type: application package manifest: app/manifest.yml artifacts: - src: app/* dest: ./ - service/echo_spec.yaml meta: role: tutorial_role warehouse: tutorial_warehouse na_spcs_tutorial_app: type: application from: target: na_spcs_tutorial_pkg debug: false meta: role: tutorial_role warehouse: tutorial_warehouse
In diesem Abschnitt haben Sie eine lokale Dateistruktur definiert, die einem Snowflake-Konto als Snowflake Native App with Snowpark Container Services bereitgestellt werden kann. Im nächsten Abschnitt werden Sie diese Bereitstellung mit Snowflake CLI ausführen.
App erstellen und testen¶
Nachdem Sie die Manifest-Datei, das Setup-Skript und die Dienstspezifikation für Ihre Snowflake Native App with Snowpark Container Services definiert haben, können Sie die App testen, indem Sie sie mit Snowflake CLI auf Ihrem Konto bereitstellen.
Laden Sie Dateien in den Stagingbereich hoch und erstellen Sie das Anwendungsobjekt¶
Um eine App im Entwicklungsmodus zu erstellen, gehen Sie wie folgt vor:
Wechseln Sie in einem Terminal in den Ordner
na-spcs-tutorial
.Erstellen Sie das Anwendungspaket und das Objekt in Ihrem Konto, indem Sie den folgenden Befehl ausführen:
snow app run -c tut-connection
Dieser Befehl zeigt eine Bestätigung an, dass ein Anwendungspaket namens
na_spcs_tutorial_pkg
und ein Anwendungsobjekt namensna_spcs_tutorial_app
in Ihrem Konto erstellt wurden. Diese Namen entsprechen den Namen in der Projektdefinitionsdateisnowflake.yml
, die Sie in einem vorherigen Abschnitt geändert haben.
Sie können die URL-Ausgabe auf der Konsole verwenden, um die Anwendung anzuzeigen. Sie müssen jedoch zunächst sicherstellen, dass die Anwendung über alle erforderlichen Berechtigungen verfügt, um ihren containerbasierten Dienst zu erstellen.
Berechtigungen erteilen und App testen¶
In diesem Abschnitt erteilen Sie der App die erforderlichen Berechtigungen und testen die App, indem Sie die Dienste im Container aufrufen.
Sie können die SQL-Befehle entweder über Snowsight oder Snowflake CLI ausführen.
Um die Berechtigungen zu erteilen und die App zu testen, führen Sie die folgenden Schritte in einem Snowflake-Arbeitsblatt aus:
Erteilen Sie der App die Berechtigung
CREATE COMPUTE POOL
, indem Sie Folgendes ausführen:GRANT CREATE COMPUTE POOL ON ACCOUNT TO APPLICATION na_spcs_tutorial_app; GRANT BIND SERVICE ENDPOINT ON ACCOUNT TO APPLICATION na_spcs_tutorial_app;
Führen Sie die Prozedur
app_public.start_app
aus, die wir in der Dateisetup_script.sql
definiert haben.CALL na_spcs_tutorial_app.app_public.start_app();
Diese Prozedur erstellt den Computepool, instanziiert den Dienst und erstellt die Dienstfunktion.
Bestätigen Sie, dass die Funktion erstellt wurde, indem Sie Folgendes ausführen:
SHOW FUNCTIONS LIKE '%my_echo_udf%' IN APPLICATION na_spcs_tutorial_app;
Bemerkung
Verbraucher können den aktivierten Dienst nicht sehen, da er als Teil der Snowflake Native App ausgeführt wird. Wenn Sie zum Beispiel
SHOW SERVICES IN APPLICATION na_spcs_tutorial_app;
ausführen, ist das Ergebnis leer.Um zu überprüfen, ob der Dienst erstellt wurde und funktioniert, führen Sie den folgenden Befehl aus:
CALL na_spcs_tutorial_app.app_public.service_status();
Diese Anweisung ruft die Prozedur
app_public.service_status
auf, die Sie im Setup-Skript definiert haben. Die Prozedur gibt Informationen über die Container für diesen Dienst zurück.Wenn der Wert in der Spalte
status
nichtREADY
ist, führen Sie die Anweisung erneut aus, bis der Status des DienstcontainersREADY
lautet.Um die Dienstfunktion aufzurufen, um eine Anfrage an den Dienst zu senden und die Antwort zu überprüfen, führen Sie den folgenden Befehl aus:
SELECT na_spcs_tutorial_app.core.my_echo_udf('hello');
Es wird die folgende Meldung von dem Dienst angezeigt, den Sie in einem früheren Abschnitt konfiguriert haben:
``Bob said hello``
App und Objekte beseitigen, die im Tutorial erstellt wurden¶
Vorsicht
Wenn Sie planen, das Tutorial 3: Upgrade einer App mit Containern nach Abschluss dieses Tutorials durchzuführen, führen Sie die Schritte in diesem Abschnitt nicht aus. Die App mit Containern, die Sie in diesem Tutorial erstellt haben, ist eine Voraussetzung für das Upgrade-Tutorial.
Da die App einen Computepool verwendet, werden Credits von Ihrem Konto genutzt, sodass die Ausführung Geld kostet. Um die Anwendung daran zu hindern, Ressourcen zu verbrauchen, müssen Sie sowohl das Anwendungsobjekt als auch alle von ihm erstellten Objekte auf Kontoebene, z. B. den Computepool, abbauen.
Um zu überprüfen, ob der Computepool derzeit ausgeführt wird, führen Sie den folgenden Befehl aus:
snow object list compute-pool -l "na_spcs_tutorial_app_%"
Wenn der Computepool ausgeführt wird, wird eine Zeile mit einem
ACTIVE
Computepool angezeigt, der von dem Anwendungsobjekt erstellt wurde.Führen Sie den folgenden Snowflake CLI-Befehl aus, um die App zu beseitigen:
snow app teardown --cascade --force -c tut-connection
Mit diesem Befehl werden alle von der App erstellten Snowflake-Objekte entfernt. Ohne die Option
--force
löscht dieser Befehl das Anwendungspaket nicht, da es Versionen enthält.Um zu überprüfen, ob der Computepool gelöscht wurde, führen Sie den folgenden Befehl aus:
snow object list compute-pool -l "na_spcs_tutorial_app_%"
Dieser Befehl gibt
no data
zurück, wenn der Computepool erfolgreich gelöscht wurde.
Bemerkung
Der Befehl snow app teardown
löscht sowohl das Anwendungspaket als auch das Anwendungsobjekt. Daher gehen alle zustandsabhängigen Daten verloren.
Mehr erfahren¶
Herzlichen Glückwunsch! Sie haben nicht nur dieses Tutorial abgeschlossen, sondern auch den Lebenszyklus von Entwicklung und Veröffentlichung einer Snowflake Native App with Snowpark Container Services durchlaufen.
Auf dem Weg dorthin, haben Sie folgende Aufgaben ausgeführt:
Verwenden von Snowsight und Snowflake CLI, um eine Anwendung mit Snowflake Native App Framework zu erstellen.
Weitere Informationen zur Konfiguration der von Snowflake CLI verwendeten Konnektivität finden Sie unter Konfiguration von Snowflake CLI und Verbindung zu Snowflake.
Weitere Informationen zu Snowsight finden Sie unter Erste Schritte mit Arbeitsblättern und Mit Arbeitsblättern in Snowsight arbeiten.
Weitere Informationen zu Native Apps in Snowflake CLI finden Sie unter Verwenden von Snowflake Native App mit Snowflake CLI.
Erstellen des Manifests und des Setup-Skripts, die von allen Anwendungen benötigt werden
Weitere Informationen dazu finden Sie unter Manifest-Datei für ein Anwendungspaket erstellen und Setup-Skript erstellen.
Erstellen eines Anwendungspakets, das als Container für die Anwendungslogik und den Dateninhalt Ihrer Anwendung dient
Weitere Informationen dazu finden Sie unter Anwendungspaket erstellen.
Verwenden von Docker CLI und Snowflake CLI, um einen Container zu erstellen und in Snowflake hochzuladen.
Verwenden der Snowpark Container Services, um einen Container
COMPUTE POOL
zu erstellen und den Container innerhalb einer Snowflake Native App zu instanziieren.