5分でわかる!IBM Cloud Functions の使い方

クラウド
クラウド
スポンサーリンク

IBM Cloud Functions は、拡張性の高いサーバーレス環境でプログラムコードを実行してくれる IBM Cloud のサービスのひとつです。(以前は OpenWhisk と呼ばれていました)サーバーレス環境では、サーバーの構築や保守、負荷対策などの管理が一切不要になりますので、開発者はプログラムをつくることに集中できます。そこで今回は、IBM Cloud Functions(Python 3.7)を簡単に使う手順をまとめてみました。

アクション(関数)の作成

IBM Cloud Functions の「アクションの作成」は、他社のサーバーレスサービスで言うところの「関数の作成」とほぼ同じ意味です。シンプルな HTTPSリクエストで簡単にプログラムコードを実行できます。

IBM Cloud のコンソール にログインしたら、左上のハンバーガーメニューから「Functions」をクリックします。

「作成の開始」をクリックします。

Functions を作成する地域を選択します。(2018年12月16日時点では、日本を含むアジア圏のリージョンは選択できないようです)

「アクションの作成」をクリックします。

適当なアクション名を入力して、好みのランタイム(プログラム言語)を選択したら「作成」をクリックします。

下のようなコードをもつアクションが作成されます。

アクションの実行

作成したアクションを実行してみましょう。

左メニューの「エンドポイント」をクリックします。

CURLセクションのコピーアイコンをクリックすれば、アクションを実行できるコマンドが APIキー付きでコピーできます。(「API-KEY」の部分が実際のAPIキー変わってコピーされます)

コピーしたコマンドを実行してレスポンスのメッセージに「Hello world」と表示されていればOKです。(最後に付け足した「python -mjson.tool」は、JSON形式のレスポンスを見やすいように整形するためのコマンドです)

curl -u <APIキー> -X POST \
https://openwhisk.ng.bluemix.net/api/v1/namespaces/apar.jp_dev/actions/sample?blocking=true \
| python -mjson.tool
 
(略)
"response": {
"result": {
"message": "Hello world"
(略)

オリジナルのコードに変更

リクエストパラメーター「string」に指定した文字列を返すだけの、下のようなコードに変更してみます。

import sys

def main(dict):
    string = dict['string']
    return { 'message': string }

 
左メニューの「パラメーター」を選択して、「パラメーターの追加」をクリックします。

パラメーター名に「string」、パラメーター値に適当なデフォルト値を入力して「保存」をクリックします。(パラメーター値が数値以外の場合は、ダブルクォートで囲む必要があります)

左メニューの「コード」を選択して、オリジナルのコードを入力したら「保存」をクリックします。

コードが保存されたら「起動」をクリックしてテストします。

結果にパラメーターのデフォルト値が表示されていればOKです。

コードにエラーがある場合は、下のようなエラーログが表示されますのでデバッグすることもできます。

リクエストパラメーターの送信

リクエストパラメーターは、JSON形式で送信する必要があります。

curl コマンドの場合は -H オプションでコンテンツタイプJSONを指定して、-d オプションで送信するJSONオブジェクトを指定します。(リクエストパラメーターが多い場合はJSONファイルにして「-d @<JSONファイルのパス>」としてもよいでしょう)

curl -u <APIキー> -X POST \
-H 'Content-Type: application/json' \
-d '{"string":"Hello! IBM Cloud Functions"}' \
https://openwhisk.ng.bluemix.net/api/v1/namespaces/apar.jp_dev/actions/sample?blocking=true \
| python -mjson.tool
 
(略)
"response": {
"result": {
"message": "Hello! IBM Cloud Functions"
},
(略)

おわりに

IBM Cloud Functions のアクションは、Watson の各種APIの呼び出しにも使われているようです。以前「Watson Speech to Text の使い方 日本語音声をテキストに変換してみよう」の記事で作成した Speech to Text サービスのコードが確認できました。色々な Watson API のコードを見てみるのも面白そうですね(^^)

この記事をシェアする
あぱーブログをフォローする
スポンサーリンク
スポンサーリンク
あぱーブログ

コメント

タイトルとURLをコピーしました