Snowparkプロジェクト定義を作成する

snowflake.yml ファイルには、Snowparkプロジェクトの関数とプロシージャの宣言が含まれています。

注釈

現在、Snowparkプロジェクト定義ファイルの名前は snowflake.yml である必要があります。

次のスニペットは、2つの関数と2つのプロシージャを含むサンプルのSnowparkプロジェクト定義ファイルを示しています。 hello_function 関数は、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

注意

プロジェクトディレクトリ内のファイルは Snowflake CLI によって処理され、他の snow snowpark コマンドを実行するときにSnowflakeにアップロードされる可能性があります。プロジェクトディレクトリのファイル内に機密情報を保存する場合は、注意が必要です。

関数およびプロシージャオブジェクトのプロパティ

次の表では、関数とプロシージャで使用されるプロパティについて説明しています。

関数およびプロシージャオブジェクトのプロパティ

プロパティ

定義

識別子

optional, string

エンティティの任意のSnowflake識別子。この値には次のような形式があります。

  • 文字列識別子テキスト

    identifer: my-snowpark-id
    
    Copy

    引用符で囲まれていない識別子と引用符で囲まれた識別子の両方がサポートされています。引用符で囲まれた識別子を使用するには、 YAML の値に引用符を含めます(例:’”My Snowpark Function”’)。

  • オブジェクト

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

    注釈

    schema か:codenowrap:database を指定し、 name プロパティで完全修飾名(mydb.schema1.my-app など)を使用すると、エラーが発生します。

タイプ

optional, string

function または:codenowrap:procedure のいずれかである必要があります。

アーティファクト

必須文字列シーケンス

必要なリソースのリスト

handler

required, string

snowpark.src で定義されたモジュール内のオブジェクトの関数またはプロシージャの実装。たとえば、 functions.hello_function は、ファイル <src>/functions.py の関数 hello_function を参照しています。

returns

required, string

結果の SQL タイプ。 利用可能なタイプ のリストを確認してください。

signature

required, sequence

signature パラメーターには、オブジェクトに渡される連続した引数を記述します。それぞれの名前とタイプを指定する必要があります。例:

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

関数またはプロシージャが引数を取らない場合、この値には空の文字列(signature: "")を設定します。

利用可能なタイプSQL タイプ 列をチェックします。名前付き引数とオプション引数の構文の詳細については、 オプションの引数を持つ UDF の呼び出し をご参照ください。

runtime

optional, string

プロシージャまたは関数を実行するときに使用するPythonバージョン。デフォルト: 「3.8」。

external_access_integrations

optional, string sequence

このプロシージャのハンドラーコードが外部ネットワークにアクセスするために必要な 外部アクセス統合 の名前。詳細については、 CREATE PROCEDURE をご参照ください。

secrets

optional, dictionary

シークレットの名前を変数に代入し、ハンドラーコードでシークレットから情報を取得する際に、変数を使用してシークレットを参照できるようにします。詳細については、 CREATE PROCEDURE をご参照ください。

imports

optional, string sequence

インポートする以前にアップロードしたファイルのステージとパス。詳細については、 CREATE PROCEDURE をご参照ください。

execute_as_caller

optional, bool

プロシージャにのみ利用できます。プロシージャが所有者(あなた)の権限で実行されるか、呼び出し元の権限で実行されるかを決定します。デフォルト: False(所有者の権限)。