クラウドインフラ構築記

現在AWSの構築支援に携わっております。今注視しているのは、GKE、BigQuery、Google Dataflowなどサービスを展開しているGoolge Cloud Platformです。

Cloud FounctionsでBigQueryにデータを登録 #gcpja


Goolge Cloud Function フルマネージド化されたことでBigQueryへのセンサーデータの送信用のモジュールを書きました。エラー処理とかされていない素の状態です。

nodeのバージョンはFunctions側とそろえておく必要がありますので、npmもfunctions側と同じバージョンを利用。

まず、gcloudモジュールの導入。

gcloud client libraryについては、こちらを参照してください。

 ../node-v0.12.7-linux-x64/bin/npm install gcloud --save

次に、コード本体。プロジェクトIDの記載は必要ですが、credentialsなどは不要です。functions側で自動認証されていると思われます。


var gcloud = require('gcloud')({
projectId: 'XXXXXXXX'
});

exports.bigquerytest = function (context, data){
var bigquery = gcloud.bigquery();
var dataset = bigquery.dataset('iot_data');
var table = dataset.table('sensor_data');

table.insert({
TIMESTAMP: data.timestamp,
temp: data.temp
}, insertHandler);

context.success();
};

function insertHandler( err, insertErrors, apiResponse) {

}

  gcloud alpha functions deploy bigquerytest --bucket gs://XXXXXXXX --trigger-http 

実際データを投入します。

curl -X POST https://us-central1.XXXXXXXXXX.cloudfunctions.net/bigquerytest -d '{"timestamp":"2016-05-08 18:06:00","temp":20}'

 

データがBigQueryに登録されていることがわかります。
screencapture-bigquery-cloud-google-com-results-cms-production-1225-bquijob_78f008d9_1548fa75338-1462699378264

コメントは受け付けていません。