arrow_back

Google で使用される API の概要

参加 ログイン

Google で使用される API の概要

1時間 クレジット: 1

GSP294

Google Cloud セルフペース ラボ

概要

API(アプリケーション プログラミング インターフェース)は、デベロッパーがコンピューティング リソースやデータにアクセスできるようにするためのソフトウェア プログラムです。さまざまな分野の企業が API を一般公開しており、デベロッパーは自身のアプリケーションやコードベースに専用のツール、サービス、ライブラリを組み込むことができます。

このラボでは、API のアーキテクチャと基本機能について学習した後、Google Cloud Shell で Cloud Storage API メソッドを構成して実行する実践演習を行います。このラボを受講すると、API 通信、アーキテクチャ、認証の基本原理を理解できます。また、API に関する実践的な経験を積んで、今後のラボやプロジェクトに活かすこともできます。

目標

このラボでは、次のことについて学びます。

  • Google API
  • API のアーキテクチャ
  • HTTP プロトコルとメソッド
  • エンドポイント
  • REST(Representational State Transfer)および RESTful API
  • JSON(JavaScript Object Notation)
  • API 認証サービス

前提条件

これは入門レベルのラボで、API の予備知識や Google API の使用経験がほとんどまたはまったくない方を対象としています。シェル環境やコマンドライン インターフェース ツールの知識があれば役立ちますが、必須ではありません。GCP Console と Cloud Storage に関する知識は必須です。このため、このラボを受講する前に少なくとも次に示すラボを受講してください。

準備ができたら下にスクロールし、手順に沿ってラボ環境を設定します。

設定と要件

[ラボを開始] ボタンをクリックする前に

こちらの手順をお読みください。ラボの時間は記録されており、一時停止することはできません。[ラボを開始] をクリックするとスタートするタイマーは、Google Cloud のリソースを利用できる時間を示しています。

この Qwiklabs ハンズオンラボでは、シミュレーションやデモ環境ではなく、実際のクラウド環境を使ってご自身でラボのアクティビティを行うことができます。そのため、ラボの受講中に Google Cloud にログインおよびアクセスするための、新しい一時的な認証情報が提供されます。

必要なもの

このラボを完了するためには、下記が必要です。

  • 標準的なインターネット ブラウザ(Chrome を推奨)
  • ラボを完了するために十分な時間

注: すでに個人の Google Cloud アカウントやプロジェクトをお持ちの場合でも、ラボでは使用しないでください。

注: Chrome OS デバイスを使用している場合は、シークレット ウィンドウを開いてこのラボを実行してください。

ラボを開始して Console にログインする方法

  1. [ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるポップアップでお支払い方法を選択してください。 左側のパネルには、このラボで使用する必要がある一時的な認証情報が表示されます。

    Google Console を開く

  2. ユーザー名をコピーし、[Google Console を開く] をクリックします。 ラボでリソースが起動し、別のタブで [アカウントの選択] ページが表示されます。

    ヒント: タブをそれぞれ別のウィンドウで開き、並べて表示しておきましょう。

  3. [アカウントの選択] ページで [別のアカウントを使用] をクリックします。

    アカウントを選択

  4. [ログイン] ページが開きます。[接続の詳細] パネルでコピーしたユーザー名を貼り付けます。パスワードもコピーして貼り付けます。

    重要: 認証情報は [接続の詳細] パネルに表示されたものを使用してください。ご自身の Qwiklabs 認証情報は使用しないでください。請求が発生する事態を避けるため、GCP アカウントをお持ちの場合でもそのアカウントはラボで使用しないでください。

  5. 以降のページでは次の点にご注意ください。

    • 利用規約に同意してください。
    • 復元オプションや 2 要素認証プロセスは設定しないでください(一時的なアカウントであるため)。
    • 無料トライアルには登録しないでください。

しばらくすると、このタブで GCP Console が開きます。

API - 内容と目的

前述のとおり API(アプリケーション プログラミング インターフェース)は、デベロッパーがコンピューティング リソースやデータにアクセスできるようにするためのソフトウェア プログラムです。API は特定のルールとメソッドに則って、リクエストとレスポンスを明確に伝達します。

API を使うとデータとコンピューティング リソースにアクセスできるため、デベロッパーの作業効率が大幅に向上します。あらゆるプログラム、メソッド、データセットをゼロからビルドするよりも、API を使用する方がはるかに簡単です。API は抽象化の原則に基づいてビルドされています。ご自身の環境で使用するために、API の内部の仕組みや複雑な部分を理解する必要はありません。

API は、デベロッパーが使用することを前提にビルドされているため、多くの場合、グラフィカル ユーザー インターフェース(GUI)は提供されません。ただし、このような通例にも例外はあります。Google は API Explorer という新しいツールをリリースしました。このツールを使用すると、さまざまな Google API をインタラクティブに試すことができます(詳細については、後で API Explorer: Qwik Start ラボをご覧ください)。

GCP の API

Google は、さまざまな分野に適用できる API を提供しています。API は、ウェブ開発、機械学習、データ サイエンス、システム管理ワークフローでよく使用されます。しかし、これは使用例のごく一部です。たとえば AnyAPI を調べれば、利用できる API がどれだけあるかがわかるでしょう。

Qwiklabs でラボ インスタンス用の新しい GCP プロジェクトがプロビジョニングされる場合は、ほとんどの API がバックグラウンドで有効化されるため、すぐにラボのタスクを開始できます。Qwiklabs 以外で独自の GCP プロジェクトを作成した場合、特定の API をユーザー自身で有効化する必要があります。

GCP ユーザーとしての熟練度が増すにつれ、ワークフローでさらに多くの API を使用するようになるでしょう。経験豊富な GCP ユーザーは、ほぼ例外なく Google の API をローカル環境で統合して使用します。GCP Console を使用してツールやサービスを実行することは、ほとんどありません。さまざまな言語でさまざまな Google API を使用できるように、Google は多くのラボを提供しています。たとえば次の 2 つです。

それでは、API ライブラリを調べて、どのような Google API が利用できるか確認してみましょう。

API ライブラリ

ナビゲーション メニューを開き、[API とサービス] > [ライブラリ] を選択します。

aaa6309ec4a35ccd.png

API ライブラリには、200 を超える Google API のクイック アクセス、ドキュメント、構成オプションが用意されています。Console に格納されてはいますが、ライブラリでは GCP 主体のものだけでなく、すべての Google API にアクセスできることに注目してください。これは重要なポイントです。つまり Google API はすべての Google サービスの基礎であって、Google API のすべてが GCP のカテゴリに分類されるわけではないということです。

では実際に API ライブラリで API を有効化してみましょう。ここではフィットネス サイトのモバイル デベロッパーとして、Google Fitness API を使用してアプリケーションをビルドすることを想定します。

「API とサービスを検索」検索バーに「Fitness API」と入力して、Enter キーを押します。検索結果のリストで、Fitness API をクリックします。続いて [有効にする] をクリックします。ブラウザ ウィンドウの [戻る] ボタンを 2 回クリックして API ライブラリの Fitness API に戻ると、API が有効になっているはずです。

fitness-api.png

API ライブラリには、各項目(チュートリアルとドキュメント、利用規約、API Explorer で利用できるインタラクティブ メソッド)へのリンクがあります。指標や使用状況に関する情報を確認するには、API ダッシュボードを使用します。

API ダッシュボード

GCP Console の API ダッシュボードで、Fitness API を調べます。ナビゲーション メニューを開き、[API とサービス] > [ダッシュボード] を選択します。

api-dashboard.gif

API ダッシュボードには、トラフィック レベル、エラー率、さらにはレイテンシなど、プロジェクトでの特定の API の使用状況が詳細に表示されます。これにより、Google サービスを利用するアプリケーションで発生した問題の優先度をすばやく判断できます。

API リストから [Fitness API] を選択します。

fit-api.png

最初のぺ―ジで表示されない場合は、2 番目のページで [Fitness API] を検索する必要がある場合があります。

このページで、割り当ての表示とリクエスト、リソースとデータへのアクセスの制御、指標の表示ができます。これらの機能のうちの 1 つを実際に確認するため、左側のメニューから [割り当て] を選択します。

[リクエスト] オプションを展開します。これにより、この API で 1 日あたり、ユーザーあたり、1 秒あたりに処理できるクエリの数が表示されます。

api-quota.png

GCP 以外の API のプロビジョニングを行ったので、以降の演習では、Google Cloud Storage API を使用して API のアーキテクチャと基本機能について学びます。

理解度チェック

以下の複数選択問題に解答し、ここまでの内容について理解できているかどうかを確認してください。

API のアーキテクチャ

API は、プログラムが互いに通信できるようにするための一連のメソッドです。効果的に通信を行うためには、データの転送と解釈を定める明確なプロトコルにプログラムが準拠する必要があります。

クライアント サーバー モデル

インターネットは、API がプログラム間でリクエストとレスポンスを送信するために使用する標準の通信チャネルです。また、クライアント サーバー モデルは、ウェブベースの API が情報を交換する際に使用する、基盤となるアーキテクチャです。

クライアントは、コンピューティング リソースやデータをリクエストするコンピューティング デバイス(スマートフォン、ノートパソコンなど)です。クライアントのリクエストは、合意されたプロトコルの形式を取る必要があります。

サーバーには、データやコンピューティング リソースが保存されています。クライアントのリクエストを解釈、処理する役割があります。

クライアント サーバー モデルの視覚的な表現を次に示します。

5fe668c7107b4d28.png

HTTP プロトコルとリクエスト メソッド

API は通信チャネルとしてウェブを使用しているため、その多くは HTTP プロトコルに準拠しています。HTTP プロトコルは、インターネットを介してクライアントとサーバー間で行われるデータ交換のルールとメソッドを定義しています。HTTP プロトコルは API だけで使用されるわけではありません。インターネットを介してデータを送受信するウェブ通信の標準として使用されています。

HTTP プロトコルを利用する API は「HTTP リクエスト メソッド」(「HTTP 動詞」ともいいます)を使用して、クライアント リクエストをサーバーに送信します。最も一般的な HTTP リクエスト メソッドは、GET、POST、PUT、DELETE です。

GET リクエスト メソッドは、クライアントがサーバーからデータを取得するために使用します。リクエストされたリソースがサーバー上で見つかった場合は、クライアントに返送されます。

PUT メソッドは、既存のデータを置き換えるため、またはデータが存在しない場合にデータを作成するために使用します。PUT は何度呼び出しても結果は変わりません。つまり、サーバー上に存在するそのデータセットのコピーは 1 つだけということです。

POST メソッドは、主に新しいリソースを作成するために使用します。POST の場合、複数回呼び出すことで、サーバー上の複数の場所にデータが追加されます。リソースの更新には PUT を使用し、新しいリソースの作成には POST を使用することをおすすめします。

DELETE メソッドは、クライアントが指定した、サーバー上のデータまたはリソースを削除します。

何百もの API がありそれぞれ目的と得意分野がありますが、要点となるのは、すべての API が同じプロトコルと基盤となるメソッドをクライアントとサーバー間の通信に使用しているということです。

理解度チェック

以下の複数選択問題に解答し、ここまでの内容について理解できているかどうかを確認してください。

エンドポイント

API は HTTP メソッドを使用して、サーバー上でホストされているデータやコンピューティング サービスとやり取りします。特定のリソースに一貫性をもってアクセスする方法がない場合、このメソッドは役に立ちません。そこで、クライアントが単純かつ確実な方法で必要なリソースにアクセスできるよう、API ではエンドポイントという通信チャネルが使用されます。

エンドポイントは、サーバー上でホストされているデータやコンピューティング リソースへのアクセス ポイントであり、HTTP URI の形式を取ります。特定のリソースまたはリソースのコンテナへのパスを作成するために、API のベース URL(例: http://example.com)に追加されます。次にエンドポイントの例を示します。

  • http://example.com/storelocations
  • http://example.com/accounts
  • http://example.com/employees

次の例も、有効なエンドポイントです。

  • http://example.com/storelocations/sanfrancisco
  • http://example.com/storelocations/newdelhi
  • http://example.com/storelocations/london

クエリ文字列をエンドポイントに追加することにより(例: http://example.com/endpoint/?id=1)、API のリクエスト処理に必要となる変数を渡すことができます。エンドポイントは動詞(HTTP メソッド)が作用する「名詞」にあたるもので、API はこのフレームワークを使用してリクエストを処理します。

具体的には、クライアントは HTTP メソッド(動詞)とエンドポイント(名詞)からなるリクエストを送信して、特定のデータを受信したり、サーバー上で特定のアクションを実施したりします。つまりサーバーとは、提供されたメソッドとエンドポイントに基づいて、特定のオペレーションを解釈、実施することによって、クライアントのリクエストを処理するものだということです。

複雑な作業はすべてバックエンドで行われるため、HTTP メソッドとエンドポイントを利用して呼び出される API は、サーバー上に「存在」し、クライアント リクエストの実施者として機能しているといえます。このモデルは「RESTful API」を大まかに定義しています。これについては、次のセクションで詳しく説明します。API 用のエンドポイントをビルドする演習については、Cloud Endpoints: Qwik Start のラボをご覧ください。

RESTful API

HTTP プロトコル、リクエスト メソッド、エンドポイントを利用する API は、RESTful API と呼ばれます。REST(Representational State Transfer)は、ウェブベースの通信に関する標準を規定するアーキテクチャ スタイルの一つです。Google による RESTful システムの説明は次のとおりです。

...リソースはデータストアに保存されており、クライアントはサーバーが特定のアクション(リソースの作成、取得、更新、削除など)を実行するようにリクエストを送信します。サーバーはそのアクションを実行し、多くの場合、指定されたリソースの表現形式でレスポンスを送信します。

このリソース指向の設計が、REST の重要な原則です。次のように RESTful API はモデル化されています

...個別にアドレス指定可能なリソースのコレクション... リソースとメソッドはそれぞれ、API の「名詞」、「動詞」と呼ばれます。HTTP プロトコルでは、リソース名は URL に必然的にマッピングされ、メソッドは HTTP メソッドに必然的にマッピングされます...

構成要素については前のセクションで確認したため、これらの用語には馴染みがあるはずです。REST は API でよく使用されるフレームワークで、2010 年には公開ネットワーク API の約 74% が HTTP REST API でした。

クエリ文字列のほか、RESTful API ではリクエストに次のフィールドも使用できます。

  • ヘッダー: HTTP リクエスト自体について詳述するパラメータ
  • 本文: クライアントがサーバーに送信するデータ

本文は、データ フォーマット言語の JSON または XML で作成します。

API のデータ形式(JSON)

RESTful API は、HTTP リクエスト メソッドの本文に保持されるデータのファイル形式として、XML または JSON(JavaScript Object Notation)を使用します。

JSON は軽量で読みやすく解析が速いため、RESTful API を使用するうえで XML より優れています。ここでは、JSON の構文と構造について簡単に説明します。さらに広範なリファレンスとして、W3C の JSON 構文のドキュメントもご覧ください。

JSON は次のデータ型をサポートしています。

  • 数値: あらゆる種類。整数と浮動小数点値を区別しません。
  • 文字列: 引用符で囲まれたテキスト。
  • ブール値: 値は True または False。
  • 配列: 類似した種類でグループ化された要素のリスト。
  • Null: 空の値。

JSON データは Key-Value ペアで構成されます。これは、データ(値)を参照する一意の識別子(キー)で構成されている、リンクされたデータです。キーは「文字列」でなければならず、値は上記のデータ型のどれでもかまいません。

JSON の簡単な Key-Value ペアの例を次に示します。

"Key1" : "Value 1"

さらに例を示します。

"Key2" : 64
"Key3" : True
"Key4" : ["this", "is", "an", "array"]

JSON オブジェクトは中かっこ { } を使用して、Key-Value ペアに配置されたデータをグループ化します。Key-Value ペアを 3 つ含むオブジェクトの例を次に示します。

{
	"Name": "Julie",
	"Hometown": "Los Angeles, CA",
	"Age": 28
}

オブジェクトに格納されている Key-Value ペアはカンマで区切られています。

JSON 検証ツール

JSON ファイルには、Key-Value ペアやオブジェクトをいくつでも含めることができます。専門的な開発では、ファイルによっては長さが数千行とまではいかなくとも、数百行になることは珍しくありません。デベロッパーであれば、形式や構文の小さなエラー 1 つでもコードベース全体が壊れてしまうということをご存知でしょう。

jsonlint のような JSON 検証ツール、またはメインのブラウザとして Chrome を使用している場合に JSONView 拡張機能を使用すると、JSON コードの構文や形式の問題がすばやく特定され、修正方法が示されます。

JSON 検証の練習をしてみましょう。新しいタブで検証ツール jsonlint を開きます。

次のコードブロックを検証ツールに貼り付けます。

{
	"Name": "Julie",
	"Hometown": "Los Angeles, CA",
	"Age": 28
}

[Validate JSON] をクリックします。結果のセクションに「Valid JSON」という緑色のメッセージが表示されます。

今度は次のコードブロックを検証ツールに貼り付けます。

{
	"Name": "Julie"
	   "Hometown": "Los Angeles, CA",
	"Age": 28
}

[Validate JSON] をクリックします。

このコードブロックにはカンマが不足していて、適切なインデントが維持されていません。インデントが修正され、どこに問題があるのかを検証ツールがハイライト表示します。

json-error.png

検証ツールは、2 行目の後に識別子(カンマ)が不足していることを特定しました。2 行目の後にカンマを追加して [Validate JSON] をクリックすると、次の出力が表示されます。

valid-json.png

ラボを参照して API と JSON を使用する際、このような JSON 検証ツールを使用すると、構文エラーのデバッグの問題、時間、労力を大幅に減らせます。

理解度チェック

以下の複数選択問題に解答し、ここまでの内容について理解できているかどうかを確認してください。

GCP Console での JSON ファイルの作成

これまで学んだことを応用するために、Cloud Shell で Cloud Storage REST/JSON API を呼び出してバケットを作成し、コンテンツをアップロードします。

新しいタブで次のリンクを開き、Google Cloud Storage API が有効になっていることを確認します。次の結果が表示されます。

JSON_API.png

Cloud Shell セッションを開きます。次のコマンドを実行して、values.json というファイルを作成、編集します。

nano values.json

次のコードブロックをコピーして nano テキスト エディタに貼り付けます。<YOUR_BUCKET_NAME> は、一意のバケット名に置き換えます。

{  "name": "<YOUR_BUCKET_NAME>",
   "location": "us",
   "storageClass": "multi_regional"
}

完了したら、Ctrl+XYEnter キーを押して nano テキスト エディタを終了します。

Key-Value ペアを 3 つ(namelocationstorageClass)持つオブジェクトを含む JSON ファイルを作成しました。これらは、gsutil コマンドライン ツールやコンソールでバケットを作成するときに必要な値と同じです。

Cloud Storage REST/JSON API を使用してバケットを作成する前に、適切な認証と承認のポリシーを用意しておく必要があります。

認証と承認

API についてもう 1 つ理解しておく必要があるのは、API の認証と承認のスキームです。

  • 「認証」とは、クライアントの身元を判別するためのプロセスです。
  • 「承認」とは、認証されたクライアントが一連のリソースに対してどのような権限を持つかを判断するためのプロセスです。

認証とはユーザーを識別するもので、承認とはユーザーが行えることを決定するものです。

Google API が使用する認証 / 承認サービスには、「API キー」、「サービス アカウント」、「OAuth」の 3 種類があります。API は、リクエストするリソースと API の呼び出し元に応じて、これらの認証サービスのいずれかを使用します。

API キー

通常、API キーは暗号化された文字列の形式で提供されるシークレット トークンで、手軽に生成して使用できます。公開されているデータやメソッドを提供する API は、デベロッパーが手軽に利用できるよう、多くの場合ユーザー認証に API キーを使用します。

GCP の場合、API キーは API を呼び出す呼び出し元プロジェクトを識別します。これにより、API キーは使用状況の情報をプロジェクトに関連付け、アクセスが許可されていないプロジェクトや API によって有効化されていないプロジェクトからの呼び出しを拒否します。

OAuth

OAuth トークンは形式が API キーに似ているもののより安全で、ユーザー アカウントや ID にリンクさせることができます。このトークンは主に、デベロッパーがユーザーデータにアクセスする手段が API によって提供される場合に使用されます。

API キーはデベロッパーに API のすべての機能へのアクセスを許可しますが、OAuth クライアント ID はすべてスコープに基づいており、ID ごとに異なる特権が付与されます。

サービス アカウント

サービス アカウントは、個々のエンドユーザーではなく、アプリケーションや仮想マシン(VM)に属している特別な種類の Google アカウントです。アプリケーションは Google API の呼び出しにサービス アカウントの ID を使用するため、ユーザーは直接関与しません。

サービス アカウントを使用するには、アプリケーションにサービス アカウントの秘密鍵を提供します。アプリケーションが Google Cloud Functions、Google App Engine、Google Compute Engine、または Google Kubernetes Engine 上で実行されてる場合は、組み込みサービス アカウントを使用できます。

特にサービス アカウントと役割を扱うラボについては、サービス アカウントと役割: 基礎をご覧ください。

Cloud Storage JSON/REST API の認証と承認

Cloud Storage は、ユーザーデータをホストしてアクセスを提供するプラットフォームであるため、サービスを使用する前に OAuth トークンを生成する必要があります。

新しいタブで OAuth 2.0 Playground を開きます。このサービスを使用すると、OAuth トークンを簡単に生成できます。

下にスクロールして、[Cloud Storage API V1] を選択します。次に [https://www.googleapis.com/auth/devstorage.full_control] スコープを選択します。

storage_full_control_api.png

[Authorize APIs] という青いボックスをクリックすると、Google ログインページが開きます。Qwiklabs のユーザー名を選択し、権限を求められたら [許可] をクリックします。

これでステップ 2 に認証コードが生成されます。[Exchange authorization code for tokens] をクリックします。ステップ 3 に移動した場合は、ステップ 2 のパネルをクリックします。ページは次のようになります。

beeb2e2e2585e202.png

アクセス トークンをコピーします。これは次のステップで使用します。

Cloud Storage JSON/REST API でバケットを作成する

Cloud Shell セッションに戻ります。CLI プロンプトで「ls」と入力し、Enter キーを押します。先ほど作成した values.json ファイルと、README-cloudshell.txt ファイルが表示されます。

出力

README-cloudshell.txt    values.json

次のコマンドを実行して OAuth2 トークンを環境変数として設定します。<YOUR_TOKEN> は生成したアクセス トークンに置き換えます。

export OAUTH2_TOKEN=<YOUR_TOKEN>

次のコマンドを実行して GCP プロジェクト ID を環境変数として設定します。<YOUR_PROJECT_ID> は Qwiklabs プロジェクト ID に置き換えます。

export PROJECT_ID=<YOUR_PROJECT_ID>

次のコマンドを実行して Cloud Storage バケットを作成します。

curl -X POST --data-binary @values.json \
    -H "Authorization: Bearer $OAUTH2_TOKEN" \
    -H "Content-Type: application/json" \
    "https://www.googleapis.com/storage/v1/b?project=$PROJECT_ID"

次のような出力が返されます。

{
  "kind": "storage#bucket",
  "selfLink": "https://www.googleapis.com/storage/v1/b/qwiklabs-gcp-02-5d551758b5a7",
  "id": "qwiklabs-gcp-02-5d551758b5a7",
  "name": "qwiklabs-gcp-02-5d551758b5a7",
  "projectNumber": "670840659006",
  "metageneration": "1",
  "location": "US",
  "storageClass": "MULTI_REGIONAL",
  "etag": "CAE=",
  "timeCreated": "2020-11-11T06:41:40.901Z",
  "updated": "2020-11-11T06:41:40.901Z",
  "iamConfiguration": {
    "bucketPolicyOnly": {
      "enabled": false
    },
    "uniformBucketLevelAccess": {
      "enabled": false
    }
  },
  "locationType": "multi-region"
}

このリクエストは、これまで学んできたことの集大成です。curl CLI ツールを使用して HTTP POST メソッドをリクエストし、values.json ファイルをリクエスト本文に渡しました。また、OAuth トークンと JSON 仕様をリクエスト ヘッダーとして渡しました。このリクエストは、Cloud Storage エンドポイントにルーティングされました。エンドポイントには、GCP プロジェクト ID が設定されたクエリ文字列パラメータが含まれています。

新規作成した Cloud Storage バケットを表示する

新しく作成したバケットを確認するには、ナビゲーション メニューを開いて [Storage] > [ブラウザ] を選択します。

786bb3559131e3c1.png

完了したタスクをテストする

[進行状況を確認] をクリックして、実行したタスクを確認します。Cloud Storage JSON/REST API でバケットが正常に作成されている場合は、評価スコアが表示されます。

Cloud Storage JSON/REST API でバケットを作成する

Cloud Storage JSON/REST API を使用してファイルをアップロードする

Cloud Storage JSON/REST API を使用してバケットにファイルをアップロードすることもできます。

次の画像をパソコンに保存し、demo-image.png という名前を付けます。

a00af7664effa025.png

次に Cloud Shell セッションで、右上にあるその他メニューのアイコンをクリックし、[ファイルをアップロード] をクリックします。次に demo-image.png を選択すると、画像がディレクトリに追加されます。

次のコマンドを実行して画像ファイルへのパスを取得します。

realpath demo-image.png

次のような出力が返されます。

/home/gcpstaging25084_student/demo-image.png

次のコマンドを実行してファイルパスを環境変数として設定します。<DEMO_IMAGE_PATH> は前述のコマンドの出力に置き換えます。

export OBJECT=<DEMO_IMAGE_PATH>

次のコマンドを実行してバケット名を環境変数として設定します。<YOUR_BUCKET> は実際のバケットの名前に置き換えます。

export BUCKET_NAME=<YOUR_BUCKET>

次のコマンドを実行して、デモ画像を Cloud Storage バケットにアップロードします。

curl -X POST --data-binary @$OBJECT \
    -H "Authorization: Bearer $OAUTH2_TOKEN" \
    -H "Content-Type: image/png" \
    "https://www.googleapis.com/upload/storage/v1/b/$BUCKET_NAME/o?uploadType=media&name=demo-image"

次のような出力が返されます。

{
  "kind": "storage#object",
  "id": "qwiklabs-gcp-02-5d551758b5a7/demo-image/1605077118178936",
  "selfLink": "https://www.googleapis.com/storage/v1/b/qwiklabs-gcp-02-5d551758b5a7/o/demo-image",
  "mediaLink": "https://www.googleapis.com/download/storage/v1/b/qwiklabs-gcp-02-5d551758b5a7/o/demo-image?generation=1605077118178936&alt=media",
  "name": "demo-image",
  "bucket": "qwiklabs-gcp-02-5d551758b5a7",
  "generation": "1605077118178936",
  "metageneration": "1",
  "contentType": "image/png",
  "storageClass": "MULTI_REGIONAL",
  "size": "401951",
  "md5Hash": "LbpHpwhnApQKQx9IEXjTsQ==",
  "crc32c": "j5oPrg==",
  "etag": "CPis3Zvy+ewCEAE=",
  "timeCreated": "2020-11-11T06:45:18.178Z",
  "updated": "2020-11-11T06:45:18.178Z",
  "timeStorageClassUpdated": "2020-11-11T06:45:18.178Z"
}

バケットに追加した画像を表示するには、ナビゲーション メニューを開いて [Storage] > [ブラウザ] を選択します。次にバケットの名前をクリックすると、demo-image が追加されています。

9d8946af3d651c6b.png

イメージをクリックして [オブジェクトの詳細ページ] を開きます。

完了したタスクをテストする

[進行状況を確認] をクリックして、実行したタスクを確認します。Cloud Storage JSON/REST API を使用してファイルが正常にアップロードされている場合は、評価スコアが表示されます。

Cloud Storage JSON/REST API を使用してファイルをアップロードする

お疲れさまでした

このラボでは、API について理解を深め、Cloud Storage JSON/REST API を使用した演習を行いました。また、GCP API、API アーキテクチャ、HTTP プロトコルとメソッド、エンドポイント、RESTful API、JSON、API 認証の方法について学びました。これで、Qwiklabs の他の API ラボを受講する準備が整いました。

ラボを終了する

GCP での実習は以上です。ラボを終了するには、このページの上部にある [End Lab] ボタンをクリックします。

end_lab.gif

Qwiklabs で受講した各ラボを評価してください。満足した場合は次のように評価します。 dd499d096220243f.png

[Comment] ウィンドウに内容に関するご感想をご入力ください。皆様の貴重なご意見は、今後の参考にさせていただきます。

ラボを終了すると、GCP プロジェクトにアクセスできなくなると同時に、サービスや作業結果も削除されます。GCP Console に戻ると、自動的にラボからログアウトされていることがわかります。では、タブを閉じてください。

assistant-quest-badge.png ml-badge.png gsuite-badge.png c-badge.png API_Ex_badge.png

クエストを完了する

このセルフペース ラボは、Qwiklabs の「OK Google: Build Interactive Apps with Google Assistant」、「Machine Learning APIs」、「G Suite: Integrations」、「Developing Data and Machine Learning Apps with C# 」、「Exploring APIs」クエストの一部です。

クエストとは学習パスを構成する一連のラボのことで、完了すると成果が認められて上のようなバッジが贈られます。バッジは公開して、オンライン レジュメやソーシャル メディア アカウントにリンクできます。このラボの修了後、次のクエストに登録すれば、すぐにクレジットを受け取ることができます。受講可能なその他の Qwiklabs のクエストもご確認ください

次のステップと詳細情報

必ず次のラボを受講し、API の他の演習も行ってください。

Google Cloud Training & Certification

Google Cloud 技術を最大限に活用できるようになります。このクラスでは、必要な技術力とベスト プラクティスを習得し、継続的に学習することができます。トレーニングは基礎レベルから上級レベルまであり、オンデマンド、ライブ、仮想環境など、多忙なスケジュールに対応できるオプションが用意されています。認定資格を取得することで、Google Cloud の技術のスキルと知識を証明できます。

マニュアルの最終更新日: 2020 年 11 月 20 日
ラボの最終テスト日: 2020 年 11 月 20 日

Copyright 2020 Google LLC All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。