はじめに
ちょっとやりたいことあったので調べてみたら、あまり日本語で親切に記載してくれているサイトがなかったので備忘録兼て記載。
正直なにか勘違いしている気がする。。。
オンプレミスデータゲートウェイとは?
そもそもオンプレミスデータゲートウェイって何?という方はこちらの記事をご参照ください。
簡単に説明すると、クラウドサービス間でAPIを呼ぶには少なくとも呼ばれる側はネットワークに接続されている必要がありますが、このオンプレミスデータゲートウェイを用いることでオンプレ環境にも接続できるようになりますよ。というやつです。
オンプレミスデータゲートウェイのインストール
以下公式ドキュメントを参考にオンプレミスデータゲートウェイのインストールを行います。
公式のドキュメントを参考して欲しいですが、一応置いておくとインストーラーはこれですね。
標準ゲートウェイをダウンロードします
とりあえず試すだけでしたら、こちらの章を行うのでOKだと思います。
インストール時にスクショしたりするの忘れたので、公式ドキュメントの引用でインストール方法は割愛します。
接続を作成する
次にPower Automateにアクセスします。
オンプレミスデータゲートウェイのインストールおよび構成があっていれば、 「データ」 > 「ゲートウェイ」 にて先ほど作成したゲートウェイが見えるかと思います。
見つからない場合はなにか構成などミスっている可能性あります。
こちらのドキュメントを参照してください。
オンプレミスデータゲートウェイを用いて、Power Automateからローカルに接続するための接続を作成しましょう。(日本語が変!)
「データ」 > 「接続」から「HTTP with Azure AD」を選択します。
項目名 | 設定する値 |
---|---|
Authentication Type | 認証方法を選択します |
Base Resource URL | 要求したいAPIのベース部分を記載します。(http:localhost:1234 みたいな) |
Azure AD Resource URI (Application ID URI) | ここ設定しなくてもいい場合あるのになぜ必須?(道場でもOK) |
Uername | 認証に利用するユーザ名 |
Password | 認証に利用するパスワード |
ゲートウェイの選択 | 先ほど作成したゲートウェイを選択 |
にて接続を作成します。
フローからlocalhostを呼び出す
任意のlocalhostを立ち上げておきます。
一応問題点切り分けのためにも、PowerShellなどで正しい応答が返ってくることを確認しておきましょう。
PowerShellですと curl
ではなく Invoke-WebRequest
ですね。
Invoke-WebRequest -Uri 'http://localhost:XXXX/<api>' -Method 'GET' -Headers @{'accept'='application/json'}
フローを作成しましょう。
アクションで「HTTP 要求を呼び出します」を作成します。
接続には先ほど作成した接続情報を利用します。
要求を入力したら実行してみましょう。
問題なければ実行できるはずです。
おわりに
VOICEVOX使って合成音声をPower Platformで作成したかったので、この方法に辿り着きました。
大勢の人に利用してもらうならサーバ立てるとかしたほうがいいですかね。
ちなみに冒頭でも触れましたが、正直これが最適解なのかわからないので有識者の方ご指摘求です。
この方法だとASP.NETで作成したWebApplicationへの要求(https://localhost:XXXXX
)できなかったんですよねーーー...
SSL証明書当たりの問題なのかな?