views4GCPのストレージサービスについてまとめてみた。Exp:190284普段はGCP専門のエンジニアをやっています。最近は個人的な活動としてGOとswiftでアプリ作ってます。G+TweetShareHatena注意この記事は2016年2月18日に更新されたもので、内容が古い可能性がありますのでご注意ください。まとめ知っておけば必ず開発が楽になる!GAE/Go入門の本連載ですが、前回は第一弾として「PaaS最前線!たったの15分でできるGAE/GO入門!」という記事を書かせていただきました(※1)。第二回となる今回はGAEで標準で用意されているAPIをGOで実装する方法を学んでいきます。メール送信やユーザ認証等、GAEでは開発で役にたつAPIが標準で用意されていますので、これらのサービスを学ぶことで開発がより楽になることは間違いありません。全てのAPIを説明すると15分以内では収まらなくなってしまうので、今回のテーマ(標準API)については、内容を3回に分けさせていただきます。GO」と検索すると、公式を押しのけて一番トップに表示されるようになりました(2016/2/4現在)。本記事の流れは以下の通リです。標準APIの概要を説明後、3つの標準APIを学んでいきます(※2)。合計6つのAPIを学ぶ予定ですが、本記事では3つのAPIを取り上げます。残り3つのAPIについては次回学ぶ予定です。GAE標準APIの概要GAEにおける標準APIとは、GAEのライブラリに標準的に組み込まれているAPIを指します。標準APIを利用するために、ユーザはわざわざ外部からライブラリをインストールする必要は全くありません。GAEの標準APIは以下の通リです。ユーザ認証やメール送信等、アプリケーションの基本的となる機能が提供されています。今回はその中から主なAPI(以下1~6)を2回の記事に分けて取り上げていきます。データストアAPIについては内容が盛り沢山のため、一つのテーマとして次回以降に取り上げる予定です。本章では実際にサンプルプログラムのデプロイをおこないますので、最初に以下URLの(1)を参考にGCPプロジェクトの作成をおこってください(※4)。SDKのインストール」を完了させてください。GCPプロジェクトを作成済みの場合はスキップして構いません。SDKのインストールhttps://apps-gcp-tokyo.appspot.com/gae-go-gettingstart-01/#AppEngine_SDKここまでやっておけば、後はサンプルのコピペ&デプロイでプログラムの動作確認がおこなえるようになります!それでは実際にサンプルプログラムを動作させることで各サービスを理解していきましょう!ユーザ認証APIを学ぶユーザ認証APIは、Googleアカウントによるユーザ認証機能を提供します。ログイン中であるか否かだけでなく、ログインしているユーザの情報(Email等)も取得することができます。開発時にはGoogleアカウントを利用したユーザ認証の仕組みをこのAPIを利用して簡易に実装することができるようになります。以下のコード(サンプルコード1)は、ユーザ認証APIのサンプルプログラムとなります。動作仕様は下記の通リです。サンプルコード1のコメント[1]-[5]については「コードの詳細説明」をご確認ください。【動作仕様】ユーザが非ログイン状態の場合はログインリンクを表示し、ログイン状態の場合はユーザのEmailアドレスとログアウトリンクを表示する。1でログインリンクをクリックした場合Google認証画面に遷移し、ログインが成功すると、1の画面にリダイレクトされる。画面にはログインユーザのEmailアドレスとログアウトリンクが表示される。1のログイン状態、または2のログイン状態からログアウトリンクをクリックした場合は、Google認証によるログイン状態が無効化され、非ログイン状態で1の画面にリダイレクトされる。ユーザ認証コードの詳細説明サンプルプログラム1でコメントされている[1]-[5]の詳細は以下の通リです。ユーザ認証をおこなう上で必須となるモジュールです。userモジュールを利用して現在ログイン中のユーザを取得します。nil(=NULL)の場合は非ログイン状態となります。ログインURLを生成します。LoginURLの2つ目の引数は「ログイン後のリダイレクト先URI」となります。ログアウトURLを生成します。LogoutURLの2つ目の引数は「ログアウト後のリダイレクト先URI」となります。以下の手順に従って動作を確認してください。1.アプリケーションディレクトリ(※5)直下にauth.goというファイルを作成し、サンプルコードをコピー・保存します。本章の最初に作成したアプリケーション用ディレクトリです。2.以下のコマンドを実行しアプリをデプロイします。アプリケーションディレクトリ名3.以下URLにアクセスします。in」リンクをクリックしてください。ログインリンクの表示5.Googleのログイン画面が表示されますので、お手持ちのGoogleアカウントでログインしてください。out」リンクからログアウトをおこなってください。ログアウトリンクの表示7.ログアウトが成功すると、4の画面に戻ってきます。以上が「ユーザ認証」のサンプルコードの動作となります。実際に動作させることでサンプルコードの流れも理解できたのではないでしょうか。次は「メール送信」を学びます。メール送信APIを学ぶメール送信APIは、1件以上の宛先に対してメールを送信するためのAPIです。メール送信は本格的なWebアプリケーションを開発する場合基本となる機能と言えます。開発者はメール送信APIを利用して簡易にメール送信機能を実装することができます。以下のコード(サンプルコード2)は、2件の宛先に対してメール送信をおこなうサンプルプログラムとなります(※6)。サンプルコード2のコメント[1]-[7]については「コードの詳細説明」をご確認ください。メール送信コードの詳細説明サンプルプログラム1でコメントされている[1]-[7]の詳細は以下の通リです。メール送信をおこなう上で必須となるモジュールです。メールのSubjectです。送信元のEmailアドレスです。前述した通リ指定できるのはGCPプロジェクトの権限を保持しているユーザのEmailアドレスとなります。送信先のアドレスを配列で定義します。送信メッセージの作成をおこないます。各パラメータについては[2]-[5]をご確認ください。メール送信を実行します。エラーが発生した場合はif文内のコードが実行されます。エラーハンドリングは適宜おこなってください。送信元のアドレス(Sender)には、GCPのDeveoperコンソールのAppEngine設定で管理されているEmailアドレスを指定します(画像5参照)。GCPプロジェクトを作成した際のEmailアドレスは、その管理アカウント一覧に自動的に追加されますので、SenderにはGCPプロジェクト作成時のEmailアドレスを指定すれば問題ありません。Appsアカウント)を追加してください。手順に従って動作を確認してください。1.アプリケーションディレクトリ(※7)直下にmail.goというファイルを作成し、サンプルコード2をコピー・保存します。送信元[4]と送信先[5]については適宜変更をおこなってください。2.以下のコマンドを実行しアプリをデプロイします。アプリケーションディレクトリ名3.以下URLにアクセスし、メール送信を実行します。コードhttp://[作成したプロジェクトのIDを指定].appspot.com/sendEmail4.送信が成功すると、以下のようにメールの受信が確認できます。受信メール以上が「メール送信」のサンプルコードの動作となります。最後は「Memcache」を学びましょう。Memcacheを学ぶMemcacheは、最大1MBのデータをメモリ上にキャッシュするためのAPIです。Datastoreのような永続ストレージ上に保存されているデータをMemcacheに保存することで、アプリケーションの性能(高速なデータ読み出し)を向上させることができます(※7)。性能向上に加えて、永続ストレージへのread数を減らせることにもなるのでGAEの課金料金も抑えることができます。APIのサンプルプログラムとなります。Key-Value形式のデータをMemcacheに保存後、保存データのKeyからキャッシュデータを参照するサンプルとなります。サンプルコード3のコメント[1]-[4]については「コードの詳細説明」をご確認ください。APIコードの詳細説明サンプルプログラム1でコメントされている[1]-[4]の詳細は以下の通リです。Memcacheをおこなう上で必須となるモジュールです。キャッシュデータを作成します。Keyには文字列、データ本体(Value)にはbyte形式のデータを指定してください。キャッシュデータの追加をおこないます。エラーハンドリングは適宜おこなってください。キャッシュデータの参照をおこないます。エラーハンドリングは適宜おこなってください。以下の手順に従って動作を確認してください。1.アプリケーションディレクトリ直下にmem.goというファイルを作成し、サンプルコード3をコピー・保存します。2.以下のコマンドを実行しアプリをデプロイします。アプリケーションディレクトリ名3.以下URLにアクセスし、キャッシュデータの保存・参照プログラムを実行します。コードhttp://[作成したプロジェクトのIDを指定].appspot.com/mem4.実行すると以下のようにキャッシュされたデータが表示されます。サンプルプログラム3の実行5.次はGCPのDeveloperコンソールからMemcacheに保存されているデータを確認します。以下のURLにアクセスし、Memcacheの管理画面にアクセスしてください。key」リンクをクリックしてください。String”を選択し、「Key」にはプログラム上で指定したキー文字列を入力してください。Namespaceは空のままにしておいてください(※8)。「Find」ボタンを押下すると、検索でヒットしたKeyが表示されるのでキー名をクリックしてください(画像10参照)。Namespace(ネームスペース)は空のままにしておいてください。Memcacheはネームスペース毎にデータを保持することができますが、今回のサンプルではネームスペースは指定していません。ネームスペースを未指定でMemcacheにデータを保存した場合、空のネームスペースにデータは保存されます。キャッシュデータの検索8.キー名をクリックすると、キャッシュデータの詳細画面に遷移します。以下(画像10)のように保存されているキャッシュデータが確認できます。Value」ボタンを押下してください。以上で「Memcache」の説明は完了です。まとめ以上で「たったの15分でできるGAE/GO入門」の”標準APIその1”は終了です。サンプルコードとプログラムの動作を通して各APIの理解は深まったでしょうか。疑問点や修正点がある場合はtwitter等で直接ご指摘いただければ幸いです。次回記事は”標準APIその2”となります。