【ハンズオン資料】IBM Bluemix OpenWhisk もくもく会
IBM Bluemix OpenWhiskのもくもく会資料。
・IBM Swift Sandbox - Xcodeをインストールせず、Swiftコードのテストが可能
https://swiftlang.ng.bluemix.net
・IBM Swift KITURA - Swiftウェブアプリ開発プラットフォーム
https://github.com/IBM-Swift/Kitura
・IBM Bluemix OpenWhisk
http://www.ibm.com/cloud-computing/bluemix/openwhisk/
・IBM Bluemix OpenWhisk入門
https://new-console.ng.bluemix.net/docs/openwhisk/index.html
事前準備(必ず確認してください。)
・IBM Bluemix アカウント取得。
http://ibm.biz/bluemixfree
・CF(Cloud Foundry) CLI Install
https://github.com/cloudfoundry/cli/releases
・Bluemix CLI Install
http://clis.ng.bluemix.net/ui/home.html
・CLIを使う際には「pip」のインストールが必要。(Python 2.7)
https://console.ng.bluemix.net/openwhisk/cli
・pipのインストール
https://pip.pypa.io/en/stable/
・IBM Bluemixのリージョンや作業スペースを確認
OpenWhisk アーキテクチャ
今回のハンズオンでは、このアーキテクチャを元にOpenWhiskの動きを理解(把握)していきたいと思います。
IBM Bluemix OpenWhiskのTrigger, Rule, Action, Invokeの役割や関係性を理解することで、皆様の業務上もしくは個人のアプリ(サービス)とどのように連携できてどんなメリットがあるのか、何が変わるのかを話し合いながら今回のハンズオンを楽しんでいただければと思います。
Try OpenWhisk!
OpenWhiskの初期画面
CLIやGUIでの開発、ログの確認、OpenWhiskについて学ぶことができる、4つのメニューがあります。
ようこそOpenWhiskへ"Hello":CLI
下記の手順で開発環境の構築を完了しましょう。
https://console.ng.bluemix.net/openwhisk/cli
OpenWhiskアクションの作成
アクションとは、IBM Bluemix OpenWhisk プラットフォームで実行されるステートレスなコード・スニペットです。JavaScript 関数、Swift 関数、または、Docker コンテナーにパッケージした実行可能なカスタム・プログラムをアクションにできます。
・hello.jsファイルを作成します。
function main() {
return {payload: 'Hello world'};
}
・Create Action(アクション名:helloAction)
wsk action create helloAction hello.js
・Actionをクラウドに配置(Invok)
wsk action invoke --blocking helloAction
・Actionリストを表示
wsk activation list
Action upgrade
パラメーターを受け取るようにアクションを修正してみます。
function main(params) {
return {payload: 'Hello, ' + params.name + ' from ' + params.place};
}
・Actionを更新
wsk action update hello hello.js
・パラメーターを設定し、Actionを起動(name:joohoun, place:Tokyo)
・"--result"オプションをつけることによって結果がする表示される。
wsk action invoke --blocking --result hello --param name 'joohoun' --param place 'Tokyo'
・パラメーターを固定させる
オプション「--param」を使って「place」を「Japan Tokyo」に設定することで、次回からは nameオプションのみで起動してもplaceが設定されます。
wsk action update hello --param place 'Japan Tokyo'
wsk action invoke --blocking --result hello --param name 'Yokoi'
※ この状態で、「place」を指定して実行すると、アクションにバインドされた値を上書きします。(固定された値は変更なし)
外部のAPIを呼び出す
var request = require('request');
function main(msg) {
var location = msg.location || 'Vermont';
var url = 'https://query.yahooapis.com/v1/public/yql?q=select item.condition from weather.forecast where woeid in (select woeid from geo.places(1) where text="' + location + '")&format=json';
request.get(url, function(error, response, body) {
var condition = JSON.parse(body).query.results.channel.item.condition;
var text = condition.text;
var temperature = condition.temp;
var output = 'It is ' + temperature + ' degrees in ' + location + ' and ' + text;
whisk.done({msg: output});
});
return whisk.async();
}
・Action Create
wsk action create weather weather.js
・地域を指定してActionを実行
wsk action invoke --blocking --result weather --param location 'Japan, Tokyo'
Trigger&Rule
IBM Bluemix OpenWhisk のトリガーとルールにより、プラットフォームにイベント・ドリブン機能がもたらされます。外部および内部のイベント・ソースからのイベントは、トリガーを通じてチャネル設定され、ルールによって許可されたアクションがこれらのイベントに対応します。
【トリガー】
トリガーは、ある種のイベントに対して指定されたチャネルです。以下は、トリガーの例です。
・ロケーション更新イベントのトリガー。
・Web サイトへの文書アップロードのトリガー。
・着信 E メールのトリガー。
トリガーは、キーと値のペアのディクショナリーを使用して発生させる (アクティブ化する) ことができます。このディクショナリーは、イベント と呼ばれることもあります。アクションと同様に、トリガーを発生させるたびに、アクティベーション ID が生成されます。
【ルール】
ルールは 1 つのトリガーを 1 つのアクションに関連付けます。トリガーが発生するたびに、該当のアクションが、トリガー・イベントを入力として起動されます。
適切なルール・セットを使用して、単一のトリガー・イベントで複数のアクションを起動することや、 複数のトリガーからのイベントへの対応としてアクションを起動することが可能です。
トリガー作成と発生
・トリガー作成
wsk trigger create locationUpdate
・トリガーリスト出力
wsk trigger list
・トリガー発生
wsk trigger fire locationUpdate --param name "joohoun" --param place "Japan, Tokyo"
ルール:トリガーとアクションの関連付け
・ルールを作成
wsk rule create --enable myRule locationUpdate hello
・locationUpdate トリガー発生
イベントを発生させるたびに、イベントのパラメーターを使用して hello アクションが呼び出されます。
wsk trigger fire locationUpdate --param name "joohoun" --param place "Japan, Tokyo"
・最新のアクティベーションをチェックして、アクションが呼び出されたことを確認
wsk activation list --limit 1 hello
wsk activation result {アクティベーション ID}
GUIでもAction、Trigger、Ruleを使えます。
BMXUG(Bluemix User Group)コミュニティ
「Bluemix」の「今」をフォローしましょう!
・Facebook : Bluemixユーザーグループ
・Qiita : Bluemix Qiitaページ
・Doorkeeper:Doorkeeperコミュニティ
・Slack : Bluemix User Group(BMXUG)の交流用
・stackoverflow : stackoverflow(コミュニティQ&A)
・Twitter : #bmxug
Author And Source
この問題について(【ハンズオン資料】IBM Bluemix OpenWhisk もくもく会), 我々は、より多くの情報をここで見つけました https://qiita.com/joohounsong/items/ba4657549138b2fc47ba著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .