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
注意
プロジェクトディレクトリ内のファイルは Snowflake CLI によって処理され、他の snow snowpark コマンドを実行するときにSnowflakeにアップロードされる可能性があります。プロジェクトディレクトリのファイル内に機密情報を保存する場合は、注意が必要です。
関数およびプロシージャオブジェクトのプロパティ¶
次の表では、関数とプロシージャで使用されるプロパティについて説明しています。
| プロパティ | 定義 | 
|---|---|
| 識別子 optional, string | エンティティの任意のSnowflake識別子。この値には次のような形式があります。 
 | 
| タイプ optional, string | 
 | 
| artifact_repository optional, string | アーティファクトリポジトリの名前。Snowflakeには  codenowrap: 
 特定のアーキテクチャに依存するパッケージについては、  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'
詳細については、 x86用にのみビルドされたパッケージ をご参照ください。 | 
| artifact_repository_packages optional, string | 注釈 このプロパティは  | 
| パッケージ optional, string | artifact_repositoryからインストールするパッケージのリスト。例: artifact_repository: snowflake.snowpark.pypi_shared_repository
packages:
  - Faker
  - rich
  - pytest
 | 
| アーティファクト 必須、 文字列シーケンス | デプロイルートに追加するファイルソースと宛先のペアのリスト。次のアーティファクトプロパティを使用できます。 
 
 各項目に対して、  | 
| handler required, string | 
 | 
| returns required, string | 結果の SQL タイプ。利用可能なタイプ のリストを確認してください。 | 
| signature required, sequence | 
 signature:
  - name: "first_argument"
    type: int
  - name: "second_argument"
    default: "default value"
    type: string
関数またはプロシージャが引数を取らない場合、この値には空の文字列( 利用可能なタイプ の SQL タイプ 列をチェックします。名前付き引数とオプション引数の構文の詳細については、 オプションの引数を持つ UDF の呼び出し をご参照ください。 | 
| runtime optional, string | プロシージャまたは関数を実行するときに使用するPythonバージョン。デフォルト: 「3.9」。 | 
| external_access_integrations optional, string sequence | このプロシージャのハンドラーコードが外部ネットワークにアクセスするために必要な 外部アクセス統合 の名前。詳しくは CREATE PROCEDURE の EXTERNAL_ACCESS_INTEGRATIONS パラメーター をご覧ください。 | 
| secrets optional, dictionary | シークレットの名前を変数に代入し、ハンドラーコードでシークレットから情報を取得する際に、変数を使用してシークレットを参照できるようにします。詳細については、:ref:` CREATEPROCEDURE のSECRETS パラメーター<label-create_procedure_python_secrets>` をご参照ください。 | 
| imports optional, string sequence | インポートする以前にアップロードしたファイルのステージとパス。詳細については、:ref:` CREATEPROCEDURE のIMPORT パラメーター<label-create_procedure_python_imports>` をご参照ください。 | 
| execute_as_caller optional, bool | プロシージャにのみ利用できます。プロシージャが所有者(あなた)の権限で実行されるか、呼び出し元の権限で実行されるかを決定します。デフォルト:False(所有者の権限)。 |