Google Cloud Platform

Visual Studio / PowerShell との連携強化で、GCP の .NET サポートが一段と進展

Google Cloud Platform(GCP)は .NET ワークロードの優れた実行環境です。Cloud Tools for Visual Studio、Cloud Tools for PowerShell、App Engine flexible environment 向けの ASP.NET Core ランタイムそれぞれの最新リリースにより、さらに進化を遂げています。

Cloud Tools for Visual Studio

私たちは、Stackdriver LoggingStackdriver Error Reporting のビューア機能を Cloud Tools for Visual Studio に組み込み、Stackdriver による問題の診断やコードのモニタリングを Visual Studio で行えるようにしました。また、Visual Studio 内でリソースを管理できるようにするため、Google Cloud Storage および Google Cloud Pub/Sub と Google Cloud Explorer との連携を強化しています。

image0088.png

Stackdriver の統合

いかに優れたコードでも、本番環境ではうまく動かないことがあります。こうした問題の解決を支援するため、私たちは Stackdriver Logging と Stackdriver Error Reporting の機能を Visual Studio に統合し、Visual Studio ソリューションを開きながら原因を特定できるようにしました。

アプリケーションが ASP.NET 4.x と ASP.NET Core のどちらをベースにしていても、Stackdriver Logging を使って .NET アプリケーションのログを記録していれば、アプリケーションが生成したログ エントリを Visual Studio 内で直接参照できます。

-Dc36nOJNkYVbTqnLy7ENRPSnr1TBzcSa00hYnHL9wHNwL5Nx0n4HEL8owzk56ZGRhi3O54lJaYtV1f5a4HXToksBfsBTvVdqN2nVtMJgvBhNUzGS-glhtuWGL_KgX8bQ3G-5mdBd6f7.PNG

Google App Engine の特定のサービスやバージョンのログをクエリしたり(上図参照)、特定の Compute Engine VM のログ エントリを調べたりすることも可能です。

しかも、私たちの NuGet パッケージである Google.Cloud.Logging.V2 を使ってログ エントリを送信している場合は、ログ エントリとその生成元であるソース コード行を対応づけることができます。ログ エントリがどこから生成されたかをユーザーが把握できるように、Cloud Tools for Visual Studio が git からソース コードの該当するバージョンをフェッチしようとします。この機能の詳細は Stackdriver Logs Viewer のドキュメントをご覧ください。

アプリケーションがクラッシュしたときは、Stackdriver Error Reporting の出番となります。Stackdriver Error Reporting を用いてエラー レポートを Stackdriver に送信するように設定しておけば、Visual Studio 内からエラー レポートを直接見ることができます。

このエラー レポートでは、頻繁に発生するエラーや、エラーのフルスタック トレースを参照したり、エラーの原因となったソース コード行に直接移動したりできます。詳細は Stackdriver のエラー レポート表示に関するドキュメントをご覧ください。

Cloud Explorer の機能向上

アプリケーションの開発が Visual Studio 内で完結できればそれに越したことはないと、皆さんはお考えでしょう。Visual Studio から離れたり戻ったりすると、コンテキストが大きく変わってしまうからです。

重要度の高いリソースを Visual Studio 内で直接管理できるようにするため、私たちは Google Cloud Explorer の改良を続けています。Cloud Explorer の最新リリースでは、Cloud Storage との統合が一段と進んだほか、Cloud Pub/Sub リソースを管理するための新しいノードが追加されました。

Cloud Storage との統合によって何が可能になったのかを見てみましょう。従来の Cloud Explorer では現在のプロジェクト下にどのようなバケットが存在するかを確認できました。これに対して Cloud Explorer の新しいリリースでは、バケットを開き、内部にどのようなファイルが保存されているかも確認できます。バケットをまるでハード ドライブのように扱えるのです。

Y0vB-ywiPuYWzWmHV_ga3TJFH2d1LFLU7OdPhGtqzcqdHXbVfR-NxlQF_rZAusenJ8egkEUjO37W-5512tZCRqTqHLTkwJzk-dlVyiY6hZz1Wc5GNrTwOYrxmx1Ei9DrFwxOYm546dhg.PNG

今回の統合により、Cloud Storage バケットの内容の管理(バケット内外へのファイルのコピー、ファイル名の変更、新しいディレクトリの作成)を Visual Studio 内で行えるようになりました。バケット管理機能の詳細はこちらのドキュメントをご覧ください。

Cloud Explorer の新リリースでは Google Cloud Pub/Sub リソースも管理対象に加わりました。

XYuvDSSOw0pCNEWwTRHF9arqQAR1NciKxTpNtW9oVQkttLadAo0uhaTcatkUXnKsM2Sv8bPUPGoHmGsWBM_UB8LfRg-5xJ4VRoHVtgrYx6btTOYFOFz0SImNNcReTpZ6SCjfEDkuc6d6.PNG

新しい Cloud Pub/Sub ノードは、Visual Studio 内で Pub/Sub のトピックとサブスクリプションを管理したり、テストのために既存トピックに新しいメッセージを送信したりすることを可能にします。この新ノードの詳細はこちらのドキュメントをご覧ください。

新しい PowerShell コマンドレット

Visual Studio はほとんどの開発作業を強力に支援する環境ですが、PowerShell を使って GCP リソースを自動化するのが適切である場合もあります。私たちが、より多くのリソースを管理できる新しいコマンドレットを Cloud Tools for PowerShell に追加したのはそのためです。具体的には、クエリの実行やテーブルの作成といった BigQuery の操作を行うコマンドレットと、Google Container Engine のクラスタおよびノードを管理するコマンドレットを追加しました。

Kubernetes や Google Container Engine(GCP で提供されるフルマネージド Kubernetes サービス)は、クラウドのワークロードを管理する方法として高い人気があります。そこで私たちは、PowerShell から Container Engine クラスタを管理するコマンドレットのセットを用意しました。たとえば、新しいクラスタを作成するには次のコマンドレットを使います。

  # Creates a Container Engine Node Config with image type CONTAINER_VM
# and 20 GB disk size for each node.
$nodeConfig = New-GkeNodeConfig -DiskSizeGb 20 `
                                -ImageType CONTAINER_VM
# Creates a cluster named "my-cluster" in the default zone of the
# default project using config $nodeConfig and network "my-network".
Add-GkeCluster -NodeConfig $nodeConfig `
               -ClusterName "my-cluster" `
               -Network "my-network"

Container Engine コマンドレットの詳細はこちらのドキュメントをご覧ください。

また BigQuery は、数十億行のデータを保存し、それらに対してクエリを実行してインサイトを引き出すための優れたデータ ウェアハウジング ソリューションです。BigQuery についても、私たちは PowerShell から直接管理できる新しいコマンドレットを用意しました。たとえば、新しい BigQuery テーブルを作成するには次のようにします。

  # Creates a schema object to be used in multiple tables.
$schema = New-BqSchema "Page" "STRING" | New-BqSchema "Referrer" "STRING" |
    New-BqSchema "Timestamp" "DATETIME" | Set-BqSchema
# Creates a new table with the Schema object from above.
$table = $dataset | New-BqTable "logs2014" -Schema $schema

BigQuery コマンドレットの詳細はこちらのドキュメントをご覧ください。

フィードバックを募集中

私たちは、.NET や Windows ワークロードの実行環境として引き続き GCP の改良を行い、重要な機能の開発に取り組んでいきたいと考えています。フィードバックがありましたら、いつでもお寄せください。Cloud Tools for Visual StudioCloud Tools for PowerShell それぞれの GitHub リポジトリでイシューを開くことができます。

* この投稿は米国時間 9 月 1 日、Senior Software Engineer である Ivan Naranjo によって投稿されたもの(投稿はこちら)の抄訳です。

- By Ivan Naranjo, Senior Software Engineer