snow app run¶
Snowflakeアカウントにアプリケーションパッケージを作成し、そのステージにコードファイルをアップロードして、アプリケーションパッケージからアプリケーションオブジェクトを作成またはアップグレードします。
構文¶
snow app run
--version <version>
--patch <patch>
--from-release-directive
--channel <channel>
--interactive / --no-interactive
--force
--validate / --no-validate
--package-entity-id <package_entity_id>
--app-entity-id <app_entity_id>
--project <project_definition>
--env <env_overrides>
--connection <connection>
--host <host>
--port <port>
--account <account>
--user <user>
--password <password>
--authenticator <authenticator>
--workload-identity-provider <workload_identity_provider>
--private-key-file <private_key_file>
--token <token>
--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>
--oauth-client-id <oauth_client_id>
--oauth-client-secret <oauth_client_secret>
--oauth-authorization-url <oauth_authorization_url>
--oauth-token-request-url <oauth_token_request_url>
--oauth-redirect-uri <oauth_redirect_uri>
--oauth-scope <oauth_scope>
--oauth-disable-pkce
--oauth-enable-refresh-tokens
--oauth-enable-single-use-refresh-tokens
--client-store-temporary-credential
--format <format>
--verbose
--debug
--silent
--enhanced-exit-codes
引数¶
なし
オプション¶
--version TEXTアプリケーションオブジェクトを作成する既存のアプリケーションパッケージで定義されているバージョン。アプリケーションオブジェクト名とアプリケーションパッケージ名は、プロジェクト定義ファイルから決定されます。
--patch INTEGERアプリケーション オブジェクトの作成に使用する既存のアプリケーション パッケージで定義されている、指定された
--versionの下のパッチ番号。アプリケーションオブジェクト名とアプリケーションパッケージ名は、プロジェクト定義ファイルから決定されます。--from-release-directiveアプリケーションオブジェクトを、Snowflakeアカウントに適用可能なリリースディレクティブで指定されたバージョンとパッチに作成またはアップグレードします。プロジェクト定義ファイルから決定される特定のアプリケーションパッケージに対して、Snowflakeアカウントにリリースディレクティブが存在しない場合、コマンドは失敗します。デフォルト: 未設定。デフォルト: false。
--channel TEXTリリースディレクティブからアプリケーションのインスタンスを作成したり、 アップグレードしたりするときに使用するリリースチャネルの名前です。
--from-release-directiveフラグがセットされている必要があります。未設定の場合、デフォルトのチャンネルが使用されます。--interactive / --no-interactiveこのオプションを有効にすると、標準入力と出力が端末デバイスでない場合でも、プロンプトが表示されます。対話的なシェル環境ではTrue、それ以外ではFalseがデフォルトです。
--forceこのオプションを有効にすると、コマンドは表示されるすべてのプロンプトを暗黙的に承認するようになります。インタラクティブモードが指定されておらず、潜在的に破壊的なアクションを実行する場合は、このオプションを有効にする必要があります。デフォルトでは設定されていません。デフォルト:False。
--validate / --no-validateこのオプションを有効にすると、デプロイされた Snowflake Native App のセットアップスクリプト SQL の検証がトリガーされます。デフォルト:True
--package-entity-id TEXTdefinition_version が 2 以上の場合に操作するパッケージ・エンティティの ID 。
--app-entity-id TEXTdefinition_version が 2 以上の場合に操作するアプリケーション・エンティティの ID 。
-p, --project TEXTSnowflakeプロジェクトが保存されているパス。デフォルトは現在の作業ディレクトリです。
--env TEXTkey=value の形式の文字列。テンプレートに使用されたenvセクションの変数を上書きします。デフォルト: []
--connection, -c, --environment TEXTconfig.tomlファイルで定義されている接続の名前。デフォルト:デフォルト--host TEXT接続用のホストアドレス。接続に指定された値を上書きします。
--port INTEGER接続のポート。接続に指定された値を上書きします。
--account, --accountname TEXTSnowflakeアカウントに割り当てられた名前。接続に指定された値を上書きします。
--user, --username TEXTSnowflakeに接続するユーザー名。接続に指定された値を上書きします。
--password TEXTSnowflakeのパスワード。接続に指定された値を上書きします。
--authenticator TEXTSnowflakeの認証コード。接続に指定された値を上書きします。
--workload-identity-provider TEXTワークロードIDプロバイダー(AWS、AZURE、GCP、OIDC)。接続に指定された値を上書きします。
--private-key-file, --private-key-path TEXTSnowflake プライベートキーファイルへのパス。接続に指定された値を上書きします。
--token TEXTSnowflake接続時に使用する OAuth トークン。
--token-file-path TEXTSnowflake接続時に使用する OAuth トークンを含むファイルへのパス。
--database, --dbname TEXT使用するデータベース。接続に指定された値を上書きします。
--schema, --schemaname TEXT使用するデータベーススキーマ。接続に指定された値を上書きします。
--role, --rolename TEXT使用するロール。接続に指定された値を上書きします。
--warehouse TEXT使用するウェアハウス名。接続に指定された値を上書きします。
--temporary-connection, -xconfig で定義された接続ではなく、コマンドラインパラメーターで定義された接続を使用します。デフォルト: false。
--mfa-passcode TEXT多要素認証(MFA)に使用するトークン。
--enable-diag接続診断レポートを作成するかどうか。デフォルト: false。
--diag-log-path TEXT生成されたレポートのパス。デフォルトはシステム仮ディレクトリです。デフォルト: <system_temporary_directory>.
--diag-allowlist-path TEXTallowlist パラメーターを含む JSON ファイルへのパス。
--oauth-client-id TEXTSnowflake統合のためにIDプロバイダーが提供するクライアントIDの値。
--oauth-client-secret TEXTSnowflake 統合用に ID プロバイダーが提供するクライアントシークレットの値。
--oauth-authorization-url TEXT認証コードをドライバーに提供する ID プロバイダーエンドポイント。
--oauth-token-request-url TEXTドライバーにアクセストークンを供給する ID プロバイダーのエンドポイント。
--oauth-redirect-uri TEXTURI 認証コードのリダイレクトに使用します。
--oauth-scope TEXTID プロバイダー承認リクエストで要求された範囲。
--oauth-disable-pkceコード交換の証明キー (PKCE) を無効にします。デフォルト:
False。--oauth-enable-refresh-tokens実際のアクセストークンが古くなった場合に、サイレント再認証コードを有効にします。デフォルト:
False。--oauth-enable-single-use-refresh-tokensシングルユース・更新・トークンのセマンティクスにオプトインするかどうか。デフォルト:
False。--client-store-temporary-credential仮認証情報を保存します。
--format [TABLE|JSON|JSON_EXT|CSV]出力形式を指定します。デフォルト: TABLE
--verbose, -vログレベル
info以上のログエントリを表示します。デフォルト: false。--debugログレベル
debug以上のログ エントリを表示します。デバッグログには追加情報が含まれます。デフォルト: false。--silentコンソールへの中間出力をオフにします。デフォルト: false。
--enhanced-exit-codes終了エラーコードをエラーのタイプによって区別します。デフォルト: false。
--helpこのコマンドのヘルプテキストを表示します。
使用上の注意¶
注釈
このコマンドは、 config.toml ファイルへのロールまたはウェアハウスの上書きを受け入れません。代わりに snowflake.yml または snowflake.local.yml のネイティブアプリ定義に追加してください。
このコマンドは、解決されたプロジェクト定義に基づいて、ファイルをアップロードするステージ、アップロードするファイル、および作成するオブジェクトの名前を決定します。デフォルトのガイダンスについては、 Snowflake Native App プロジェクトについて および snow app init の使用上の注意をご参照ください。自分の好みに合わせて変更することもできますが、アカウント内の既存のオブジェクトとの衝突がないかどうかを確認するのはユーザーの責任です。
Snowflake CLI によって作成されたオブジェクトには、特別なコメント
GENERATED_BY_SNOWCLIがタグ付けされます。アプリケーションパッケージとインスタンスの作成に使用されるロールは、Snowflake Native Applicationsを操作するための適切なアカウントレベルの権限が必要です。詳細については、 アプリケーションパッケージを作成する および アプリをローカルにインストールしてテストする をご参照ください。
デフォルトでは、 snow app run コマンドはSnowflakeアカウントにアプリケーションパッケージを作成し、そのステージにコードファイルをアップロードしてから、セットアップスクリプト SQL を検証し、そのアプリケーションの開発モードのインスタンスを作成(またはアップグレード)します。デフォルトコマンドを実行するときは、次の点に注意してください。
プロジェクト定義ファイルの
nativeapp.project.artifactsで指定されたすべてのファイルがSnowflakeステージにアップロードされます。このアーティファクトには、manifest.ymlファイルとそれに関連するセットアップスクリプトが含まれている必要があります。nativeapp.project.artifactsで指定されたすべてのファイルは、snow app runを呼び出す前に、必要に応じて個別にコンパイルおよびパッケージ化されている必要があります。Snowflake CLI にはこれらの中間タスクを実行する機能は提供されていないため、独自のスクリプトで実行することで構築プロセスを完全に制御できます。Snowflake CLI は、これらのオブジェクトを作成するときに、デフォルトのアプリケーションパッケージ名、ステージ名、アプリケーション名を使用します。
初回実行後に
snow app runを実行すると、アップロードされたファイルとローカルディレクトリ内のファイルの状態が比較され、変更されたファイルのみを選択的にアップロードして時間を節約します。ファイルが変更された場合、ステージの新しいコンテンツに基づいてアプリケーションがアップグレードされます。アプリケーションパッケージが既に存在し、その配布プロパティが
INTERNALである場合、コマンドはそのパッケージが Snowflake CLI によって作成されたかどうかをチェックします。そうでない場合、コマンドはエラーをスローします。アプリケーションパッケージの配布がEXTERNALの場合、このようなチェックは実行されません。作業中のアプリケーションパッケージの配布値が、解決されたプロジェクト定義で設定されている値と異なる場合、コマンドは警告を発しますが、実行は続行されます。
アプリケーションインスタンスは、 開発モード で作成またはアップグレードされます。具体的には、 ステージングされたファイル を使用します。
--version、 --patch、または --from-release-directive オプションを指定すると、このコマンドは既存のアプリケーションインスタンスをアップグレードするか、アプリケーションが存在しない場合はインスタンスを作成します。このシナリオでは、アプリケーションパッケージは作成されません。
Snowflake CLI が、最初にルーズファイルモードでインストールされたアプリケーションをリリースディレクティブを使用するようにアップグレードしようとするなど、何らかの理由でアプリケーションを更新できない場合は、既存のアプリケーションを削除し、必要なインストール戦略を使用して新しいアプリケーションを作成しようとします。このコマンドは、アクションを実行する前にドロップを確認するように要求します。
コマンドを操作せず、すべてのアクションを強制する場合は、
--forceオプションを使用してすべてのプロンプトをバイパスします。これにより、破壊的なアクションを続行するかどうかを尋ねるすべての入力に対して「はい」としてプロキシされます。Snowflake CLI は、コマンドをインタラクティブシェルで実行しているかどうかを判断しようとします。
--forceが指定されておらず、インタラクティブシェルでコマンドを実行している場合は、インタラクティブオプションが自動的に選択されます。インタラクティブシェルでない場合でも Snowflake CLI に強制的にインタラクティブにする場合は、
--interactiveオプションを使用します。
例¶
これらの例は、コードファイルに必要な変更を加え、 snowflake.yml または snowflake.local.yml ファイルに追加したことを前提としています。
ステージングされたファイルを使用してアプリケーションパッケージとアプリケーションを作成する場合は、次を実行できます。
cd my_app_project my_app_project_build_script.sh snow app run --connection="dev"
バージョンとパッチを含むアプリケーションパッケージがすでにあり、このバージョンとパッチからアプリケーションを作成し、インタラクティブモードを呼び出す場合は、次を実行できます。
snow app run --version V1 --patch 12 --interactive --connection="dev"
ここでは、バージョン
V1とパッチ12は例としてのみ使用されています。アプリケーションパッケージに既存のリリースディレクティブが設定されていて、そこからアプリケーションを作成し、インタラクティブモードをバイパスする場合は、次を実行できます。
snow app run --from-release-directive --force --connection="dev"
デフォルトでないリリース・チャネルのリリース・ディレクティブからアプリケーションを作成するには、次のように実行します。
snow app run --from-release-directive --channel ALPHA --connection="dev"
この例では、
--envオプションを使って複数の環境変数を渡す方法を示しています。snow app run --env source_folder="src/app" --env stage_name=mystage