LoginSignup
0
0

IBM Cloud FunctionsのActionをHttpより呼び出せるようにする

Last updated at Posted at 2023-07-30

はじめに

以前に投稿した記事「IBM Cloud Functionsのシーケンスを使ってアプリを実行する」で作成したシーケンスをHttpプロトコルによりイベント起動できるようにしました。

前提

Webアクションの有効化

IBM Cloud FunctionsのActionページに遷移します。
readEntitySequenceのWebアクション項目である"無効"をクリックする。
image.png

"Webアクションとして有効化"をチェックし"保存"ボタンを押下する。
image.png

readEntitySequenceのWebアクション項目が"有効"に変わっている。
image.png

動作確認

readEntitySequenceのWebアクション項目である"有効"をクリックする。
image.png

Web アクション(認証なしで利用できるURL)とREST API(認証が必要かつPOSTメソッドのみのURL)の2つのURLが表示されます。
両方のURLに対して稼働確認を行います。
今回は、稼働確認用ツールとしてChromeの拡張機能"Talend API Tester"を利用します。

Web アクション(認証なしで利用できるURL)での動作確認

まずは、認証なしで利用できるURLを使った動作確認です。
image.png

上述のURLを"Talend API Tester"の"SCHEME"に転記します。
添付画像ではURLの最後に拡張子"json"を追加しています。これは稼働確認時に"204 No Content"が発生したため、その対策として拡張子を追加しました。
METHODはこの例ではGETを設定しています。(他のMETHOD(例 POST、PUT、DELETE、PATCH)でも動作可)
image.png

"Send"ボタンを押下します。
JSONフォーマットでレスポンスが取得できていることを確認します。
image.png

REST API(認証が必要かつPOSTメソッドのみのURL)での動作確認

続いて、認証が必要かつPOSTメソッドのみのURLを使った動作確認です。
image.png

"API鍵"リンクを押下します。
image.png

この鍵情報を使ってBASIC認証を行うため、表示された値をBASE64でエンコードします。
Windows端末の場合はcertutilコマンドを使ってエンコードすることが可能です。
表示された値をテキストファイルに転記します。そのファイルをBASE64でエンコードし、別ファイルに出力します。

certutil -f -encode API_Key_before_encode.txt API_Key_after_encode.txt
入力長 = 101
出力長 = 198
CertUtil: -encode コマンドは正常に完了しました。

上述のURLにクエリパラメータ"blocking=true"を追加したものを"Talend API Tester"の"SCHEME"に転記します。
HEADERSに以下の2つを追加します。

  • Key Content-Type, Value application/json
  • Key Authorization, Value Basic [BASE64でエンコードした"API鍵"の値]
    image.png

"Send"ボタンを押下します。
JSONフォーマットでレスポンスが取得できていることを確認します。
image.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0