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
Copy

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.

Eigenschaften von Funktions- und Prozedurobjekten

Eigenschaft

Definition

Bezeichner

optional, string

Optionaler Snowflake-Bezeichner für die Entität. Der Wert kann die folgenden Formen annehmen:

  • Zeichenfolge Bezeichnertext

    identifer: my-snowpark-id
    
    Copy

    Es werden sowohl Bezeichner ohne Anführungszeichen als auch Bezeichner mit Anführungszeichen unterstützt. Um Bezeichner in Anführungszeichen zu verwenden, schließen Sie die umgebenden Anführungszeichen in den Wert YAML ein (z. B. '"My Snowpark Function"').

  • Objekt

    identifer:
      name: my-snowpark-id
      schema: my-schema # optional
      database: my-db # optional
    
    Copy

    Bemerkung

    Es tritt ein Fehler auf, wenn Sie ein schema oder eine database angeben und einen vollqualifizierten Namen in der name-Eigenschaft verwenden (z.B. mydb.schema1.my-app).

type

optional, string

Muss eine der folgenden Funktionen sein: function oder procedure.

Artefakte

erforderlich, string sequence

Auflistung der erforderlichen Ressourcen.

handler

erforderlich, string

Die Implementierung der Funktion oder Prozedur des Objekts innerhalb des in snowpark.src definierten Moduls. So verweist functions.hello_function beispielsweise auf die Funktion hello_function aus der Datei <src>/functions.py.

returns

erforderlich, string

SQL Typ des Ergebnisses. Sehen Sie sich die Liste der verfügbaren Typen an.

signature

erforderlich, sequence

Der Parameter signature beschreibt aufeinanderfolgende Argumente, die an das Objekt übergeben werden. Sie sollten jeweils den Namen und den Typ angeben, zum Beispiel:

signature:
  - name: "first_argument"
    type: int
  - name: "second_argument"
    default: "default value"
    type: string
Copy

Wenn eine Funktion oder Prozedur keine Argumente benötigt, setzen Sie diesen Wert auf eine leere Zeichenfolge (signature: "").

Ü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.8“.

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 Informationen dazu finden Sie unter 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 Informationen dazu finden Sie unter CREATE PROCEDURE.

imports

optional, string sequence

Stagingbereich und Pfad zu den zuvor hochgeladenen Dateien, die Sie importieren möchten. Weitere Informationen dazu finden Sie unter 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).