なぜ重要か
従来のApp Runtimeデプロイは、環境別設定やupload・build・deployの個別実行を標準化しにくい場合がありました。今回の変更により、targetsでデプロイ先を選択し、必要なフェーズだけを実行できます。また、Workspaceのlive状態をビルド対象にすることで、保存済みの最新作業内容がデプロイされます。
対象となるチーム
- Snowflake App Runtimeを開発・運用するアプリケーションチーム
- 複数環境へのリリースを管理するDevOps・Platform Engineeringチーム
- dbtプロジェクトをSnowflake CLIからデプロイするデータエンジニア
- Snowflake CLIの認証・接続設定を管理する基盤管理者
提供条件
- Snowflake CLI v3.25.0として2026年8月24日に公開
- 提供ステータス全体はリリースノートに記載なし
- エディションおよびリージョンの記載なし
- app.yml version 2、--target、段階デプロイはSnowflake App Runtime向け。Native Appのフローは変更なし
- dbt_projects_profiles.ymlのsnow dbt deploy対応はGenerally Available。DCMのpreview、refresh、testはGenerally Availableではない
ユースケース
- 開発・ステージング・本番をtargetsに定義し、snow app deploy --targetで対象環境を明示してデプロイする。
- コードを先にアップロードして内容を確認し、その後にビルドまたは昇格を行う。snow app deploy --upload-only、--build-only、--promote-onlyを使い分ける。
- App Runtimeを水平スケールしている環境で、特定インスタンスの挙動を調査する。snow app events --instance <N>で対象インスタンスのライブコンテナログを取得する。
- Workspace上で編集中のアプリをデプロイする。デプロイ時には最後にコミットした版ではなく、versions/live/の現在の作業状態がビルドされる。
- dbtプロジェクトでdbt_projects_profiles.ymlを採用し、デプロイ対象プロジェクト内へ同じ名前でプロファイルをステージングする。
仕組みと使い方
App Runtimeプロジェクトでは、app.yml version 2が存在するとsnow appコマンドはsnowflake.ymlではなくapp.ymlを基準に動作します。app.ymlのtargetsブロックに名前付きの環境別デプロイを定義し、deploy、open、events、teardown、validateに--targetを指定します。
主な実行例:
snow app deploy --target staging
snow app deploy --target staging --upload-only
snow app deploy --target staging --build-only
snow app deploy --target production --promote-only
snow app events --instance 2
接続追加時に一時認証情報のクライアント保存設定をconfig.tomlへ書き込む場合:
snow connection add --client-store-temporary-credential
snow sql --local-onlyの既定値を環境変数で設定する場合:
SNOWFLAKE_CLI_SQL_LOCAL_ONLY=true snow sql
なお、dbt_projects_profiles.ymlは--profiles-dirで指定したディレクトリ、または指定がなければプロジェクトルートに置きます。同じディレクトリにprofiles.ymlと両方がある場合はdbt_projects_profiles.ymlが優先され、警告が表示されます。
導入ステップ
- Snowflake CLIをv3.25.0へ更新し、snow --versionなどで実行バージョンを確認する。
- App Runtimeプロジェクトでapp.yml version 2とtargetsの設計を確認し、既存のNative Appプロジェクトとは分離して扱う。
- 非本番環境で--targetを指定したvalidate、upload-only、build-onlyを実行し、対象環境と各フェーズの結果を確認する。
- Workspace利用時は、デプロイ直前のlive状態が意図した内容であることを確認してからpromote-onlyを実行する。
- dbtプロジェクトではprofilesディレクトリ内のファイル名と優先順位を確認し、テスト環境へsnow dbt deployを実行する。
- 認証情報保存やsnow sqlの既定値を変更する場合は、config.tomlまたは環境変数を適用した接続で動作を検証する。
運用上の注意
- app.yml version 2があるApp Runtimeプロジェクトでは、それがsnowflake.ymlより優先されます。既存プロジェクトに追加する前に、コマンドが参照する定義ファイルを確認してください。
- --instanceを省略したsnow app eventsはinstance 0を対象にします。水平スケール環境で別インスタンスを調査する場合は番号を明示してください。
- dbt_projects_profiles.ymlとprofiles.ymlが同じprofilesディレクトリにある場合、前者が優先されます。意図せずデプロイ設定が切り替わらないよう、リポジトリ内の配置を点検してください。
- snow appコマンドがoutputディレクトリを扱う際、作成したbundle以外のファイルは削除しないよう修正されていますが、生成物の保存先や残存ディレクトリの警告は運用上確認してください。
- client_store_temporary_credentialの有効化はconfig.tomlに設定を書き込みます。認証情報の保管方針と設定ファイルのアクセス管理を事前に確認してください。
制約事項
- app.yml version 2の新しいフローはSnowflake App Runtime向けで、Native Appのフローは変更されません。App Runtime以外への適用可否はリリースノートに記載なし。
- snow app events --instanceはSnowflake App Runtimeのみ対応します。
- snow dcm preview、snow dcm refresh、snow dcm testはGenerally Availableではありません。--helpへの表示にはenable_dcm_preview_featuresの有効化が必要です。
- Snowflake CLI v3.25.0のエディション別提供条件、リージョン制限、必要権限の詳細はリリースノートに記載なし。
- 各コマンドのapp.yml version 2におけるtargetsの詳細なスキーマや設定例は、リリースノート本文だけでは網羅されていません。
次に確認すること
- 公式のSnowflake CLIおよびApp Runtimeのapp.yml version 2ドキュメントで、targetsのスキーマ、必須項目、必要権限を確認する。
- 検証用App Runtime環境でvalidateからupload-only、build-only、promote-onlyまでを実行し、既存CI/CDの手順との差分を確認する。
- 公式の接続設定ドキュメントでclient_store_temporary_credentialの保存対象、保護要件、環境変数との優先順位を確認する。
- dbt_projects_profiles.ymlの公式仕様を確認し、profiles.ymlとの共存時に本番デプロイへ影響がないかをテストする。
公式情報
仕様・提供条件は更新される可能性があります。導入前に必ず公式リリースノートを確認してください。
https://docs.snowflake.com/release-notes/clients-drivers/snowflake-cli-2026