C#でGoogle Cloud PlatformのCloud Vision APIを使ってみようVisual Studioで始めるGoogle Cloud Platformプログラミング(1/2 ページ)

Googleが提供するクラウドプラットフォームの機能を、Visual StudioとC#という.NET開発者が手慣れた環境から利用してみよう!

» 2017年12月22日 05時00分 公開
[かわさきしんじInsider.NET編集部]
「Visual Studioで始めるGoogle Cloud Platformプログラミング」のインデックス

連載目次

 Google Cloud Platform(以下、GCP)は、Googleが提供するクラウドサービスであり、Googleが社内で利用しているものと同じ技術やツールをユーザーとして利用し、さまざまなアプリを実行できる。GCPで提供されているサービスは以下の9つのカテゴリーに分類されている。

  • コンピューティング
  • ストレージとデータベース
  • ネットワーキング
  • ビッグデータ
  • IoT
  • 機械学習
  • IDとセキュリティ
  • 管理ツール
  • デベロッパーツール

 .NET開発者に向けてはCloud SDKCloud Tools for Visual StudioといったSDKやVisual Studio(以下、VS)用の拡張機能が提供されている。特に後者を利用することで、.NETベースで作られたWebサイトやサービスをGCP上で動作する仮想マシンに簡単に移行できる。

 その一方で、GCPが提供しているAPIを利用するためのライブラリもNuGetを介して提供されている。アプリそのものをクラウドに持っていくのではなく、GCPのAPIをアプリから呼び出すだけでよければ、これらを使うことでGCPが提供するさまざまなサービスを利用できる。

 今回はNuGetで提供されているAPIアクセス用のパッケージを利用しながら、VSからGCPを利用するシンプルな方法を見てみよう。Cloud SDKやCloud Tools for VSについては次回以降で取り上げる予定だ。

Google Cloud Libraries for .NETの使い方

 Google Cloud Libraries for .NETは、今述べた「.NETからGCPが提供するAPIにアクセスするためのライブラリ」だ。NuGetから入手できる。これとは別にGoogle APIs client Library for .NETもある。ただし、こちらは現在でもサポートされてはいるものの、基本的にはメンテナンスモードとなっていて、前者の利用が推奨されているので気を付けよう。

 これらのライブラリには、GA(一般提供)レベルのものもあれば、βレベル/αレベルのものもある。詳細は上記のリンクを参照してほしい。

 ライブラリはNuGetで配布されているので、これを利用するにはVSで使いたいAPIにアクセスするためのパッケージをインストールすればよい。加えて、以下で述べるプロジェクトの作成や認証情報の設定も必要になる。本稿ではコンソールアプリからCloud Vision APIを使ってみることにする。

Cloud Vision APIの公式サイト Cloud Vision APIの公式サイト

 Cloud Vision APIは、機械学習モデルを利用して、画像の分析を行うためのAPI。渡されたのがどんな画像かを判断したり、テキストを抽出したりできる。

前準備

 先ほども述べた通り、GCPが提供するAPIを利用するには以下の準備が必要になる。

  • Google Developer Consoleでのプロジェクトの作成
  • APIの有効化
  • APIにアクセスするための認証情報の設定
  • VSでのプロジェクト作成とNuGetパッケージのインストール

 これらの手順を見ていこう。

プロジェクトの作成

 まずはGCPのAPIを利用するためのプロジェクトを作成して、課金の設定を行っておく必要がある。まだ、GCPに登録をしていないのであれば、その前にGCPのトップページで[無料トライアル]ボタンをクリックして、アカウントを作成する必要がある。このときには利用規約に同意した上でアカウントの種別、住所、電話番号、支払い情報などの情報を入力する必要がある。案内の通りに入力をしていけば問題なく登録はできるはずだ。

GCPのトップページ GCPのトップページ

 GCPのプロジェクトを作成するにはGoogle Developer Consoleの[リソースの管理]画面を利用する*1(GCPにアカウントを作成した直後には「My First Project」というプロジェクトがあるので、これを使用してもよい。その場合は次の「APIの有効化」までスキップしよう)。

[リソースの管理]画面 [リソースの管理]画面

 ここで[プロジェクトを作成]リンクをクリックすると次の画面が表示される。

[新しいプロジェクト]画面 [新しいプロジェクト]画面

*1 [リソースの管理]画面が表示されない場合、ページ上部にあるドロップダウン(以下の画像では「My First Project」と書かれている)をクリックして、[選択]ダイアログにある[+]ボタンをクリックすると、上に示した[新しいプロジェクト]画面が表示される。

[選択]ダイアログで[+]ボタンをクリックする [選択]ダイアログで[+]ボタンをクリックする


 ここでプロジェクト名を入力して[作成]ボタンをクリックすると、プロジェクトが作成される。ここでは「InsiderNetVSGCPTest」という名前でプロジェクトを作成している。その後、[リソースの管理]画面やページ上部にあるドロップダウンで今作成したプロジェクトを選択する。また、課金情報の設定も必要に応じて行っておこう(詳細は「.NET で Hello World を実行する方法」などを参照のこと)。

 なお、本稿で使用するCloud Vision APIの利用料金については「Cloud Vision API」ページに掲載されている。本稿で試している程度の利用であれば、無料で利用できるはずだ。

APIの有効化

 プロジェクトを選択したら、Google APIsのダッシュボードに移動して、使用するAPIを有効化する。

Google APIsのダッシュボード Google APIsのダッシュボード

 このページ上部にある[API とサービスの有効化]リンクをクリックする。すると、[新しい API ライブラリへようこそ]という画面が表示されるので、ここで使用するAPIを検索しよう。

[新しい API ライブラリへようこそ]画面 [新しい API ライブラリへようこそ]画面

 ここではCloud Vision APIを使用するので、検索ボックスに「Vision」などと入力すればよい。

検索結果 検索結果

 検索結果(といっても上の画像を見れば分かるように1件だけ表示される)から、[Google Cloud Vision API]というカードをクリックすると、次のようになる。

[有効にする]ボタンをクリックすると、Cloud Vision APIが有効化される [有効にする]ボタンをクリックすると、Cloud Vision APIが有効化される

 ここで[有効にする]ボタンをクリックすると、このプロジェクトでCloud Vision APIが有効化される。

認証情報の設定

 次に認証情報の設定を行う。これにはGoogle APIsの[認証情報]ページを利用する。APIを有効化すると、Google APIsのダッシュボードが表示されるので、左側のペーンから[認証情報]をクリックすればよい。このページには「APIのアクセスには認証情報が必要だから、認証情報を作成せよ」というメッセージが表示されているので、[認証情報を作成]ドロップダウンをクリックして、表示されたメニューから[サービス アカウント キー]を選択する。

[認証情報]画面 [認証情報]画面

 すると次のようなページが表示されるので、必要な情報を入力していく。

[サービス アカウント キーの作成]画面 [サービス アカウント キーの作成]画面

 ここでは、以下を入力している。

項目 内容
[サービス アカウント] [新しいサービス アカウント]
[サービス アカウント名] InsiderNetVSGCPTestAccount
[役割] [Project]−[オーナー]
[キーのタイプ] [JSON]
サービスアカウントキーの作成内容

サービスアカウントキーの作成内容 サービスアカウントキーの作成内容

 最後に[作成]ボタンをクリックすると、JSONファイルのダウンロードが始まるので、これを適切な場所に保管しておこう。また、そのJSONファイルへのパスを環境変数GOOGLE_APPLICATION_CREDENTIALSにセットしておく。アプリを実行する環境でこの環境変数が設定されていないと、認証に失敗するので注意しよう。

 以上でGCP側での設定作業は終了だ。次にVS 2017でプロジェクトを新規作成して、NuGetパッケージのインストールとコードの記述を行おう。

       1|2 次のページへ

Copyright© Digital Advantage Corp. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

Microsoft & Windows最前線2025
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。