Snowpark-Projektdefinition erstellen¶
Die Datei snowflake.yml
enthält die Deklarationen der Funktionen und Prozeduren für ein Snowpark-Projekt.
Bemerkung
Derzeit muss die Snowpark-Projektdefinitionsdatei den Namen snowflake.yml
tragen.
Der folgende Codeausschnitt zeigt ein Beispiel für eine Snowpark-Projektdefinitionsdatei: mit zwei Funktionen und zwei Prozeduren. Die Funktion hello_function
nutzt externe Funktionen von Snowpark.
definition_version: '2'
mixins:
snowpark_shared:
artifacts:
- dest: my_snowpark_project
src: app/
stage: dev_deployment
entities:
hello_function:
type: function
identifier:
name: hello_function
handler: functions.hello_function
signature:
- name: name
type: string
returns: string
external_access_integrations:
- my_external_access
secrets:
cred: my_cred_name
meta:
use_mixins:
- snowpark_shared
hello_procedure:
type: procedure
identifier:
name: hello_procedure
handler: procedures.hello_procedure
signature:
- name: name
type: string
returns: string
meta:
use_mixins:
- snowpark_shared
test_procedure:
type: procedure
identifier:
name: test_procedure
handler: procedures.test_procedure
signature: ''
returns: string
meta:
use_mixins:
- snowpark_shared
Vorsicht
Dateien in einem Projektverzeichnis werden von Snowflake CLI verarbeitet und können beim Ausführen anderer snow snowpark
-Befehle in Snowflake hochgeladen werden. Seien Sie vorsichtig, wenn Sie sensible Informationen in Dateien in einem Projektverzeichnis ablegen.
Eigenschaften von Funktions- und Prozedurobjekten¶
Die folgende Tabelle beschreibt die von Funktionen und Prozeduren verwendeten Eigenschaften.
Eigenschaft |
Definition |
---|---|
Bezeichner optional, string |
Optionaler Snowflake-Bezeichner für die Entität. Der Wert kann die folgenden Formen annehmen:
|
type optional, string |
Muss eine der folgenden Funktionen sein: |
artifact_repository optional, string |
Name des Artifact Repositorys. Snowflake verfügt über ein standardmäßiges Artifact Repository namens |
artifact_repository_packages optional, string |
Namen der Pakete, die aus dem Artifact Repository stammen sollen. Beachten Sie, dass die Pakete in der Datei Mit den Parametern
Für Pakete, die von bestimmten Architekturen abhängen, können Sie diese in dem Parameter test_function:
type: "function"
handler: "app.udf"
identifier:
name: "udf"
stage: "dev_deployment"
signature: ""
returns: float
artifact_repository: snowflake.snowpark.pypi_shared_repository
artifact_repository_packages:
- 'scikit-learn'
artifacts:
- "app.py"
resource_constraint:
architecture: 'x86'
Weitere Informationen dazu finden Sie unter Pakete, die nur für x86 erstellt wurden. |
Artefakte erforderlich, string sequence |
Liste der Quelle/Ziel-Dateipaare, die dem Bereitstellungsstamm hinzugefügt werden sollen. Sie können die folgenden Eigenschaften des Artefakts verwenden:
Wenn Sie können anstelle von |
handler erforderlich, string |
Die Implementierung der Funktion oder Prozedur des Objekts innerhalb des in |
returns erforderlich, string |
SQL Typ des Ergebnisses. Sehen Sie sich die Liste der verfügbaren Typen an. |
signature erforderlich, sequence |
Der Parameter signature:
- name: "first_argument"
type: int
- name: "second_argument"
default: "default value"
type: string
Wenn eine Funktion oder Prozedur keine Argumente benötigt, setzen Sie diesen Wert auf eine leere Zeichenfolge ( Überprüfen Sie die Spalte SQL Typ von verfügbaren Typen. Weitere Informationen zur Syntax von benannten und optionalen Argumenten finden Sie unter Aufrufen einer UDF mit optionalen Argumenten. |
runtime optional, string |
Python-Version, die beim Ausführen der Prozedur oder Funktion verwendet werden soll. Standard: „3.9“. |
external_access_integrations optional, string sequence |
Die Namen der Integrationen für den externen Zugriff, die benötigt werden, damit der Handler-Code dieser Prozedur auf externe Netzwerke zugreifen kann. Weitere Einzelheiten finden Sie unter dem Parameter EXTERNAL_ACCESS_INTEGRATIONS in CREATE PROCEDURE. |
secrets optional, dictionary |
Weist die Namen von Geheimnissen Variablen zu, sodass Sie die Variablen verwenden können, um auf die Geheimnisse zu verweisen, wenn Sie Informationen aus Geheimnissen im Handler-Code abrufen. Weitere Einzelheiten finden Sie unter dem Parameter |
imports optional, string sequence |
Stagingbereich und Pfad zu den zuvor hochgeladenen Dateien, die Sie importieren möchten. Weitere Einzelheiten finden Sie unter dem Parameter |
execute_as_caller optional, bool |
Nur für Prozeduren verfügbar. Bestimmen Sie, ob die Prozedur mit den Berechtigungen des Eigentümers (Sie) oder mit den Berechtigungen des Aufrufers ausgeführt wird. Standard: „false“ (Berechtigungen des Eigentümers). |