注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。

Code Workspaces の始め方

このチュートリアルでは、JupyterLab® または RStudio® Workbench のいずれかのワークスペースを設定することで、Code Workspaces の紹介を行います。

コードワークスペースを起動する

コードワークスペースを起動するには、Code Workspaces アプリケーションを開き、General タブに移動します。次に、コードワークスペースを作成するフォルダーを選択します。

プロジェクトで EditorOwner の役割を持つユーザーは、コードワークスペースの設定を変更することができます。プロジェクトで Viewer の役割を持つユーザーは、ワークスペースを起動することができます。ホームフォルダーをロケーションとして選択することもできますが、これによりコードワークスペースとデータがプロジェクトに制限される可能性があります。

起動するワークスペースのタイプを選択します。現在、サポートされているワークスペースは JupyterLab と RStudio® Workbench です。

JupyterLab® または RStudio® を選択

名前とロケーションの選択

次に、作成するコードワークスペースの名前と場所を設定します。RStudio® のワークスペースを作成している場合、ライセンスを選択することができます。ほとんどの場合、ライセンスは自動的に選択されます。

フォルダーの選択とライセンスの選択

ワークスペースを起動する各ユーザーは自分自身の孤立したセッションを実行します。2人以上のユーザーが同じワークスペースを使用する場合、すべてのユーザーが基礎となるコードリポジトリに対して Viewer 権限以上を持っていることを確認してください。コードワークスペースの基礎となるコードリポジトリについては、以下で詳しく説明します。

高度な設定

高度な設定では、コードワークスペースのアイドル時間とリソースプロファイルを定義することができます。これらの設定は、右上隅のギアアイコンを選択してアクセスできるワークスペースの Settings パネルでいつでも変更できます。

高度なギアアイコン
  • 自動シャットダウン
    • 自動シャットダウン設定は、コンテナがアクティブである期間を定義します。ワークスペースは、リソース使用量を削減するために、この不活動期間後に自動的にシャットダウンされます。自動シャットダウン後、パッケージとデータセットはコンテナに再デプロイする必要があります。なお、自動シャットダウン後もコードは保持されます。
    • デフォルトの自動シャットダウン期間は30分です。最大の自動シャットダウン設定は6時間で、最大セッション長は24時間です。
    • 長い自動シャットダウン設定は高いコストを発生させる可能性があります。コストを削減するためには、自動シャットダウン期間を短く設定し、セッションをまたがって復元される未コミットの変更ではなく、Foundry にコミットされたコードに依存することを推奨します(以下のコードワークスペースのライフサイクルの文書化を参照してください)。
  • 計算リソース
    • 大きいリソースプロファイルは高いコストを発生させる可能性があります。
  • ネットワークポリシー
    • 管理者によって有効にされている場合、ワークスペースに付加するネットワークポリシーを選択して、ワークスペースから外部 API コールを行うことができます。

高度な設定

リンクされたコードリポジトリを作成する

すべてのコードワークスペースは、Foundry のコードリポジトリによって支えられています。これにより、コードワークスペースはブランチ、マージ、コミット履歴などの業界標準のバージョン管理機能を持つことができるだけでなく、他の人がワークスペース内のコードを閲覧し、同じワークスペースで安全に操作することができます。

ユーザーは、リポジトリが Code Workspaces のインフラとして使用するためにカスタマイズされているため、基礎となるコードリポジトリで直接変換を公開することはできません。すべてのコードはコードワークスペースから公開する必要があります。

データをインポートする

Foundry のソースから直接データをインポートすることができます。これは、Data タブに移動し、Add dataset > Import dataset を選択することで行うことができます。コードワークスペースの現在のプロジェクト外から(ユーザーのホームフォルダーを含む)インポートされた任意のデータは、参照を追加する必要があります。

データセットのインポートドロップダウン

データセットビューは、コードワークスペースでインポートされたデータセットとして使用することはできません。代わりに、データセットビューを新規または既存のデータセットにコピーしてください。

パッケージをインポートする

左パネルの Packages タブに移動するか、または Jupyter® 用の Conda または PyPI、RStudio® 用の CRAN を直接使用してパッケージをインストールすることで、コードワークスペースにパッケージをインポートすることができます。

JupyterLab® パッケージ

JupyterLab® ワークスペースは、Conda や PyPI からのパッケージのインストールをサポートしています。デフォルトでは、Code Workspaces は conda-forgepypi.org を公開しています。他のチャンネルをコードワークスペースに追加するには、それらをバッキングコードリポジトリに追加し、コードワークスペースを再起動します。

パッケージのインストールには、Conda パッケージには mamba を、PyPI パッケージには pip を使用します。

Packages タブからパッケージを参照し、インストールしたいパッケージを選択します。これにより、 .ipynb ファイルに貼り付けて実行するためのインストールコマンドが生成されます。

CRAN

RStudio® ワークスペースは、CRAN、Posit™ Package Manager、または Bioconductor からのパッケージのインストールをサポートしています。デフォルトでは、Code Workspaces は Posit™ Public Package Manager のすべてと Bioconductor を公開しています。他のチャンネル(MRAN など)を追加するには、それらをバッキングコードリポジトリに追加し、コードワークスペースを再起動します。

パッケージのインストールには、 renv を使用します。これは renv が認証された CRAN チャンネルをサポートしているからです。 Packages タブからパッケージを閲覧し、インストールしたいパッケージを選択することができます。これにより、RStudio® Workbench にコピーペーストして実行するためのインストールコマンドが生成されます。一般的に、CRAN パッケージは renv::install("<package>") で、Bioconductor パッケージは renv::install("bioc::<package>") でインストールされます。

コードの公開

同じワークスペースの他のユーザーがあなたのコードを見るためには、作業中のブランチにコードを公開する必要があります。

コードを公開すると、CI チェックが実行され、登録されているすべての Code Workspace ダッシュボードの新しいバージョンが公開されます。ベストプラクティスとして、ダッシュボードの作成、データの分析、データ変換の作成、モデルの構築など、一つのタスクに焦点を絞ったコードワークスペースを保つことをおすすめします。一つのコードワークスペースで複数の独立したワークフローを試みるのではなく。

コードワークスペースのブランチ作成

ブランチマネージャーを使ってコードワークスペースのブランチを作成したり、ブランチをチェックアウトしたり、他のバージョン管理の活動を行うことができます。

ブランチを作成したり、ブランチを見つけるためには、Sync changes ボタンの左側にあるブランチセクションを選択します。

Branch selector

Checkout branch ダイアログから、新しくブランチを作成したり、既存のブランチを検索したりして、Checkout を選択します。

Checkout branch

Foundry の他の箇所でのブランチ作成と同様に、コードワークスペースで利用可能なデータは、現在作業中のブランチから取得されます(フォールバック あり)。出力データセットにデータを書き込む場合、そのデータは現在のブランチに書き込まれます。

Propose changes ボタンを使用して、ブランチをマスターにマージすることができます。変更を提案した後、プルリクエスト(PR)プレビューが表示されます。

コードワークスペースの共有

インターフェースの右上隅にある Share ボタンを選択することで、コードワークスペースを共有することができます。

他のユーザーがあなたのコードワークスペースのコードを見るためには、基礎となるコードリポジトリの権限も共有する必要があります。

プロジェクトに Editor または Owner の役割を持つユーザーは、コードワークスペースの設定を変更することができます。プロジェクトに Viewer の役割を持つユーザーは、ワークスペースを起動することができます。

Share button

コードワークスペースの再起動

設定の変更を反映するためなど、コードワークスペースを手動で再起動することができます。これには、インターフェースの右上隅にある Active > Restart workspace を選択します。

Restart workspace button

これにより、初期状態の新しいセッションが生成されます。ワークスペースは、バッキングコードリポジトリにコミットされたすべての変更を反映して自動的に再起動します。ただし、再起動前の状態からすべてを含むわけではありません、例えばインポートしたデータ、メモリに保存された変数、インストールしたパッケージなどです。

ワークスペースを再起動する前に、アプリケーションは自動的にチェックポイントを作成し、最新の変更を同期するようにプロンプトします。

Active > Restore checkpoint を選択することで、ワークスペースを以前のチェックポイントの状態に復元することができます。詳細は下記の checkpoints セクションをご参照ください。Code Workspaces は、ワークスペースの再起動後に自動的にワークスペースを以前のチェックポイントに復元しません。

コードワークスペースのライフサイクル

Code Workspaces を初めて開くユーザーは、/home/user/repo にクローンされたバッキングリポジトリを持つ空白のワークスペースを受け取ります。

Code Workspaces のセッションは、ユーザーの活動がない場合に自動的にシャットダウンされ、最大で 24 時間持続します(advanced settings のドキュメンテーションで自動シャットダウンについて詳しく説明しています)。

セッションがシャットダウンすると、全ての関連する状態は Foundry の checkpoint に保存され、同じユーザーが次にコードワークスペースを開くときに復元されます。これにより、ユーザーはシャットダウン時点での作業を再開することができます。

コードワークスペース内の作業の保存

Code Workspaces には、既存の作業を保存するための2つの異なる方法があります:手動のコード同期と自動的なチェックポイント作成。

ワークスペースのチェックポイントよりも、基礎となるコードリポジトリに同期したコード(必要なパッケージのインストールをコードの一部として)に依存することをおすすめします。コードの同期は、堅牢なワークフローを保証し、特定のチェックポイントにアクセスできない他のユーザーとの共同作業を容易にします。

コードの同期

Code syncing は手動で行うアクションで、コードワークスペースで既存の作業を保存するための推奨される方法です。コードの同期とは、ファイルをワークスペースのバッキングコードリポジトリにコミットすることを意味します。コード同期を通じて保存された作業は、リポジトリに永久に保存されます。そして、/home/user/repo フォルダー内の全てがその同期の一部として保存されます。コード同期は、変数の内容、環境上のインストール済みパッケージ、データ、コードセルの出力などの既存の状態を保存しません。ワークスペースの同期履歴は、ワークスペースのバッキングコードリポジトリを通じて参照することができます。一般的に、変更履歴を維持し、すべての関連作業が適切に永久保存されていることを確認するために、頻繁にコードを同期することをおすすめします。

ワークスペース内の既存のすべての変更を保存するには、ワークスペースの右上隅にある Sync changes ボタンを選択します。これが成功すると、変更がワークスペースのバッキングリポジトリにコミットされます。これには、右上隅にあるギアアイコンを選択し、Open code repository を選択することでアクセスできます。

チェックポイント

チェックポイント作成 は、セッション間で復元できるようにワークスペースの既存の状態のスナップショットを自動的に取る機能です。コミットされたファイルだけを保存するコード同期とは異なり、チェックポイントは /home/user/repo の全ての内容(未コミットのコード変更を含む)、/home/user/libs (インストールされたパッケージを含む)、/home/user/envs (Conda 環境)、/home/user/data (ユーザーがダウンロードした追加データ)を保存します。RStudio® の場合、メモリに保存された変数は /home/user/repo/.RData に保存されます。

デフォルトでは、Code Workspaces は特定のユーザーのセッションのチェックポイントを10分ごとに保存します。チェックポイントはユーザー間で共有されません。Code Workspaces はまた、ワークスペースがシャットダウンする前にチェックポイントを作成します(例えば、手動再起動、手動シャットダウン、自動シャットダウンなど)。非アクティブなコードワークスペースは新しいチェックポイントを生成しません。任意のチェックポイントは最大30日間持続します。その結果、有効なチェックポイントが利用できないため、30日以上放置されたワークスペースは、バッキングリポジトリに同期されたものからのみ作業を復元することができます。チェックポイントは、セッション間でワークスペースの状態を保存するための安全ネットとして設計されています。チェックポイントを主要な保存形式として依存するべきではありません。ワークスペース内の既存の作業を頻繁に同期することを強くおすすめします。

チェックポイントを復元すると、ワークスペースが再起動され、ホームフォルダがチェックポイントが作成された時点の状態に復元されます。


RStudio® および Shiny® は Posit™ の商標です。

Jupyter®、JupyterLab®、および Jupyter® のロゴは NumFOCUS の商標または登録商標です。

すべての第三者の商標(ロゴやアイコンを含む)は、それぞれの所有者の財産となります。それらとの提携または推薦を示すものではありません。