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 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
- 'scikit-learn'
artifacts:
- "app.py"
resource_constraint:
architecture: 'x86'
Weitere Informationen dazu finden Sie unter Pakete, die nur für x86 erstellt wurden. |
artifact_repository_packages optional, string |
Bemerkung Diese Eigenschaft ist veraltet und wurde durch die Eigenschaft |
packages optional, string |
Liste der Pakete, die aus dem „artifact_repository“ installiert werden sollen. Beispiel: artifact_repository: snowflake.snowpark.pypi_shared_repository
packages:
- Faker
- rich
- pytest
|
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 erfahren Sie in den Informationen zum Parameter SECRETS in CREATE PROCEDURE. |
imports optional, string sequence |
Stagingbereich und Pfad zu den zuvor hochgeladenen Dateien, die Sie importieren möchten. Weitere Einzelheiten erfahren Sie in den Informationen zum Parameter IMPORT in CREATE PROCEDURE. |
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). |