snow snowpark build

Snowparkプロジェクトに必要な成果物をビルドする。このアーティファクトは、 deploy コマンドで使用することができます。アーティファクトの各ディレクトリに.zipファイルが作成される。anaconda 以外の依存関係はすべて dependencies.zip ファイルにパッケージされています。

構文

snow snowpark build
  --ignore-anaconda
  --allow-shared-libraries
  --index-url <index_url>
  --skip-version-check
  --project <project_definition>
  --env <env_overrides>
  --connection <connection>
  --host <host>
  --port <port>
  --account <account>
  --user <user>
  --password <password>
  --authenticator <authenticator>
  --private-key-file <private_key_file>
  --token-file-path <token_file_path>
  --database <database>
  --schema <schema>
  --role <role>
  --warehouse <warehouse>
  --temporary-connection
  --mfa-passcode <mfa_passcode>
  --enable-diag
  --diag-log-path <diag_log_path>
  --diag-allowlist-path <diag_allowlist_path>
  --format <format>
  --verbose
  --debug
  --silent
Copy

引数

なし

オプション

--ignore-anaconda

Snowflake Anacondaチャンネルのパッケージを検索しません。デフォルト: false。

--allow-shared-libraries

PIP を通してインストールされたパッケージを使用する場合、共有(.so)ライブラリを許可します。デフォルト: false。

--index-url TEXT

パッケージ検索に使用するPythonパッケージインデックスのベース URL。これは、 PEP 503に準拠したリポジトリ(シンプルリポジトリ API)か、同じ形式でレイアウトされたローカルディレクトリを指す必要があります。

--skip-version-check

要件とAnaconda間の依存関係のバージョン比較をスキップします。デフォルト: false。

-p, --project TEXT

Snowflakeプロジェクトが存在するパス。デフォルトは現在の作業ディレクトリです。

--env TEXT

key=value形式の文字列。テンプレートに使用される env セクションの変数をオーバーライドする。デフォルト: []

--connection, -c, --environment TEXT

config.toml ファイルで定義されている接続の名前。デフォルト: デフォルト

--host TEXT

接続用のホストアドレス。接続に指定された値を上書きします。

--port INTEGER

接続のポート。接続に指定された値を上書きします。

--account, --accountname TEXT

Snowflakeアカウントに割り当てられた名前。接続に指定された値を上書きします。

--user, --username TEXT

Snowflakeに接続するユーザー名。接続に指定された値を上書きします。

--password TEXT

Snowflakeのパスワード。接続に指定された値を上書きします。

--authenticator TEXT

Snowflakeの認証コード。接続に指定された値を上書きします。

--private-key-file, --private-key-path TEXT

Snowflake プライベートキーファイルへのパス。接続に指定された値を上書きします。

--token-file-path TEXT

Snowflake に接続する際に使用する OAuth トークンを含むファイルへのパス。

--database, --dbname TEXT

使用するデータベース。接続に指定された値を上書きします。

--schema, --schemaname TEXT

使用するデータベーススキーマ。接続に指定された値を上書きします。

--role, --rolename TEXT

使用するロール。接続に指定された値を上書きします。

--warehouse TEXT

使用するウェアハウス名。接続に指定された値を上書きします。

--temporary-connection, -x

構成で定義された接続ではなく、コマンドラインパラメーターで定義された接続を使用します。デフォルト: false。

--mfa-passcode TEXT

多要素認証(MFA)に使用するトークン。

--enable-diag

Pythonコネクター診断テストを実行します。デフォルト: false。

--diag-log-path TEXT

診断レポートパス。デフォルト: <temporary_directory>

--diag-allowlist-path TEXT

オプションの許可リストへの診断レポートパス。

--format [TABLE|JSON]

出力形式を指定します。デフォルト: TABLE

--verbose, -v

ログレベル info 以上のログエントリを表示します。デフォルト: false。

--debug

ログレベル debug 以上のログ エントリを表示します。デバッグログには追加情報が含まれます。デフォルト: false。

--silent

コンソールへの中間出力をオフにします。デフォルト: false。

--help

このコマンドのヘルプテキストを表示します。

使用上の注意

  • app.zip には、Snowflakeから直接呼び出すことができる Snowflake Anacondaチャンネル を通じて利用可能なパッケージを除き、プロジェクト内の関数とプロシージャを実行するために必要なものがすべて含まれています。

  • このコマンドは、Condaチャンネルで利用可能なパッケージの requirements.txt を解析します。このプロセスにより、Condaチャンネルで利用可能なプロジェクト依存関係を含む requirements.snowflake.txt ファイルが作成され、後で:codenowrap:snow snowpark deploy コマンドによって使用されます。

  • デフォルトでは、コマンドは現在のディレクトリ内の snowflake.yml ファイルを検索します。または、 --project オプションで別のパスを指定することもできます。

  • このコマンドは依存関係を自動的にダウンロードし、プロジェクトのソースコード(snowflake.yml ファイルの src フィールドで指定)とともに app.zip というファイルに追加します。

  • PyPi とは異なるPythonパッケージインデックスを使用するには、 --index-url オプションを使用して指定します。

  • --skip-version-check オプションを使用すると、プロジェクトの依存関係とAnacondaチャンネル間のバージョン要件をスキップできます。

  • --ignore-anaconda オプションを使用すると、Snowflake Anacondaチャンネルで利用可能なものであっても、必要な依存関係をすべて app.zip ファイルに含めることができます。依存関係はAnacondaからではなく、 PyPi からダウンロードされます。

  • --allow-shared-libraries オプションは、 PyPi からダウンロードされたパッケージのいずれかがネイティブ依存関係を使用しているかどうかをチェックします。Snowparkは現在、Condaチャンネルから取得したパッケージのネイティブ依存関係のみをサポートしているため、問題が発生する可能性があります。

  • 現在のディレクトリにあるプロジェクトを構築します。

    snow snowpark build
    
    Copy
    Resolving dependencies from requirements.txt
      No external dependencies.
    Preparing artifacts for source code
      Creating: app.zip
    Build done.
    
  • 別のディレクトリにあるプロジェクトを構築します。

    ls
    
    Copy
    project_dir    some_other_dir    some_file.txt
    
    snow snowpark build -p project_dir
    
    Copy
    Resolving dependencies from requirements.txt
      No external dependencies.
    Preparing artifacts for source code
      Creating: app.zip
    Build done.
    
  • snowflake.yml プロジェクト定義のないディレクトリにプロジェクトを構築します。

    ls
    
    Copy
    project_dir    some_other_dir    some_file.txt
    
    snow snowpark build
    
    Copy
    ╭─ Error ──────────────────────────────────────────────────────────╮
      Cannot find project definition (snowflake.yml). Please provide
      a path to the project or run this command in a valid
      project directory.
    ╰──────────────────────────────────────────────────────────────────╯
    
  • ネイティブライブラリを使ってプロジェクトを構築します。

    snow snowpark build --ignore-anaconda --allow-shared-libraries
    
    Copy
    2024-04-16 16:05:52 ERROR Following dependencies utilise shared libraries, not supported by Conda:
    2024-04-16 16:05:52 ERROR contourpy
    pillow
    numpy
    kiwisolver
    fonttools
    matplotlib
    2024-04-16 16:05:52 ERROR You may still try to create your package with --allow-shared-libraries, but the might not work.
    2024-04-16 16:05:52 ERROR You may also request adding the package to Snowflake Conda channel
    2024-04-16 16:05:52 ERROR at https://support.anaconda.com/
    Build done. Artifact path: /Path/to/current/dir/project_dir/app.zip
    
  • プロジェクトを構築し、すべての依存関係を含めます。

    snow snowpark build --ignore-anaconda
    
    Copy
    Resolving dependencies from requirements.txt
      No external dependencies.
    Preparing artifacts for source code
      Creating: app.zip
    Build done.