Enterprise から Pigeon に架電しようとジョブフローを書いてみたが、エラー になる
お世話になっております。
Enterprise: OS/Red Hat Enterprise Linux VER/7.9(Maipo) にて以下のジョブフローを作成・実行したところ、
「code 403 / 認証エラー:/api/apps/pigeon/chain/invoke」と出てしまいました。
Enterprise から kompira cloud への通信は確率しているはずです。
ジョブフローでは port 443 の明示はないかと思います。
またSSL証明書は必要ないと伺っております。
何かいけないのか、ご教示いただけますでしょうか?
よろしくお願いいたします。
-
正式なコメント
フィックスポイントの高橋です。
まず、投稿いただきましたご質問の画像に、APIトークンなどがそのまま記載されておりましたので、こちらで画像を加工させていただきました。ご了承ください。(ご質問をいただく際には、APIトークンなど秘密情報が含まれないようにご注意いただくようお願いいたします)
コラム記事を参考にジョブフローを作成していただいたのかと思いますが、APIトークンや各ID値の指定方法が正しくないためにエラーになっていると考えられます。
コラム記事の記述において「"X-Authorization": "Token (API トークン文字列)"」などとある箇所は、カッコを含めて、実際のAPIトークン文字列やID文字列に置き換えてジョブフローを作成してみていただけますでしょうか。
参考になさってみてください。
コメントアクション -
お世話になっております。ご回答ありがとうございました。
カッコを含めて文字列の置き換えを行い、架電テストは成功いたしました。ありがとうございました。
追加で申し訳ありませんが、こちらのジョブフローの結果メッセージについても質問させてください。
架電は出来ましたが、コンソールや結果で api/apps/pigeon/chain/invoke", "code": 201, と出ています。
これはinvoke API の完了コードでしょうか?
それはどこを見たらわかるでしょうか?
また、ジョブフローのプロセス一覧では、今回の架電に成功したプロセスのステータスは「完了」で、
先に質問した、架電できなかった code:403 のプロセスもステータスは完了になっています。
code:403 のプロセスが異常であることは表示されないのでしょうか? -
> コンソールや結果で api/apps/pigeon/chain/invoke", "code": 201, と出ています。これはinvoke API の完了コードでしょうか?
コンソールに表示がなされているのは、ジョブフローで print($RESULT) という命令によるものですが、この $RESULT には直前の urlopen() の結果が格納されております。urlopen() の結果につきましては、オンラインヘルプまたは以下のコラム記事が参考になるかと思います。
https://www.kompira.jp/column/check_http_status/
code は HTTP の結果ステータスコードを示しております。この 201 という値の場合の意味につきましては、以下の Kompira cloud API 仕様に説明がございますのでご確認ください。
https://demo.cloud.kompira.jp/docs/apidoc/#/pigeon/post_api_apps_pigeon_chain_invoke
> 先に質問した、架電できなかった code:403 のプロセスもステータスは完了になっています。code:403 のプロセスが異常であることは表示されないのでしょうか?
まず、code の値によらず HTTP 呼び出しとして成功していれば、urlopen() 自体は成功扱いとなります。上のコラム記事にもあるように、urlopen() を呼び出した後にその結果を確認して処理を分岐するような実装をすることで、例えば code: 403 の場合にはプロセスを異常終了させる、といったことも可能なります。
ちなみに、ジョブフローでは例えば abort() 組み込みジョブを使うことで、異常終了させることが可能です。
サインインしてコメントを残してください。
コメント
3件のコメント