kkamegawa's weblog

Visual Studio,TFS,ALM,VSTS,DevOps関係のことについていろいろと書いていきます。Google Analyticsで解析を行っています

Devblogラジオ第二回完全版公開しました

YouTubeライブの承認が下りて、テストもして大丈夫だと思ったら、一緒にしゃべっている松村さんの音声が入っていなかったというね…すいません。

我々はTeamsでしゃべっていて、そちらの録画ではもちろん問題なかったので、Teamsの録画を編集して完全版としてこちらに公開しています。


Devblogラジオ第二回(完全版)

もうすぐ .NET 5正式版公開ですね。RC2をネタに二人でしゃべっています。足利さんは体調不良ということでお休みでした。お大事に。

GitHub Codespaces for Visual Studioを試す

visualstudio.microsoft.com

GitHub Codespaces for Visual Studio Codeは多く使われていると思いますが、Visual Studio版もEarly Accessが開始されています。申し込んでいたのですが、ようやく順番が回ってきたので、試してみました。Visual Studo Code版はブラウザーだけで使えることが売りですが、Visual Studio版はローカルにVisual Studioのインストールが必須です。

  • Visual Studio 2019 16.8 Previewが必要
  • Visual Studioのプレビュー機能からCodespacesの有効化が必要

f:id:kkamegawa:20201016130151p:plain

VS2019 Preview(16.8 Preview)を起動するときにコードスペースに接続という項目があります。これを使うのは、環境プレビュー機能GitHub Codespacesに接続するをチェックしておきます。

f:id:kkamegawa:20201016130156p:plain

Codespaces以外にも多くのプレビューがあるので、チェックするといいでしょう。

f:id:kkamegawa:20201016130159p:plain

コードスペースに接続をクリックすると、このような画面になります。GitHubにサインインをクリックすると、認証画面が表示されます。

f:id:kkamegawa:20201016130203p:plain

これだけの権限を使いますという表示が出ます。Authorize GitHubをクリックして承認します。このときパスワードは聞かれますが、多要素認証していてもコード入れさせられないんですね。

f:id:kkamegawa:20201016130208p:plain

認可完了後、接続するレポジトリー、インスタンスの種類、アイドルタイムアウト(最大2時間)の設定ができます。

f:id:kkamegawa:20201016130213p:plain

インスタンスタイプは4core/8GB RAM, 8core/16GB RAMのどちらかのようです。これ多分Windowsコンテナーなんでしょうかね。サーバーでのフォルダーはc:\workspaces\配下に該当のレポジトリー名を新規フォルダーで作っているようです。

f:id:kkamegawa:20201016130216p:plain

リモートなので、最初にgitのメールアドレスと名前を登録します。多分ずっと保持されるとは思います…多分(まだ再起動してない)。

f:id:kkamegawa:20201016130220p:plain

作ったとき思ったのですが、VS code版に比べて最初に作るのがだいぶ早いような?接続されると、タイトルバーのところでリモートであることがわかります。

f:id:kkamegawa:20201016130224p:plain

それ以外は全く変わらないようで、ぱっと見わからないですね。

f:id:kkamegawa:20201016130229p:plain

デバッグ実行もできます。通信しているというようなストレスもあまり感じないですね。LiveShare的な通信しているのでしょうか。ローカルとあまり変わらないです。

f:id:kkamegawa:20201016130232p:plain

右クリックメニューに関してはだいぶ違いますね。すっかり簡素ですし、拡張機能の類は使えないようです。

f:id:kkamegawa:20201016130237p:plain

リモートで動いているので、デバッグのプロセスIDはローカルに存在していません。デバッグコンソールもローカルに出ていないので、GUIアプリのデバッグや特権が必要なアプリの開発はちょっと厳しいですね。

中がどうなっているか(多分コンテナーなのでしょうけど)わからないですが、今後としては、せめてリモートデスクトップでデバッグ中のGUIをクライアントに飛ばすってのは欲しいところですね。

ぱっと見、Codespacesが実行されているサーバーのコンソールにアクセスする方法やWinodwsフォルダーをみる方法は見つからなかったけど、何か見つけたら報告してみたい。

実行するサーバーが4core/8GB RAM, 8core/16GB RAMとなかなかリッチ(Aインスタンスかな?)なので、正式版になった後の料金が気になるところです。セルフホスト版もあるといいなぁ。

Azure PipelineのパイプラインでLibraryを勝手に使われたくない場合にするセキュリティ設定

ascii.jp

業務で使う場合は、GitHubのPersonal Access Tokenをどう扱うかは気を付ける必要があります。Libraryに保存しちゃうと意図しないPipelineで使われてしまうリスクがあるので、どうすると良いですかね?

という疑問が末尾に書かれていたので、どうするのがいいか考えてみましょう。まず、大前提として、GitHubのPATをLibraryに格納する場合、GitHubのPATにアクセスできる人だけをAdministratorにしておきます。

f:id:kkamegawa:20201014194824p:plain

PAT単位にセキュリティを設定する場合はPATを作ったユーザーのみadministratorにします。デフォルトはLibraryからの継承なので、都合が悪い場合は継承を切ってください。ただし、Build Serviceアカウントを削除してしまうとビルドエージェントがLibraryを参照できなくなるので気を付けてください。

f:id:kkamegawa:20201014194305p:plain

Libraryのセキュリティでも設定できます。通常はLibraryを管理するユーザーを決めておきましょう。Build AdministratorかProject Administratorのみ管理者なので大体大丈夫のはずです。

f:id:kkamegawa:20201014194319p:plain

記事内で心配されていた「知らないpipelineに使われる」というのはservice connectionの権限で防ぎます。https://dev.azure.com/{organization}/{project}/_settings/adminservices画面でGitHubのへの接続を作っています。

f:id:kkamegawa:20201014203232p:plain

Approvers and ChecksはEnvironmentと同じ設定ができます。典型的にはBusiness Hourだけ使えるようにするとかそういった制御ができます。

docs.microsoft.com

下のSecurityをクリックすると、画面の真ん中にPipeline permissionがあるので、そこでGitHubへの接続を使えるパイプラインを明示的に指定します。

f:id:kkamegawa:20201014203559p:plain

これで仮にLibraryの値を意図しないパイプラインで参照されたとしても、GitHubへのアクセスができなくなります。

いちいちプロジェクトごとにそんな設定するのめんどいなぁ、という場合、その下にあるProject Permissionからこのservice connectionが使用可能なプロジェクトを指定します。

f:id:kkamegawa:20201014203747p:plain

ここで指定されたプロジェクトはこのGitHubへの接続が使用可能になります。大きなプロジェクトではチームプロジェクト単位でservice connectionを作るのではなく、特定のプロジェクトに集中させて、ほかではこういった外部接続を使わないようにすれば集中管理が可能になります。

Devblog ラジオはじめました

松村さんと「もうちょっとゆるいイベントやりたいねぇ」ということで、MicrosoftのVisual Studioブログをネタにして夜のラジオみたいな感じで適当にしゃべる番組しようか?ということでノリではじめてみました。

第一回はAzure DevOps拡張機能についてです。あまり使っている人の話聞かないので、こんなのあるよーという紹介編ですね。よかったら動画もみてください。

今のところ第二第四金曜日(この前は土曜でしたけど)の22時から一時間くらいでやろうかな、と思っています。YouTube Liveで放送するつもりがどうしてもライブ申請が通らなくて困っています…なんでだ。おかげで急遽Teamsにしたけど、設定間違えてコメント付けられない状態になってるわ、えらいご迷惑をおかけいたしました。次回までにはYouTubeライブの申請が通るといいなぁ。

(追記)
今見たらライブの申請通ってました。次回は練習してほんとにYouTubeライブでやります。

devblog.connpass.com

単発でしゃべってみたい人、こんな記事ネタでしゃべってほしいなどがありましたらこの動画の登場人物の誰かにコンタクトをお願いしますというか、こちらからお願いするかもしれません。特にX-Plat関係や最新のクライアントに強い人いないので😅。

www.youtube.com

よかったら高評価もお願いします。