ALTER SERVICE¶
Modifie la configuration du service Snowpark Container Services, met à niveau le code du service et permet de suspendre ou de reprendre un service. Vous pouvez :
Appliquer des modifications à un service en cours d’exécution. Par exemple, suspendre ou reprendre un service, et mettre à jour le nombre d’instances de service en cours d’exécution.
Appliquer des modifications qui ne prennent effet qu’après le redémarrage du service. Par exemple, spécifier un entrepôt par défaut pour les requêtes.
Appliquer des modifications qui entraînent l’arrêt du service par Snowflake et redémarrer en utilisant le nouveau code. Par exemple, vous pourriez vouloir déployer un code de service mis à jour :
Redémarrez les instances spécifiées d’un service en utilisant l’instantané fourni comme contenu initial pour le volume spécifié. Le service doit être suspendu avant l’exécution de ALTER SERVICE.
- Voir aussi :
CREATE SERVICE , DESCRIBE SERVICE, DROP SERVICE , SHOW SERVICES
Syntaxe¶
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> ]
[ 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 |
MAX_INSTANCES |
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>' ... ]]
Où :
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> [ , ... ] ] )
Paramètres¶
name
Indique l’identificateur du service à modifier.
Si l’identificateur contient des espaces ou des caractères spéciaux, toute la chaîne doit être délimitée par des guillemets doubles. Les identificateurs entre guillemets doubles sont également sensibles à la casse.
Pour plus d’informations, voir Exigences relatives à l’identificateur.
{ SUSPEND | RESUME }
Indique s’il faut suspendre ou reprendre le service.
Lorsque vous suspendez un service, Snowflake s’arrête et supprime les conteneurs. Si vous reprenez ultérieurement un service suspendu, Snowflake recrée les conteneurs. C’est-à-dire que Snowflake prend l’image de votre référentiel et démarre les conteneurs. Notez que Snowflake déploie la même version d’image ; il ne s’agit pas d’une opération de mise à jour du service.
Lorsque vous invoquez un service suspendu en utilisant une fonction de service ou en appelant le point de terminaison public (entrée), Snowflake reprend automatiquement le service.
FROM ...
Identifie la spécification ou le modèle de spécification pour le service.
Utilisation d’une spécification de service
Vous pouvez définir la spécification en ligne ou dans un fichier séparé.
SPECIFICATION_FILE = 'yaml_file_path'
ou .@stage SPECIFICATION_FILE = 'yaml_file_path'
ou .SPECIFICATION specification_text
Spécifie le fichier contenant la spécification de service ou la spécification de service en ligne. Si votre spécification de service se trouve dans un fichier, utilisez SPECIFICATION_FILE. Pour les services créés dans une Snowflake Native App, omettez
@stage
et spécifiez un chemin relatif au répertoire racine de l’application. Pour les services créés dans d’autres contextes, spécifiez la zone de préparation interne de Snowflake et le chemin d’accès au fichier de spécification de service.
Utilisation d’un modèle de spécification de service
Vous pouvez définir la spécification du modèle en ligne ou dans un fichier séparé.
SPECIFICATION_TEMPLATE_FILE = 'yaml_file_path'
ou .@stage SPECIFICATION_TEMPLATE_FILE = 'yaml_file_path'
ou .SPECIFICATION_TEMPLATE specification_text
Spécifie le fichier contenant le modèle de spécification de service ou le modèle de spécification de service en ligne. Si votre modèle de spécification de service se trouve dans un fichier, utilisez SPECIFICATION_TEMPLATE_FILE. Pour les services créés dans une Snowflake Native App, omettez
@stage
et spécifiez un chemin relatif au répertoire racine de l’application. Pour les services créés dans d’autres contextes, spécifiez la zone de préparation interne de Snowflake et le chemin d’accès au fichier de spécification de service. Lorsque vous utilisez une spécification de modèle, vous devez également inclure le paramètreUSING
.USING ( key => value [ , key => value [ , ... ] ] )
Spécifie les variables de modèle et les valeurs de ces variables.
key
est le nom de la variable de modèle. Le nom de variable de modèle peut éventuellement être placé entre guillemets doubles ("
).value
est la valeur à attribuer à la variable du modèle. Les valeurs de chaîne doivent être encadrées par'
ou par$$
. La valeur doit être soit alphanumérique, soit un JSON valide.
Utilisez une virgule entre chaque paire clé-valeur.
RESTORE VOLUME volume_name INSTANCES comma_separated_instance_ids FROM SNAPSHOT snapshot_name
Restaure l’instantané
snapshot_name
sur le volume de stockage de blocs existantvolume_name
pour les instancescomma_separated_instance_ids
.Les instantanés ne peuvent être pris que pour les volumes de stockage de blocs (et non pour les volumes locaux, en mémoire ou en zone de préparation).
Les noms de volume sont sensibles à la casse. Par conséquent, il convient de toujours utiliser des guillemets doubles pour coïncider avec le nom correspondant dans la spécification de service.
SET ...
Définit une ou plusieurs propriétés ou paramètres spécifiés pour le service :
MIN_INSTANCES = num
Spécifie le nombre minimum d’instances de service.
MAX_INSTANCES = num
Spécifie le nombre maximum d’instances de service.
MIN_READY_INSTANCES = num
Spécifie les instances de service minimales qui doivent être prêtes pour que Snowflake considère le service comme prêt à traiter les demandes. Pour plus d’informations, voir la description du paramètre MIN_READY_INSTANCES dans CREATE SERVICE.
Note
Si vous souhaitez utiliser la commande SHOW SERVICES ou DESCRIBE SERVICE pour trouver les MIN_READY_INSTANCES configurés pour le service, vous devez activer le bundle de changements de comportement 2024_08 dans votre compte. Pour activer ce bundle dans votre compte, exécutez l’instruction suivante :
SELECT SYSTEM$ENABLE_BEHAVIOR_CHANGE_BUNDLE('2024_08');
QUERY_WAREHOUSE = warehouse_name
Entrepôt à utiliser si un conteneur de service se connecte à Snowflake pour exécuter une requête, mais ne spécifie pas explicitement un entrepôt à utiliser.
AUTO_RESUME = { TRUE | FALSE }
Indique s’il faut reprendre automatiquement le service lorsque la fonction de service est appelée ou qu’une requête est reçue.
EXTERNAL_ACCESS_INTEGRATIONS = ( EAI_name [ , ... ] )
Spécifie les noms des intégrations d’accès externes qui permettent à votre service d’accéder à des sites externes. Snowflake remplace toutes les EAIs existantes par celles spécifiées dans ce paramètre. Les noms de cette liste sont sensibles à la casse. Pour plus d’informations, voir Sortie réseau. Notez que cette opération modifie l’accès réseau autorisé pour toutes les instances en cours d’exécution du service. Vous n’avez pas besoin de suspendre ni de reprendre explicitement le service.
COMMENT = 'string_literal'
Spécifie un commentaire pour le pool de calcul.
TAG tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ]
Spécifie le nom de la balise et la valeur de la chaîne de la balise.
La valeur de la balise est toujours une chaîne de caractères et le nombre maximum de caractères pour la valeur de la balise est 256.
Pour plus d’informations sur la spécification des balises dans une instruction, voir Quotas de balises pour les objets et les colonnes.
UNSET ...
Spécifie une ou plusieurs propriétés et/ou un ou plusieurs paramètres à désactiver pour le service, qui les réinitialise aux valeurs par défaut (voir CREATE SERVICE) :
MIN_INSTANCES
MAX_INSTANCES
MIN_READY_INSTANCES
QUERY_WAREHOUSE
AUTO_RESUME
EXTERNAL_ACCESS_INTEGRATIONS
COMMENT
Exigences en matière de contrôle d’accès¶
Un rôle utilisé pour exécuter cette commande SQL doit avoir les privilèges suivants définis au minimum ainsi :
Privilège |
Objet |
Remarques |
---|---|---|
OPERATE |
Service |
|
USAGE |
Instantané |
Notez que l’exploitation d’un objet dans un schéma requiert également le privilège USAGE sur la base de données et le schéma parents.
Pour obtenir des instructions sur la création d’un rôle personnalisé avec un ensemble spécifique de privilèges, voir Création de rôles personnalisés.
Pour des informations générales sur les rôles et les privilèges accordés pour effectuer des actions SQL sur des objets sécurisables, voir Aperçu du contrôle d’accès.
Notes sur l’utilisation¶
Concernant les métadonnées :
Attention
Les clients doivent s’assurer qu’aucune donnée personnelle (autre que pour un objet utilisateur), donnée sensible, donnée à exportation contrôlée ou autre donnée réglementée n’est saisie comme métadonnée lors de l’utilisation du service Snowflake. Pour plus d’informations, voir Champs de métadonnées dans Snowflake.
Exemples¶
Suspendez un service.
ALTER SERVICE echo_service SUSPEND;
Modifiez les propriétés MIN_INSTANCES et MAX_INSTANCES d’un service existant.
ALTER SERVICE echo_service SET MIN_INSTANCES=3 MAX_INSTANCES=5;
Restaurez un instantané sur un volume de blocs existant associé aux instances 0 et 2 du service example_service
.
ALTER SERVICE example_service
RESTORE VOLUME "myvolume"
INSTANCES 0,2
FROM SNAPSHOT my_snapshot;