BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース GoogleがCloud FunctionsでのGo言語のサポートを発表

GoogleがCloud FunctionsでのGo言語のサポートを発表

原文(投稿日:2019/01/22)へのリンク

先日の記事でGoogleは,ファンクション・アズ・ア・サービスのCloud FunctionsでGo 1.11をサポートすると発表した。この発表によってGoは,すでに利用可能なNode.jsとPythonとともに、Cloud Functionsがサポートするプログラミング言語のラインに加わることになる。

GoはGoogleがデザインしたオープンソースのプログラミング言語で、バージョン1.11ではモジュールが概念として追加されている。モジュールは、Goプロジェクトで使用されているサードパーティパッケージの依存関係を管理するもので,NuGet for .NETやNPMに相当する。意外なことに、GoはGoogleにバックグラウンドを持つにも関わらず,Google Cloud Functionsはこの言語をサポートした最初のFaaSではない。IBM Cloud FunctionsAWS Lambdaがすでに昨年,サポートを発表しているからだ。そうではあるが、Go言語がFaaS実装と組み合わせて機能するようになるという意味で,コミュニティは今回のサポートを歓迎している

最後に。Goはファンクションのコールドスタート起動速度の早さから、クラウドファンクションには最適です。
昨年,node.jsとGo言語のファンクションをlambda上で,DB接続によってテストした結果では,コールドスタート時間は3,148msと1,648msでした。

ファンクション・アズ・ア・サービスは,Google Cloud FunctionsAzure FunctionsAWS Lambdaなど、すべての主要なクラウドベンダが用意している一般的なコンセプトである。Stackifyの創設者兼CEOであるMatt Watson氏が説明しているように 、一般的にファンクションはイベントが発生するたびにひとつのコードを実行するもので,サーバレスアーキテクチャの一部として実装されることが多い。

FaaSはサーバレスアーキテクチャによって実現される,サーバレスコンピューティングの概念です。これを利用することで、個別の"機能"、アクション、あるいはビジネスロジックをデプロイすることが可能になります。FaaSにはミリ秒以内に起動して個々の処理を実行し,プロセスを終了することが求められます。

Google Cloud Functionsの使用方法に違いはなく,2つの起動手段が提供されている。ひとつはHTTPファンクションである。これはHTTP要求を使って呼び出されるもので,任意のHTTP互換クライアントから使用することができる。もうひとつの手段として,バックグラウンドファンクションがある。これはCloud StorageFirebaseといったイベントによって起動されるものだ。これらのイベントを使うことで,さまざまなシナリオの実装が可能になる。Cloud Functionsのチュートリアルにはいくつかのサンプルが紹介されており,SlackからGoogle Knowledgebaseを検索したり,写真からテキストを抽出して翻訳したりするアプリケーションが含まれている。

出典: https://cloud.google.com/functions/docs/tutorials/ocr

Cloud FunctionsでGoを使用する方法については,Posse Productionの創設者であるLuke Freeman氏によるものなど,すでにいくつかの記事が公開されている。Freeman氏の記事では,これらのタイプのプロジェクト構造のセットアップ方法として,ファンクションの構築手順やテストの方法,使用方法などが紹介されている。その最後には,デプロイメントプロセスが説明されており,それぞれの開発ステージの概要をすべて説明したものとなっている。

この記事に星をつける

おすすめ度
スタイル

特集コンテンツ一覧

BT