ALTER SERVICE¶
Ändert die Konfiguration von Snowpark Container Services-Diensten, aktualisiert den Code von Diensten und ermöglicht Ihnen das Anhalten oder Fortsetzen eines Dienstes. Sie können Folgendes tun:
Anwenden von Änderungen auf einen aktiven Dienst. Sie können zum Beispiel einen Dienst anhalten oder fortsetzen und die Anzahl der in Ausführung befindlichen Dienstinstanzen aktualisieren.
Anwenden von Änderungen, die erst nach dem Neustart des Dienstes wirksam werden. Geben Sie beispielsweise ein Standard-Warehouse für Abfragen an.
Anwenden von Änderungen, die dazu führen, dass Snowflake den Dienst herunterfährt und ihn mit neuem Code neu startet. Sie könnten so beispielweise aktualisierten Dienstcode bereitstellen.
Starten Sie die angegebenen Instanzen eines Dienstes unter Verwendung des Snapshots neu, der als anfänglicher Inhalt für das angegebene Volume bereitgestellt wurde. Der Dienst muss angehalten werden, bevor Sie ALTER SERVICE ausführen.
- Siehe auch:
CREATE SERVICE, DESCRIBE SERVICE, DROP SERVICE, SHOW SERVICES
Syntax¶
ALTER SERVICE [ IF EXISTS ] <name> { SUSPEND | RESUME }
ALTER SERVICE [ IF EXISTS ] <name>
{
fromSpecification
| fromSpecificationTemplate
}
ALTER SERVICE [IF EXISTS] <service_name> RESTORE VOLUME <volume_name>
INSTANCES <comma_separated_instance_ids>
FROM SNAPSHOT <snapshot_name>
ALTER SERVICE [ IF EXISTS ] <name> SET [ MIN_INSTANCES = <num> ]
[ MAX_INSTANCES = <num> ]
[ LOG_LEVEL = '<log_level>' ]
[ AUTO_SUSPEND_SECS = <num> ]
[ MIN_READY_INSTANCES = <num> ]
[ QUERY_WAREHOUSE = <warehouse_name> ]
[ AUTO_RESUME = { TRUE | FALSE } ]
[ EXTERNAL_ACCESS_INTEGRATIONS = ( <EAI_name> [ , ... ] ) ]
[ COMMENT = '<string_literal>' ]
ALTER SERVICE [ IF EXISTS ] <name> UNSET { MIN_INSTANCES |
AUTO_SUSPEND_SECS |
MAX_INSTANCES |
LOG_LEVEL |
MIN_READY_INSTANCES |
QUERY_WAREHOUSE |
AUTO_RESUME |
EXTERNAL_ACCESS_INTEGRATIONS |
COMMENT
}
[ , ... ]
ALTER SERVICE [ IF EXISTS ] <name> SET [ TAG <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' ... ]]
Wobei:
fromSpecification ::= { FROM SPECIFICATION_FILE = '<yaml_file_path>' -- for native app service. | FROM @<stage> SPECIFICATION_FILE = '<yaml_file_path>' -- for non-native app service. | FROM SPECIFICATION <specification_text> }fromSpecificationTemplate ::= { FROM SPECIFICATION_TEMPLATE_FILE = '<yaml_file_path>' -- for native app service. | FROM @<stage> SPECIFICATION_TEMPLATE_FILE = '<yaml_file_path>' -- for non-native app service. | FROM SPECIFICATION_TEMPLATE <specification_text> } USING ( <key> => <value> [ , <key> => <value> [ , ... ] ] )
Parameter¶
nameGibt den Bezeichner für den zu ändernden Server an.
Wenn der Bezeichner Leerzeichen oder Sonderzeichen enthält, muss die gesamte Zeichenfolge in doppelte Anführungszeichen gesetzt werden. Bei Bezeichnern, die in doppelte Anführungszeichen eingeschlossen sind, ist auch die Groß- und Kleinschreibung zu beachten.
Weitere Informationen dazu finden Sie unter Anforderungen an Bezeichner.
{ SUSPEND | RESUME }Gibt an, ob der Dienst angehalten oder fortgesetzt werden soll.
Wenn Sie einen Dienst anhalten, wird Snowflake heruntergefahren und die Container werden gelöscht. Wenn Sie später einen angehaltenen Dienst fortsetzen, erstellt Snowflake die Container neu. Das heißt, Snowflake verwendet das Image aus Ihrem Repository und startet die Container. Beachten Sie, dass Snowflake dieselbe Image-Version bereitstellt, da es sich nicht um eine Aktualisierungsoperation des Dienstes handelt.
Wenn Sie einen angehaltenen Dienst entweder über eine Dienstfunktion oder über den öffentlichen Endpunkt (Dateneingang) aufrufen, setzt Snowflake den Dienst automatisch fort.
FROM ...Bezeichnet die Spezifikation oder die Spezifikationsvorlage für den Dienst.
Verwendung einer Dienstspezifikation
Sie können die Spezifikation entweder inline oder in einer separaten Datei definieren.
SPECIFICATION_FILE = 'yaml_file_path'oder .@stage SPECIFICATION_FILE = 'yaml_file_path'oder .SPECIFICATION specification_textGibt die Datei an, die die Dienstspezifikation oder die Dienstspezifikation inline enthält. Wenn Ihre Dienstspezifikation in einer Datei vorliegt, verwenden Sie SPECIFICATION_FILE. Für Dienste, die in einer Snowflake Native App erstellt wurden, lassen Sie
@stageweg und geben einen Pfad relativ zum Stammverzeichnis der App an. Für Dienste, die in anderen Kontexten erstellt wurden, geben Sie den internen Snowflake-Stagingbereich und den Pfad zur Datei mit der Dienstspezifikation an.
Verwendung einer Vorlage für eine Dienstspezifikation
Sie können die -Spezifikationsvorlage entweder inline oder in einer separaten Datei definieren.
SPECIFICATION_TEMPLATE_FILE = 'yaml_file_path'oder .@stage SPECIFICATION_TEMPLATE_FILE = 'yaml_file_path'oder .SPECIFICATION_TEMPLATE specification_textGibt die Datei an, die die Vorlage für die Dienstspezifikation oder die Vorlage für die Dienstspezifikation inline enthält. Wenn sich Ihre Vorlage für die Dienstspezifikation in einer Datei befindet, verwenden Sie SPECIFICATION_TEMPLATE_FILE. Für Dienste, die in einer Snowflake Native App erstellt wurden, lassen Sie
@stageweg und geben einen Pfad relativ zum Stammverzeichnis der App an. Für Dienste, die in anderen Kontexten erstellt wurden, geben Sie den internen Snowflake-Stagingbereich und den Pfad zur Datei mit der Dienstspezifikation an. Wenn Sie eine Spezifikationsvorlage verwenden, sollten Sie auch den ParameterUSINGangeben.USING ( key => value [ , key => value [ , ... ] ] )Gibt die Variablen der Vorlage und die Werte dieser Variablen an.
keyist der Name der Vorlagenvariable. Der Name der Vorlagenvariable kann optional in doppelte Anführungszeichen (") eingeschlossen werden.valueist der Wert, der der Variablen in der Vorlage zugewiesen werden soll. Zeichenfolgenwert müssen in'oder$$eingeschlossen sein. Der Wert muss entweder alphanumerisch oder ein gültiger JSON-Wert sein.
Verwenden Sie ein Komma zwischen jedem Schlüssel-Wert-Paar.
RESTORE VOLUME volume_name INSTANCES comma_separated_instance_ids FROM SNAPSHOT snapshot_nameStellt den Snapshot
snapshot_nameauf dem vorhandenen Blockspeicher-Volumevolume_namefür die Instanzencomma_separated_instance_idswieder her.Snapshots können nur für Blockspeicher-Volumes erstellt werden (und nicht für lokale, Arbeitsspeicher- oder Staging-Volumes).
Bei Volume-Namen wird zwischen Groß- und Kleinschreibung unterschieden. Daher sollten doppelte Anführungszeichen immer verwendet werden, um den entsprechenden Namen in der Dienstspezifikation zu finden.
SET ...Legt eine oder mehrere angegebene Eigenschaften oder Parameter für den Dienst fest:
MIN_INSTANCES = numGibt die minimale Anzahl von Dienstinstanzen an.
MAX_INSTANCES = numGibt die maximale Anzahl von Dienstinstanzen an.
LOG_LEVEL = 'log_level'Gibt den Schweregrad von Meldungen an, die in die aktive Ereignistabelle erfasst und zur Verfügung gestellt werden sollen. Meldungen des angegebenen Schweregrads (und mit höherem Schweregrad) werden erfasst. Derzeit wird LOG_LEVEL nur für -Plattformereignisse unterstützt. Das Ändern von LOG_LEVEL für :ref:` Containerprotokolle <label-snowpark_containers_working_with_services_local_logs>` wird nicht unterstützt.
Weitere Informationen zu Protokolliergraden finden Sie unter LOG_LEVEL. Informationen zum Einstellen des Protokolliergrads finden Sie unter Einstellung der Grade für Protokollierung, Metriken und Ablaufverfolgung.
AUTO_SUSPEND_SECS = numGibt die Anzahl der Sekunden der Inaktivität (Dienst ist im Leerlauf) an, nach denen Snowflake den Dienst automatisch aussetzt. Wenn AUTO_SUSPEND_SECS den Wert 0 hat (Standard), setzt Snowflake den Dienst nicht automatisch aus. Sie können diesen Wert auf 300 Sekunden oder mehr einstellen, um die automatische Aussetzung zu aktivieren. Weitere Informationen dazu finden Sie unter Einen Dienst aussetzen.
MIN_READY_INSTANCES = numGibt an, welche Instanzen des Dienstes mindestens bereit sein müssen, damit Snowflake den Dienst als bereit für die Bearbeitung von Anfragen betrachtet. Weitere Informationen dazu finden Sie unter Skalieren von Diensten.
QUERY_WAREHOUSE = warehouse_nameZu verwendendes Warehouse, wenn ein Dienstcontainer eine Verbindung zu Snowflake herstellt, um eine Abfrage auszuführen, aber das zu verwendende Warehouse nicht ausdrücklich angibt.
AUTO_RESUME = { TRUE | FALSE }Gibt an, ob ein Dienst automatisch fortgesetzt werden soll, wenn der Benutzer eine der folgenden Aktionen ausführt, die von dem Dienst abhängen:
Ausführen einer Abfrage, die eine Dienstfunktion verwendet.
Senden einer Anfrage an den öffentlichen Endpunkt, der vom Dienst über den (Ingress) bereitgestellt wird.
Wenn AUTO_RESUME den Wert FALSE hat, müssen Sie den Dienst explizit fortsetzen (mit ALTER SERVICE … RESUME).
Standard: TRUE.
EXTERNAL_ACCESS_INTEGRATIONS = ( EAI_name [ , ... ] )Gibt die Namen der Integrationen für den externen Zugriff an, die Ihrem Dienst den Zugriff auf externe Sites ermöglichen. Snowflake ersetzt alle vorhandenen EAIs durch die in diesem Parameter angegebenen. Bei den Namen in dieser Liste wird zwischen Groß- und Kleinschreibung unterschieden. Weitere Informationen dazu finden Sie unter Konfigurieren des Netzwerkausgangs. Beachten Sie, dass dies den zulässigen Netzwerkzugriff für alle laufenden Instanzen des Dienstes ändert. Sie müssen den Dienst nicht explizit anhalten und fortsetzen.
COMMENT = 'string_literal'Gibt einen Kommentar zum Computepool an.
TAG tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ]Gibt den Namen des Tags und den Wert der Tag-Zeichenfolge an.
Der Tag-Wert ist immer eine Zeichenfolge, die maximale 256 Zeichen lang sein kann.
Weitere Informationen zur Angabe von Tags in einer Anweisung finden Sie unter Tag-Kontingent für Objekte.
UNSET ...Gibt eine (oder mehrere) Eigenschaften und/oder Parameter an, deren Einstellungen für den Dienst wieder aufgehoben werden sollen, wodurch sie auf die Standardwerte zurückgesetzt werden (siehe CREATE SERVICE):
MIN_INSTANCESMAX_INSTANCESAUTO_SUSPEND_SECSMIN_READY_INSTANCESQUERY_WAREHOUSEAUTO_RESUMEEXTERNAL_ACCESS_INTEGRATIONSCOMMENT
Anforderungen an die Zugriffssteuerung¶
Eine Rolle, die zur Ausführung dieser Operation verwendet wird, muss mindestens die folgenden Berechtigungen haben:
Berechtigung |
Objekt |
Anmerkungen |
|---|---|---|
USAGE |
Snapshot |
Um einen Snapshot wiederherzustellen, benötigt die Rolle diese Berechtigung für den Snapshot. |
OWNERSHIP |
Dienst |
Um den Dienst zu ändern und Eigenschaften und Tags zu setzen/aufzuheben, benötigt die Rolle diese Berechtigung. |
OPERATE |
Dienst |
Zum Ändern des Dienstes, mit Ausnahme des Setzens/Aufhebens von Eigenschaften, benötigt die Rolle diese Berechtigung. |
USAGE-Berechtigung für die übergeordnete Datenbank und das Schema ist erforderlich, um Operationen an einem beliebigen Objekt in einem Schema durchzuführen. Beachten Sie, dass eine Rolle, die eine beliebige Berechtigung für ein Schema erhalten hat, es dieser Rolle erlaubt, das Schema aufzulösen. Zum Beispiel kann eine Rolle, der die CREATE-Berechtigung für ein Schema gewährt wurde, Objekte in diesem Schema erstellen, ohne auch USAGE für dieses Schema gewährt bekommen zu haben.
Eine Anleitung zum Erstellen einer kundenspezifischen Rolle mit einer bestimmten Gruppe von Berechtigungen finden Sie unter Erstellen von kundenspezifischen Rollen.
Allgemeine Informationen zu Rollen und Berechtigungen zur Durchführung von SQL-Aktionen auf sicherungsfähigen Objekten finden Sie unter Übersicht zur Zugriffssteuerung.
Nutzungshinweise¶
Metadaten:
Achtung
Kunden müssen sicherstellen, dass bei der Nutzung des Snowflake-Dienstes keine personenbezogenen Daten (außer für ein Objekt „Benutzer“), sensible Daten, exportkontrollierte Daten oder andere regulierte Daten als Metadaten eingegeben werden. Weitere Informationen dazu finden Sie unter Metadatenfelder in Snowflake.
Beispiele¶
Halten Sie einen Dienst an.
ALTER SERVICE echo_service SUSPEND;
Ändern Sie die Eigenschaften MIN_INSTANCES und MAX_INSTANCES eines bestehenden Dienstes.
ALTER SERVICE echo_service SET MIN_INSTANCES=3 MAX_INSTANCES=5;
Stellen Sie einen Snapshot auf einem vorhandenen Blockspeicher-Volume wieder her, das mit den Instanzen 0 und 2 des Dienstes example_service verbunden ist.
ALTER SERVICE example_service
RESTORE VOLUME "myvolume"
INSTANCES 0,2
FROM SNAPSHOT my_snapshot;
