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).  |