1
- [ ![ Build Status] ( https://travis-ci.org/IBM/ibm-cloud-functions-serverless-apis.svg?branch=master )] ( https://travis-ci.org/IBM/ibm-cloud-functions-serverless-apis )
2
-
3
1
# IBM Cloud Functions でサーバーレス API ハンドラーを作成する (Apache OpenWhisk の利用)
4
2
3
+ [ ![ Build Status] ( https://travis-ci.org/IBM/ibm-cloud-functions-serverless-apis.svg?branch=master )] ( https://travis-ci.org/IBM/ibm-cloud-functions-serverless-apis )
4
+
5
5
* Read this in other languages: [ English] ( README.md ) , [ 한국어] ( README-ko.md ) .*
6
6
7
7
このプロジェクトは、サーバーレスのイベント駆動型アーキテクチャーの仕組みを説明するものです。このアーテクチャーでは、HTTP REST API の呼び出しにより、需要に応じてコードが実行されます。API エンドポイントが呼び出されるまでは、レスポンスにリソースは消費されません。API エンドポイントが呼び出されると、現在の負荷とちょうど一致するようにリソースがプロビジョニングされます。
@@ -43,22 +43,24 @@ OpenWhisk プログラミングモデルの基本的な理解が必要です。
43
43
5 . [ こんどは手動でデプロイする] ( #5-recreate-deployment-manually )
44
44
45
45
<a name =" 1-provision-mysql " ></a >
46
- # 1. MySQL の準備
46
+
47
+ ## 1. MySQL の準備
47
48
48
49
IBM Cloudにログインし、[ ClearDB] ( https://console.ng.bluemix.net/catalog/services/cleardb-mysql-database/ ) または [ Compose for MySQL] ( https://console.ng.bluemix.net/catalog/services/compose-for-mysql/ ) データベースインスタンスを準備 (プロビジョニング) します。
49
50
ClearDB には簡単なテストのためのフリーの段階 (tier) がありますが、Compose にはより大きなワークロードの段階があります。
50
51
51
- * [ ClearDB] ( https://console.ng.bluemix.net/catalog/services/cleardb-mysql-database/ ) の場合は、ClearDB ダッシュボードにログインし、作成されたデフォルトのデータベースを選択します。
52
+ - [ ClearDB] ( https://console.ng.bluemix.net/catalog/services/cleardb-mysql-database/ ) の場合は、ClearDB ダッシュボードにログインし、作成されたデフォルトのデータベースを選択します。
52
53
` Endpoint Information ` でユーザー、パスワード、およびホスト情報を取得します。
53
54
54
- * [ Compose for MySQL] ( https://console.ng.bluemix.net/catalog/services/compose-for-mysql/ ) の場合は、IBM Cloud コンソールの ` Service Credentials ` タブから情報を入手してください。
55
+ - [ Compose for MySQL] ( https://console.ng.bluemix.net/catalog/services/compose-for-mysql/ ) の場合は、IBM Cloud コンソールの ` Service Credentials ` タブから情報を入手してください。
55
56
56
57
` template.local.env ` を ` local.env ` という名前の新しいファイルにコピーし、MySQL インスタンスの ` MYSQL_HOSTNAME ` 、` MYSQL_USERNAME ` 、` MYSQL_PASSWORD ` 、` MYSQL_DATABASE ` の値を書き込んでください。
57
58
58
59
> 訳者注: 2018年7月現在、ClearDB サービスは利用できないようですが、参考のためにテキストは翻訳します
59
60
60
61
<a name =" 2-create-openwhisk-actions-and-mappings " ></a >
61
- # 2. OpenWhisk アクションとマッピングを作成する
62
+
63
+ ## 2. OpenWhisk アクションとマッピングを作成する
62
64
63
65
` deploy.sh ` は便利なスクリプトで、` local.env ` から環境変数を読み込み、あなたのために OpenWhisk アクションと API マッピングを作成します。
64
66
後でこれらのコマンドを自分で実行します。
@@ -71,7 +73,8 @@ ClearDB には簡単なテストのためのフリーの段階 (tier) があり
71
73
[ 別のデプロイ方法] ( #alternative-deployment-methods ) を参照することもできます。
72
74
73
75
<a name =" 3-test-api-endpoints " ></a >
74
- # 3. APIエンドポイントをテストする
76
+
77
+ ## 3. APIエンドポイントをテストする
75
78
76
79
` /v1/cat ` エンドポイントに対して、エンティティを作成、取得、更新、削除する HTTP API クライアントをシミュレートする4つのヘルパースクリプトがあります。
77
80
@@ -94,7 +97,8 @@ client/cat-delete.sh 1
94
97
```
95
98
96
99
<a name =" 4-delete-actions-and-mappings " ></a >
97
- # 4. アクションとマッピングを削除する
100
+
101
+ ## 4. アクションとマッピングを削除する
98
102
99
103
` deploy.sh ` をもう一度使って、OpenWhiskのアクションとマッピングを削除してください。
100
104
次のセクションではそれらをステップバイステップで再作成します。
@@ -104,11 +108,12 @@ client/cat-delete.sh 1
104
108
```
105
109
106
110
<a name =" 5-recreate-deployment-manually " ></a >
107
- # 5. こんどは手動でデプロイする
111
+
112
+ ## 5. こんどは手動でデプロイする
108
113
109
114
このセクションでは、` deploy.sh ` スクリプトの実行内容を詳しく見て、OpenWhiskのトリガー、アクション、ルール、およびパッケージをより詳しく扱う方法を理解していきます。
110
115
111
- ## 5.1 猫データを変更するための OpenWhisk アクションの作成
116
+ ### 5.1 猫データを変更するための OpenWhisk アクションの作成
112
117
113
118
猫のデータを管理するアクションを API の各メソッド(POST、PUT、GET、DELETE)ごとに1つずつ、合計で4つ作成します。
114
119
アクションのコードは ` /actions ` にあります。
@@ -118,22 +123,22 @@ client/cat-delete.sh 1
118
123
追加パッケージが必要な場合は、アクションファイルとともに ZIP ファイルにまとめてアップロードすることができます。
119
124
単一ファイルと ZIP 圧縮アーカイブの違いの詳細については、[ Getting Started Guide] ( https://console.ng.bluemix.net/docs/openwhisk/openwhisk_actions.html#openwhisk_js_packaged_action ) を参照してください。
120
125
121
- ### 5.1.1 猫パッケージ
126
+ #### 5.1.1 猫パッケージ
122
127
123
128
すべてのアクションは MySQL データベースサービスに依存しているため、パッケージレベルで一度、資格情報を設定すると便利です。
124
129
これにより、パッケージ内のすべてのアクションで資格情報を使用できるようになります。
125
130
したがって、作成時および実行時にアクションごとに定義する必要はありません。
126
131
127
132
``` bash
128
133
source local.env
129
- wsk package create cat \
134
+ bx wsk package create cat \
130
135
--param " MYSQL_HOSTNAME" $MYSQL_HOSTNAME \
131
136
--param " MYSQL_USERNAME" $MYSQL_USERNAME \
132
137
--param " MYSQL_PASSWORD" $MYSQL_PASSWORD \
133
138
--param " MYSQL_DATABASE" $MYSQL_DATABASE
134
139
```
135
140
136
- ### 5.1.2 猫の作成アクション
141
+ #### 5.1.2 猫の作成アクション
137
142
138
143
POSTアクションのJavaScriptコードは、 [ ` /actions/cat-post-action/index.js ` ] ( actions/cat-post-action/index.js ) にあります。
139
144
この関数は、データベースに接続するために必要な ` mysql ` クライアント npm パッケージに依存します。
@@ -149,7 +154,7 @@ zip -rq action.zip *
149
154
150
155
``` bash
151
156
# Create
152
- wsk action create cat/cat-post \
157
+ bx wsk action create cat/cat-post \
153
158
--kind nodejs:6 action.zip \
154
159
--web true
155
160
```
@@ -158,7 +163,7 @@ wsk action create cat/cat-post \
158
163
159
164
``` bash
160
165
# Test
161
- wsk action invoke \
166
+ bx wsk action invoke \
162
167
--blocking \
163
168
--param name Tarball \
164
169
--param color Black \
@@ -169,10 +174,9 @@ wsk action invoke \
169
174
170
175
上記の手順を繰り返して、対応する GET、PUT、DELETE アクションを作成してテストしていきます。
171
176
172
-
173
177
> ** 注** : 上記の POST アクション結果から返された実際の ID を反映させるために、あなたのテストでは ` id 1 ` を置き換えてください。
174
178
175
- ### 5.1.3 猫の参照アクション
179
+ #### 5.1.3 猫の参照アクション
176
180
177
181
GET アクションを作成してテストします。
178
182
@@ -181,20 +185,20 @@ GET アクションを作成してテストします。
181
185
cd ../../actions/cat-get-action
182
186
npm install
183
187
zip -rq action.zip *
184
- wsk action create cat/cat-get \
188
+ bx wsk action create cat/cat-get \
185
189
--kind nodejs:6 action.zip \
186
190
--web true
187
191
188
192
# Test
189
- wsk action invoke \
193
+ bx wsk action invoke \
190
194
--blocking \
191
195
--param id 1 \
192
196
cat/cat-get
193
197
```
194
198
195
199
> 訳者注: このアクションで、さきほど作成された「名前が Tarball で、色が黒」である猫のレコードが読み取られ表示されるはずです。
196
200
197
- ### 5.1.4 猫の更新アクション
201
+ #### 5.1.4 猫の更新アクション
198
202
199
203
PUT アクションを作成してテストします。
200
204
@@ -203,27 +207,27 @@ PUT アクションを作成してテストします。
203
207
cd ../../actions/cat-put-action
204
208
npm install
205
209
zip -rq action.zip *
206
- wsk action create cat/cat-put \
210
+ bx wsk action create cat/cat-put \
207
211
--kind nodejs:6 action.zip \
208
212
--web true
209
213
210
214
# Test
211
- wsk action invoke \
215
+ bx wsk action invoke \
212
216
--blocking \
213
217
--param name Tarball \
214
218
--param color Gray \
215
219
--param id 1 \
216
220
cat/cat-put
217
221
218
- wsk action invoke \
222
+ bx wsk action invoke \
219
223
--blocking \
220
224
--param id 1 \
221
225
cat/cat-get
222
226
```
223
227
224
228
> 訳者注: このアクションで、さきほど作成・参照された「名前が Tarball で、色が黒」である猫のレコードが、「名前が Tarball で、色が灰色」に書き換えられました。
225
229
226
- ### 5.1.5 猫の削除アクション
230
+ #### 5.1.5 猫の削除アクション
227
231
228
232
DELETE アクションを作成してテストします。
229
233
@@ -232,34 +236,34 @@ DELETE アクションを作成してテストします。
232
236
cd ../../actions/cat-delete-action
233
237
npm install
234
238
zip -rq action.zip *
235
- wsk action create cat/cat-delete \
239
+ bx wsk action create cat/cat-delete \
236
240
--kind nodejs:6 action.zip \
237
241
--web true
238
242
239
243
# Test
240
- wsk action invoke \
244
+ bx wsk action invoke \
241
245
--blocking \
242
246
--param id 1 \
243
247
cat/cat-delete
244
248
245
- wsk action invoke \
249
+ bx wsk action invoke \
246
250
--blocking \
247
251
--param id 1 \
248
252
cat/cat-get
249
253
```
250
254
251
255
> 訳者注: このアクションで、さきほど作成・参照・更新された「名前が Tarball で、色が灰色」である猫のレコードが、削除されました。
252
256
253
- ## 5.2 REST APIエンドポイントを作成する
257
+ ### 5.2 REST APIエンドポイントを作成する
254
258
255
259
次に、リソースエンドポイント (` /cat ` ) を ` GET ` 、` DELETE ` 、` PUT ` 、` POST ` HTTP メソッドにマップし、対応する OpenWhisk アクションに関連づけて、クライアントスクリプトを使ってテストします。
256
260
257
261
``` bash
258
262
# Create
259
- wsk api create -n " Cats API" /v1 /cat post cat/cat-post
260
- wsk api create /v1 /cat put cat/cat-put
261
- wsk api create /v1 /cat get cat/cat-get
262
- wsk api create /v1 /cat delete cat/cat-delete
263
+ bx wsk api create -n " Cats API" /v1 /cat post cat/cat-post
264
+ bx wsk api create /v1 /cat put cat/cat-put
265
+ bx wsk api create /v1 /cat get cat/cat-get
266
+ bx wsk api create /v1 /cat delete cat/cat-delete
263
267
264
268
# Test
265
269
@@ -276,34 +280,36 @@ client/cat-put.sh 1 Tarball Gray
276
280
client/cat-delete.sh 1
277
281
```
278
282
279
- ## 5.3 クリーンアップ
283
+ ### 5.3 クリーンアップ
280
284
281
285
APIマッピングを解除し、アクションを削除します。
282
286
283
287
``` bash
284
- wsk api delete /v1
285
- wsk action delete cat/cat-post
286
- wsk action delete cat/cat-put
287
- wsk action delete cat/cat-get
288
- wsk action delete cat/cat-delete
289
- wsk package delete cat
288
+ bx wsk api delete /v1
289
+ bx wsk action delete cat/cat-post
290
+ bx wsk action delete cat/cat-put
291
+ bx wsk action delete cat/cat-get
292
+ bx wsk action delete cat/cat-delete
293
+ bx wsk package delete cat
290
294
```
291
295
292
296
<a name =" troubleshooting " ></a >
293
- # トラブルシューティング
297
+
298
+ ## トラブルシューティング
294
299
295
300
まずは OpenWhisk アクティベーションログでエラーをチェックしてください。
296
- ` wsk activation poll ` を使用してコマンドラインでログを出力するか、[ IBM Cloudの監視コンソール] ( https://console.ng.bluemix.net/openwhisk/dashboard ) で視覚的に細部を掘り下げてください。
301
+ ` bx wsk activation poll` を使用してコマンドラインでログを出力するか、[ IBM Cloudの監視コンソール] ( https://console.ng.bluemix.net/openwhisk/dashboard ) で視覚的に細部を掘り下げてください。
297
302
298
303
エラー内容が不明確な場合は、[ 最新バージョンの ` wsk ` CLI] ( https://console.ng.bluemix.net/openwhisk/learn/cli ) がインストールされていることを確認してください。
299
304
もし数週間以上経過している場合は、アップデートをダウンロードしてください。
300
305
301
306
``` bash
302
- wsk property get --cliversion
307
+ bx wsk property get --cliversion
303
308
```
304
309
305
310
<a name =" alternative-deployment-methods " ></a >
306
- # 別のデプロイ方法
311
+
312
+ ## 別のデプロイ方法
307
313
308
314
` deploy.sh ` は将来、[ ` wskdeploy ` ] ( https://github.com/openwhisk/openwhisk-wskdeploy ) に置き換えられます。 ` wskdeploy ` は、宣言されたトリガー、アクション、ルールを OpenWhisk にデプロイするためにマニフェスト (manifest) を使います。
309
315
@@ -312,5 +318,6 @@ OpenWhisk と MySQL の資格情報を Delivery Pipeline アイコンの下に
312
318
313
319
[ ![ Deploy to the IBM Cloud] ( https://bluemix.net/deploy/button.png )] ( https://bluemix.net/deploy?repository=https://github.com/IBM/openwhisk-serverless-apis.git )
314
320
315
- # ライセンス
321
+ ## ライセンス
322
+
316
323
[ Apache 2.0] ( LICENSE )
0 commit comments