Visual Studio Code Server
Visual Studio Code Serverは、デスクトップPCや仮想マシン(VM)などのリモート開発マシンで実行できるサービスです。これにより、SSHを必要とせずに、ローカルのVS Codeクライアントを介して、どこからでもそのリモートマシンに安全に接続できます。
VS Code Serverとは?
VS Codeでは、ユーザーが最も生産的になれる環境をシームレスに活用できるようにしたいと考えています。VS Code Remote Development extensionsを使用すると、Windows Subsystem for Linux (WSL)、SSHを介したリモートマシン、および開発コンテナでVS Codeから直接作業できます。これらの拡張機能は、リモート環境にサーバーをインストールし、ローカルのVS Codeがリモートのソースコードやランタイムとスムーズにやり取りできるようにします。
現在、スタンドアロンの「VS Code Server」を提供しています。これは、リモート拡張機能で使用される基盤となるサーバーと同じものに基づいて構築されたサービスであり、インタラクティブなCLIやvscode.devへの安全な接続の促進など、いくつかの追加機能が含まれています。

アーキテクチャ
ローカルでもリモートでも、デスクトップでもブラウザでも、エディターをどのように使用しても、統一されたVS Codeエクスペリエンスを提供したいと考えています。
VS Code Serverへのアクセスは、既存のcode CLIに組み込まれています。
CLIは、VS Codeクライアントとリモートマシンの間にトンネルを確立します。トンネリングは、データをあるネットワークから別のネットワークに安全に送信します。

VS Code Serverのエクスペリエンスには、いくつかのコンポーネントが含まれています
- VS Code Server:VS Codeのリモートエクスペリエンスを可能にするバックエンドサーバー。
- Remote - Tunnels extension:ローカルのVS Codeクライアントに自動的にロードされ、リモートマシンへの接続を容易にします。
シナリオ
VS Code Serverを使用すると、次のような新しい方法でVS Codeを使用できます。
- SSHサポートが制限されているリモートマシンでの開発、またはWebベースのアクセスが必要な場合。
- iPad/タブレットやChromebookなど、VS Codeデスクトップのインストールをサポートしないマシンでの開発。
- すべてのコードがブラウザのサンドボックスで実行できるというクライアント側のセキュリティの利点を体験できる。
はじめに
トンネリングを有効にするには2つの方法があり、それぞれのドキュメントコンテンツで詳しく説明されています。
試すべきこと
ライセンスとその他のコマンド
VS Code Serverを初めて実行すると、ライセンスの条項が表示されます。VS Code Serverのライセンスはこちらで確認できます。
* Visual Studio Code Server
*
* By using the software, you agree to
* the Visual Studio Code Server License Terms (https://aka.ms/vscode-server-license) and
* the Microsoft Privacy Statement (https://privacy.microsoft.com/en-US/privacystatement).
code -hを実行してCLIのその他のコマンドを調べることができ、特にトンネリングコマンドはcode tunnel -helpを実行して調べることができます。

拡張機能コマンド
CLIと同様に、VS Code Remote Tunnels拡張機能には、VS Codeでコマンドパレット(F1)を開き、「Remote Tunnels」と入力して調べることができる追加のコマンドがあります。詳細については、Remote Tunnels documentationをご覧ください。
テレメトリー
テレメトリを無効にするには、VS Code Serverを起動するときに--disable-telemetryを渡します:code tunnel --disable-telemetry。または、エラーのみを収集するなど、初期のテレメトリレベルを指定したい場合は、--telemetry-levelとその後にレベル(例:error)を渡すことができます。
テレメトリがCLIで無効になっていない場合、VS Code Serverは、接続が成功するとクライアントのテレメトリ設定(vscode.devまたはデスクトップのテレメトリ設定)を尊重し始めます。
よくある質問
VS Code Serverは、複数のユーザーが同じリモートインスタンスにアクセスするように設計されていますか?
いいえ、サーバーのインスタンスは単一のユーザーがアクセスするように設計されています。
VS Code Serverをサービスとしてホストできますか?
いいえ、VS Code Serverライセンスに明記されているように、サービスとしてホストすることは許可されていません。
VS Code Serverが使用するエンドポイントのリストはありますか?
制限された環境で作業している場合、VS Code Serverが以下の記事に記載されているエンドポイントにアクセスできることを確認する必要がある場合があります。
- https://vscode.dokyumento.jp/docs/setup/network#_common-hostnames
- https://vscode.dokyumento.jp/docs/remote/ssh#_what-are-the-connectivity-requirements-for-the-vs-code-server-when-it-is-running-on-a-remote-machine-vm
他に拡張機能の制限はありますか?
WebベースのVS Codeインスタンスを使用している場合、純粋なUI拡張機能はサポートされていません。詳細については、拡張機能作成者のRemote Developmentガイドで確認できます。
ブラウザの制限はありますか?
ブラウザで作業する場合、考慮すべき特定の制限と構成手順があります。詳細については、VS Code for the Webドキュメントで確認できます。
VS Code Serverを最新の状態に保つにはどうすればよいですか?
リモートマシンに接続したときに更新が利用可能であれば、VS Codeで通知を受け取り、この通知を介して直接更新できます。
キーリングストレージに関するエラーが表示されます。どうすればよいですか?
設定同期には、設定同期サーバーに対する認証が必要です。対応するシークレットはサーバーに永続化されます。これには、サーバーにキーリングを設定する必要があります。キーリングが設定されていない場合、VS Code Serverは、サーバーに格納されたインメモリシークレットにフォールバックします。この場合、シークレットはサーバーの存続期間中のみ永続化されます。
この問題は、より多くのコンテキストを提供し、トラブルシューティングに役立つ可能性があります。引き続き問題が発生する場合は、VS Code Remote GitHubリポジトリで新しい問題を報告してください。
フィードバックや問題の報告はどこで行えますか?
問題やフィードバックがある場合は、VS Code Remote GitHubリポジトリで問題を報告してください。問題を報告する際は、冗長なログを含めてください。これは、VS Code Serverを-vフラグ(code -v tunnel)で起動することで有効にできます。
code-serverラベルでVS Code Serverの問題のみをフィルタリングできます。