Quantcast
Channel: てすとぶろぐ
Viewing all 208 articles
Browse latest View live

Azure ServiceBus を利用した LogicFlow の連携

$
0
0

Azure で提供されているサービスの中に、ServiceBus と呼ばれるものがあります。これは、サービス間の中で安全にメッセージのやり取りを行うための仕組みで、あるサービスから別のサービスへとメッセージを届けるために、非常に安全に利用するための仕組みとなっています。LogicFlow でもこのサービスを利用して、別サービスとの連携を行うことが非常に簡単にできるようになっています。

ざっくりとした図で書くと、ServiceBus は次のように各種サービスをつなぐ中間地点に設置されます。

image

昔のように直接サービスを接続して利用した場合、どちらかのサービスの負荷が過大になった場合、連携しているサービスにも影響が発生します。また片方のサービスだけ増強させる、というのも非常に難しいため、システムの能力を上げるには全体的に増強する必要があり、その分多くのコストが発生します。また、片方だけのシステムをメンテナンスのために停止することも困難です。

ServiceBus を利用した場合は、連携する際にやりとりするメッセージを安全に届けることができますし、呼び出し元・ServiceBus・呼び出し先、それぞれが疎結合で独立していますので、部分的に能力を増強させることも非常に行いやすくなります。

また、連携されるメッセージも、読み出し保障を行う仕組みや、メッセージの一意性を担保する仕組みがあらかじめありますので、ネットワーク経路上の問題でメッセージが重複して届くことを考慮するのも、対応が非常に取りやすくなるという特徴があります。

また、ServiceBus を利用すると、LogicApps と Flow の間で処理を連携させることも可能です。

image

例えば Flow 側でこのような感じに、ServiceBus へとメッセージを送信します。

image

LogicApps 側ではこのような LogicFlow を用意し、ServiceBus からのメッセージを受け取ったら、そのまま Twitter に投稿するようにします。

image

すると、このような感じで Flow を起点に始まった処理が ServiceBus を経由して LogicApps へと連携されたのがわかります。

このように ServiceBus を利用すると、各機能の間で連携を安全に簡単に行うことができるようになります。システムを全体的に考えた際には、このようなメッセージングの仕組みは必ず必要になりますので、Azure に限らずクラウド的な環境で何かしらシステムを構築する場合には、必須のサービスと言えるのかも知れません。


LogicFlow に新規関数が追加されました

$
0
0

恐らく今回のリリースに合わせてだとは思いますが、LogicFlow の関数についてのドキュメントが 3/21 に更新されており、新しい関数がいくつか追加されていました。

現在は github 上で公式ドキュメントは管理されているのもあり、非常に差分をとるのは楽なのですが、対象が HTML ドキュメントというのもあり、diff した結果が見やすくはないのが……(

image

github の該当サイトへ飛ぶには、ドキュメントの右部メニューに edit というリンクが用意してありますので、ここから確認可能となっています。

差分を取って確認したところ、以下の関数が新たに追加されていました。

  • join
  • triggerFormDataValue
  • triggerFormDataMultiValues
  • triggerMultipartBody
  • formDataValue
  • formDataMultiValues
  • multipartBody
  • startOfHour
  • startOfDay
  • startOfMonth
  • dayOfWeek
  • dayOfMonth
  • dayOfYear
  • ticks

JOIN は .NET でいう JOIN メソッドと同様で、指定した配列を指定した文字で結合した結果を変客します。ドキュメントにあるように、 join([1, 2, 3, 4], ',') とすると、1,2,3,4 という文字列が返却されてきます。

triggerForm~系と formData~系、あと mulipartBody 関数は、トリガやアクション(フォーム)から値を取得するための関数群です。

そして、日付関係も今回追加されており、指定した時刻における開始時間や、開始日、開始月に開始年を取得することができるようになります。また ticks 関数で、0001年01月01日 0時0分0秒からの経過秒数を取得できますので、このあたりを用いて計算すると、特定の日付からの経過日数や時間数を計算できるようになります。

LogicApps Live Mar 23,2017

$
0
0

LogicApps チームによるおなじみライブ放送が行われました。今回特に告知を見た記憶もなかったなぁ、と思ったら放送開始の 5 時間ほど前(日本では深夜)にツイートが・・・w

image

いつもの Jeff さんがいない!

今回の御品書きはこのような感じです。こうして見ると、LogicApps が着実にアップデートを繰り返し行っているのがわかりますね。

image

新規追加コネクタやアクションの一覧。この Blog や Twitter で見つけたつど取り扱っていましたが、EventHub は知らなかった・・・というか、昨日(!)リリースとか言っているし(

またサービスが増えるのは気づきやすいのですが、アクションやトリガが増えるのは気づきにくく、FTP コネクタでトリガが増えていたり、ストアドプロシージャがオンプレゲートウェイ経由でもサポートされるようになったようです。

なお紹介している中で、一番声が大きくなったのは Variables でしたw やっぱり公式チームとしてもここはすごくなんとかしたかったんですね。

image

そしてナイスメガネな新メンバーによるデモですが、ここで登場しているのが、近日リリース物の、Cognitive Service にある OCR の API ! いままでだと直接 HTTP コネクタから呼ぶしかなかったのですが、コネクタ化を進めているとのこと。デモでは画像から文字を抜き出し Blob に格納、その結果をブラウザで表示するということを行っていました。

image

そして現在作業中の項目について。変数対応は値の設定やデクリメント、配列対応などなど。デザイナーでの並列処理対応、Linq の Select メソッド的なもの、この間ドキュメントが更新されていた Join 関数などなどです。

image

聞いていて結構面白い話だな、と思ったのが、「リトライの可視化」「VS への LogicApps 定義エクスポート」もそうなのですが、「What’s New を Azure ポータル上で出す」が個人的にヒットですw 予定では、サービスの更新情報も LogicApps のブレードから確認できるようにするとの事。他のサービスでは恐らくこんなことやってないですから、非常に独創的で面白い試みですw

そしてなんといっても一番楽しみなのは「Expression tracing」機能ですね。各種関数を利用している場合に困るのが、想定と違う動作をした場合ですが、この機能が提供されると各関数にわたった値や結果の値を確認できるようになるというものです。これがあるとデバッグが非常に行いやすくなりますね。

image

最後に直前に迫った Global Integrration Bootcamp の紹介で、LogicApps のメンバーも複数個所訪れるとのことです。

Variable、Create CSV Table と Create HTML Table アクションの動作

$
0
0

以前に告知されていた Release Update 2017-03-24 が、現時点では部分的に利用できるようになってきたので、実際の動作を確認してみました。(ForEach ネストと Terminate コネクタでの成功指定はまだ確認できず)

まずは一番気になっていた「変数」についてです。

image

新しくコネクタとして追加されていて、今回のアップデートでは「初期化」と「インクリメント(増加)」が可能になっています。デクリメントなどは次回以降の対応というのが、LogicApps Live で言われていました。

今のところは純粋にカウンターとしての利用が可能になった、くらいですが使い方によっては行番号的なものを LogicFlow で作成することができるようになったとも言えますので、ますます処理の幅が広がったと思います。

image

続いて、デザイナ上でコネクタ間に「+」の表示が出るようになり、新しいコネクタを途中から挿入することが可能になっています。今までは末尾に追加したものをドラッグ&ドロップで移動させていましたが、今度からは直接挿入が可能です。

image

ブレード上で、履歴に対して日時によるフィルタリングも可能になりました。これで実行履歴を検索するのも大分楽になっています。

続いては CSV to Table と CSV to HTML です。

image

データ操作コネクタの新規アクションとして追加されています。

image

こちらが CSV to Table で、 LogicFlow 上の配列をCSV データとして変換します。ヘッダ行のあり・なしが指定できるようになっています。

image

動作の確認として、上のような LogicFlow を作成してみます。array 関数で json オブジェクトを配列にしていますが、その内容は 1 レコードのみとしています。

image

その実行結果は、このようになっています。要素名を昇順で並び替えた結果を CSV として出力しているように見えますが、これはなんか不具合な気がしますね……。ただそれを除けば、配列を簡単に CSV 化してくれています。ただし、ヘッダを含むかどうかの指定は動作していないようです。

image

CSV to HTML もほぼ同じ機能で、こちらは取り込み後を HTML のテーブルとなるのが違いとなります。

image

実行結果としては、上記のようになります。配列が TABLE タグを使った HTML として、変換されているのがわかると思います。こちらはヘッダを含むかどうかの指定が、ちゃんと動いていますね。

触ってみて思ったのは、配列を簡単に変換してくれるので、ちょっとした CSV の生成・出力であればこれらのコネクタを利用するケースはありそうです。複雑なものであれば、以前に紹介した Enterprise Integration Pack を利用しますが、そこまでは必要のない場合、または配列を HTML に出力したいといったケースでは、十分に利用できそうに感じました。

Compose コネクタに追加された結合機能について

$
0
0

LogicFlow で提供されている Compose(データ操作) コネクタに、新しく「結合」と「Select」のアクションが追加されていたので、どういった動作になるのか試してみました。

結合アクションについては、最近追加された join 関数と同様の動きを行うものとなります。

image

例えば上記のような LogicFlow を用意し、val1:10 と val2:”10” という組み合わせと、val1:20 と val2:”20” という組み合わせを持つ JSON 値を CreateArray 関数で配列に変換し、結合アクションを利用してカンマ区切りにて出力してみます。

image

出力結果は上記の通り、配列の要素(val1 と val2 の組み合わせ)ごとに、カンマで区切られているのが確認できます。

ではカンマなどの通常の文字ではなく、タブなどの特殊記号が使えるかをやってみます。

image

結論としては可能なのですが、デザイナー上からはタブ記号を指定できませんでした。

image

この場合は CodeView 上で直接記述する必要があります。利用できる特殊記号ですが、原則 JSON 形式で利用できる形にしておく必要があり、タブなどの場合は \t というようなエスケープを行った形で指定します。デザイナー上で指定できないのは、エスケープ時に利用する \ が、デザイナー上で記述した場合には \\ と自動でエスケープされてしまうためです。そのため、CodeView を利用しての指定を行う必要があります。

CodeView でタブ記号を指定した場合、先ほどのスクリーンキャプチャのように「結合」欄には何も表示されていないように見えますが、実際にはここにタブが表示されています(反転させたりするとわかります)

image

Blob に出力してみると、このようにタブで区切られた結果が確認できます。

Compose コネクタに追加された Select アクション

$
0
0

前回のエントリにあったように、Compose コネクタに「結合」と「Select」という新しいアクションが追加されました。今回は Select アクションの挙動について試してみました。

Select と言われると開発者の方であれば Linq の Select メソッドを思い浮かべる人がいると思いますが、今回提供された Select アクションもそれとほぼ同一のものとなります。

image

利用方法としては上記のような形になるかと思います。何かしらの「配列」をもとにして、新しい配列を作成するのが Select アクションとなります。その際に、配列の要素(上記では amount や detailid)を定義することが可能で、もともとの配列に合った要素や、新しい要素をここで再定義できます。

注意する必要があるのは、From に対して設定できるのは「配列」だけ、という点です。Array 関数で作成したものでも一応は設定できますが、Map で指定する出力要素の指定では、単純な Array 関数で作成した配列の要素を指定するのがわかりづらいです(恐らくは @item 関数で可能)。そこを踏まえると、JSON 値を相手に利用するというのが、Select アクションの主な使い方になるかと思います。

image

例えばこのように、配列を持つ JSON 値を対象として・・・

image

Select アクションに引き渡すと、元の配列では amount と id2 という要素だったものが、amount、detailid、mainid という要素の配列に再出力できているのがわかると思います。

このような形で、処理対象となる配列を変換することが Select アクションの機能となります。先日追加されている変数も含めると、新たに連番を振りなおすこととかも LogicFlow だけで可能になるかと思います。

LogicFlow で LogicApps にリリースされているサービス数やトリガ・アクション数を取得する

$
0
0

LogicApps は日々新しいサービスの対応が追加されたり、利用できるアクションが増えたりと、知らない間にできることが増えてくるサービスです。公式ブログでも特にアナウンスがない場合も多く、いつの間にか追加されてた!、ということが頻繁にあります。

そのため、現時点で利用可能なサービス数やトリガ・アクション数を定期的に調査する仕組みを考えてみました。

Azure Portal だけでなく Visual Studio の LogicApps 拡張を利用して、LogicFlow の作成ができるので、CORS などによるアクセス制限はない、と考えていたので Fiddler で LogicApps 拡張がどうアクセスしているのかをまず調査します。

image

VS からも、Azure Portal からも同様のアクセス方法にてコネクタ一覧を取得しているのが確認できます。これらでアクセスしているのは、以下の2か所のようです。

  • https://management.azure.com/subscriptions/{サブスクリプションID}/providers/Microsoft.Web/locations/{リージョン}/apiOperations?api-version={API Version}
  • https://management.azure.com/subscriptions/{サブスクリプションID}/providers/Microsoft.Web/locations/{リージョン}/managedApis?api-version={API Version}

apiOperations にアクセスした場合は、その後のパラメータにより、トリガ一覧を取得するかアクション一覧を取得するかを指定できるようです。また、managedApis にアクセスした場合は、サービス一覧が取得できるようだと、結果から推測できます。

これと同様に HTTP アクセスすることで、LogicFlow だけで一覧を取得できるのですが、そこに至るまでが少々手間のかかるところでした。Azure の REST API を利用するときと同様、Azure ActiveDirectory にアプリケーションの登録が必要で、その情報をもとにアクセスするためのトークンを取得できるようになります。

1.Azure AD へのアプリ登録

image

ポータル上で Azure Active Directory のブレードを開き、「アプリの登録」をクリックします。

image

上記スクリーンショットのように、何かしらのアプリケーションとして登録が必要なので、「追加」をクリックします。

image

一覧上での名前(適当でOK)、アプリケーションの種類(Webアプリを選択)、サインオンURL(適当でOK、思いつかなかったら HTTPS://localhostでOK)を設定し、下部に表示されている「作成」をクリックします。作成されると、先の一覧に戻りますので、今作成したものをクリックします。

image

まずはここに表示されている、アプリケーションID、が後で必要になりますので、これをコピーして保存しておきます。次に Client Secret と呼ばれるパスワード的な項目を作成しますので、「キー」をクリックします。

image

ここで新しいキーを作成します。その際の説明は何でもよく、期限も自分が利用する範囲を設定します。そうして保存すると、新しいランダムな文字列が生成されますが、内容を確認できるのはここ一度だけですので、必ずこの値を控えておいてください。忘れた場合は、新しく作成しなおしとなります。

アプリケーションの登録は、これで完了です。次に、このアプリケーションに対して権限を付与します。

2.アプリケーションへの権限付与

ポータル上で「サブスクリプション」を開きます。

image

LogicApps を作成するサブスクリプションをクリックします。

image

アクセス制御(IAM)をクリックします。

image

するとこのような画面になりますので、ここからアプリケーションに対して権限を付与していきます。権限付与の方法はいろいろとあるので、詳しく知りたい方は RBAC について調べてみるのがよいと思います。今回は、閲覧権限だけを付与するやり方を行います。上部の「役割」をクリックします。

image

このようにサブスクリプションに定義されている役割が、一覧で表示されます。ここから、必要な役割を選択するので、今回は「閲覧者」をクリックします。

image

ここからアプリケーションを登録します。ユーザーの追加、とでていますがここにアプリケーション名を入力します。

image

うまくいくと上記のように作成したアプリケーションが表示されるので、これを選択し画面下部の「選択」をクリックします。うまく表示されない場合、アプリケーションID で検索すると出てくることもあるので、両方で試してみてください。

ここまでの作業で、ようやく REST API などで必要となる クライアントID と クライアントシークレット が作成でき、必要な権限も割り振られた状態となります。

3.アクセスして情報を取得する

ようやくここからが LogicFlow です。今回作成するものは、以下のようなものとなります。なお、今回は作成しているうちに、デザイナー上ではエラーとなって保存できないけども CodeView からはちゃんと保存できる、という現象が発生しましたので、もし保存できない場合は CodeView から保存を行ってください。

image

トリガの取得、アクションの取得、それにサービスの取得を並列にしていますが、これは単なる趣味です(

流れとしては、最初にトークンを取得し、次にトークンを用いて各種情報を取得する形になります。

image

トークン取得時は HTTP コネクタを利用して POST アクセスを行います。URL は次のものになります。

https://login.windows.net/{テナントID}/oauth2/token

ヘッダーには Contetnt-type として application/x-www-form-urlencodeed を指定し、本文として、以下の文字列を & で結合した形で設定します。

grant_type=client_credentials
resource=https://management.azure.com/
client_id={クライアントID}
client_secret={クライアントシークレットを URL エンコードしたもの}

注意すべきところは、resource で指定する URL で、これは management.azure.com を指定する必要があります。ほかの資料だと、自分のテナントとなる URL を指定するものもありますが、今回はこの URL である必要があります。

image

アクセスした場合の戻り値は JSON となりますので、あらかじめ ARC や POSTMAN などのツールでアクセスを行い、結果を取得しておくと 「JSON の解析」アクションを使うのが楽になります。

image

取得できたトークンを、後続処理で利用しやすいように加工します。「作成」アクションで、取得したトークンの頭に「Bearer 」(Bearer の後ろに半角ブランク)を付与しています。これはアクセスする際に、Authorization 項目としてヘッダに記載する必要があります。

image

アクセスして情報を取得する箇所は、上記のように設定します。

image

取得した結果より、配列の個数を length 関数で取得しています。これがサービスやアクション、トリガの個数となります。

image

最後に取得した結果をもとにツイートさせています。

image

余談として、趣味で行った並列動作については、上記のように実行条件となる runAfter の指定で、複数のコネクタの正常終了を条件と記載することで、設定が可能です。

image

これで何とか、LogicApps で利用可能なサービス数やアクション、トリガの情報が取得できました。今回はまとめて個数だけを利用していますが、取得した各種情報にはアクションやサービスの詳細情報もありますので、このあたりを利用すると独自のエディタ作成など、面白いことができるかもしれません。

Microsoft Flow で追加された承認機能を利用する

$
0
0

先日 Microsoft Flow に追加された機能として、承認機能があります。今まででも、Office365 Outlook や、Outlook.com を利用した承認メールのやりとりはあったのですが、今回の機能強化で非常に簡単に利用できるようになっていました。

利用するためには、Flow のプレミアムアカウント、というよりも Office 365 のアカウントが必要です。無償プランのアカウントでは以下のようにワーニングが表示されます。

image

また、現時点の注意として、Common Data Service を「利用していない」環境が必要です。

image

利用しているかどうかですが、Flow 管理センターで確認可能です。管理センターは右上の歯車のようなアイコンから選択できます。

image

このように、利用している環境のデータベースが作成済みであった場合、その環境では承認機能が利用できません。将来的には可能になるとのことです。このような場合は、新しい環境を作成する必要があります。

image

環境一覧を表示している画面で、右上に「新しい環境」がありますので、これをクリックすることで作成が可能です。リージョンについては恐らくどこでもいけるとは思いますが、今回は色々不安だったのもあり、United States なアメリカリージョンを選択しています。

image

環境が作成出来たら、管理センターを閉じても大丈夫です。もともとの Flow の画面右上にある、人型のアイコンをクリックすると、利用する環境を選択できるので、ここで新しく作成した環境を選択します。もしここで表示されていない場合は、リロードすることで表示されます。

image

そうすることで、上部メニューにある「環境」がクリックしても大丈夫になります。利用できない環境の場合、先に張り付けた「問題が発生しました」画面が表示されるので、注意してください。

画面上、ここから承認フローをすぐに作成できるように思えますが、ここは現時点では罠です。

image

クリックして表示される先は、Flow のテンプレート集から承認機能にまつわるものの表示が行われる・・・予定であって、今の時点では何一つテンプレートがないので、上記のような状態になります(

image

今回作成する LogicFlow は上記のようになります。二つめのコネクタが、今回新たに追加された承認機能用のコネクタとなります。流れとしては、ボタントリガによりスマホから何かしら入力を行わせ、その内容を含めて承認依頼メールを飛ばします。承認結果が承認(Approval)だった場合は、スマホに通知を行うというものです。

image

設定する項目としては、タイトル(承認依頼として通知されるメールに記載されます)、送付先(相手メールアドレス)、詳細、リンク先とその説明、となっており、必須項目としてはタイトルと宛先の二つだけとなっています。

ここで一つ注意があって、現時点の仕様なのかどうかはわかりませんが、ここで指定できるメールアドレスはどこでも利用できますが、Office 365 で設定しているメールアドレスでなければ、その後のフローへ遷移しないというのが確認できています。自分の場合、Yahoo などのアドレスへメールを送付してみたのですが、メール自体は届くものの、そこから先に進むことができませんでした。

image

実際に届くメールは、上記のようなものです。指定したタイトルと、詳細がメールに記載されているのがわかると思います。ここで承認(Approval)や否決(Reject)をクリックすると、すぐにでも承認できそうなものですが・・・

image

ブラウザ上で Flow の受信済みの要求画面が開かれるだけだったりしますw
ここでは受信されている、承認要求のメールが一覧で表示されています。

それぞれに表示されている、「承認」や「拒否」をクリックすると詳細理由の入力を求められます。

image

この画面が表示されてからも、承認か拒否かは、状態欄の右端にある「...」をクリックすることで再選択可能です。どちらかを選択した後で、確認をクリックすると、承認行為の完了です。LogicFlow 上での次のコネクタへと処理が遷移します。

image

このように、実行履歴上でも最後まで流れているのが確認できます。

image

将来的には上記のように、モバイルアプリ側で承認が行えたり、ブラウザ上で送信済みの承認依頼なども参照できるようになるとは思います。現時点では Android 版の Flow アプリでは、それは行えていませんでしたし、ブラウザ上で送信済みの依頼を確認することや、承認した履歴を参照することもできていません。

ですが、まだリリースされたばかりの機能ですので、今後はさらに使いやすくなっていくのではないでしょうか。


LogicApps Release Update 2017-04-21

$
0
0

ここ最近リリースアップデート案内がなかった LogicApps ですが、細かい改善やコネクタ追加などは随時行われていました。今回アナウンスがありましたが、2017-04-07 Update のエントリもこっそり追加されていたりと、色々忙しい気配が漂っています。

今回のアップデートは以下の項目です。

  • Can now create parallel actions in designer by selecting the “+” above an action
  • Retry-history now shows up in monitoring view and via /actions API to know when transient retries were applied
  • Modified styling to allow more content on the screen (wider cards, font and styling changes)
  • New template for a sequential convoy added
  • Can now use x-ms-dynamic-values and x-ms-dynamic-schema for HTTP + Swagger to have custom dropdowns/properties

image

まずはデザイナー上で、並列アクションを追加できるようになりました。これまでは CodeView 上で直接記載しないといけなかったのですが、これにより HTTP リクエストなど時間のかかるアクションを、複数並列で動作させることが行いやすくなっています。

実行履歴において、再試行が行われたものを結果として表示されるようになりました。ちょうどそういったサンプルがないので、どのように表示されるかは確認できませんでしたが・・・。

デザイナー上での表示もアップデートされ、これまでは見出しの下に入力欄が表示されていたものが、横に並ぶようになりました。

image

ServiceBus を利用するテンプレートに追加が行われました。

image

長いですがこんなテンプレートになります。デザインパターンにある、コンボイパターン(convoy)でシーケンシャル処理なやつです。パターンについての説明ははしょりますが、複数のメッセージを受信して一つの処理を行うようなものとなります。

image

最後の x-ms-dynamic-values などについてですが、LogicApps や Flow では、Swagger で出力された定義を参照することができるのですが、この定義の中で利用できる機能になります。

詳しくは Flow のドキュメントにあるので参考にするとよいでしょう。

x-ms-dynamic-values はコネクタの設定時にドロップダウンボックスを利用して、値を選択させる際に、値のリストを定義するのに利用します。x-ms-dynamic-schema はコネクタで設定させるものが、動的に変化する場合に利用します。x-ms-dynamic-values で指定した値によって、設定項目が変化するというケースがイメージしやすいでしょうか。

今回のアップデート案内はこのような感じでしたが、今週 4/27(日本時間 4/28 AM 03:00)には久しぶりの LogicApps Live も行われるので、ここにない内容も出てくるのではないかと楽しみです。

LogicApps で Azure AD の操作を行う

$
0
0

先日 LogicApps に追加された Azure AD コネクタ、利用するまでにいろいろと悩んだ点がありましたので、メモ書きとして利用手順をまとめておきます。

追加されたコネクタは、トリガ無しでアクションのみ用意されています。

azuread

ユーザーの新規追加、変更、グループへの登録といった部分をはじめとして、基本的な操作が行えるようになっています。

このコネクタを LogicApps で利用する場合、対象となる Azure AD のドメインに属するユーザーが必要です。ドメインを管理できる権限を所持していても、別ドメインのアカウントであった場合はこのコネクタを利用する際に以下のエラーが発生します。

aderror

既にドメインに属するアカウントがあれば、それを利用するのもよいですが、新しく Azure AD 操作用にアカウントを用意するのもよいと思います。その場合の流れは次の通りです。

image

Azure ポータルから Azure Active Directory を選択し、「ユーザーとグループ」→「すべてのユーザー」と選択すると、上記のような一覧画面となりますので、上部にある「新しいユーザー」をクリック。

image

名前は適当に、ユーザー名に対象ドメインのメールアドレスを設定します。ここ、実在するアドレスでなくてはいけないかと思う人もいるかと思いますが、まったくそんなことはなく架空のアドレスで大丈夫です。

もう一つ、Azure AD コネクタを利用する際には、ある権限が必要になります。それはディレクトリの全体管理者である、というものですので、ディレクトリロールの箇所で「全体管理者」を設定します。制限付きの方でもできるかと色々試したのですが、今のところは全体管理者でなくてはできない模様です。

新規ユーザーを作成したら、そのユーザーで一度 Azure ポータルにログインし、パスワードの再設定を済ませておきます。

アカウントを用意したら LogicFlow を作成します。

image

コネクタを設置すると、サインインを求められるので「サインイン」をクリックします。

image

この際、ポータルにログインしているアカウントが対象ドメインのユーザーであればそのまま続行してもよいですが、先に作成した新しいアカウントを使う場合は「別のアカウントを使用する」を選択してください。サインインが無事に済むと、デザイナー画面へと戻ります。

image

Azure AD を利用する権限を持ったユーザーでサインインすると、上記のようにコネクタが利用できる状態になります。

adad

作成した LogicFlow を実行すると、上記のように Azure AD を利用した処理ができているのが確認できます。

ポイントとしては、専用のアカウントを新しく作るのがわかりやすい、という点です。ここさえ押さえておけば LogicFlow から AzureAD を操作するのも非常に簡単です。

AD Connect を利用して、Azure AD とオンプレミス AD を同期するようにすれば、Azure AD 上でユーザー登録するとそのままオンプレミス側にも連携されるので、色々と使い方も膨らんでいくのではないでしょうか。

LogicApps Live May 2 2017

$
0
0

先月は残念ながら放送はなかった LogicApps Live、5月に入ってさっそく放送を行ってくれましたので、そのまとめとなります。

image

おなじみの LogicApps 3人組です。Jeff が着ている Tシャツですが、FunctionApp と LogicApps の T シャツとなっていました。ちょっと欲しい・・・。

image

まずは LogicApps の最新情報です。実際にはまだリリースされていないものも含まれていますが、恐らくはそう遠くない時期にリリースが行われるものと思われます。

  • VisualStudio2017 用 LogicApps ツールのリリース
  • デザイナー上での並列動作指定
  • Select と JOIN アクションの追加
  • 履歴上で再試行の結果表示
  • ServiceBus のセッション対応
  • OMS の B2B 関連強化
  • Swagger 定義での x-ms- 系属性対応
  • 変数機能の追加
  • ブレード上でのリリースノート表示
  • デザイナー上で RunAfter 設定の対応

このように一覧にすると非常に多くの機能強化が行われていることがわかります。

image

最近追加された、SrebiceBus 向けのテンプレートの紹介です。BizTalk にも関連している、コンボイパターンによる複数メッセージの処理についてのデモでした。

image

直近までにリリースされたコネクタです。Azure AD は個人的にもすごいうれしいコネクタ追加で、LogicApps だけで AD 管理まで行えるようになったのは、やはりうれしい事ですね。

image

そして進行中の一覧です。

前々から話題に上がっている、式のトレース機能や ForEach のネスト(Live中でも時間かかってますが、的に笑い飛ばしていましたw)、認証機能の強化(有効期限切れへの対応っぽい)、配列機能の強化などなどがありました。こうしてみると、ForEach コネクタ周りの強化がそろそろリリースされるのかも知れません。

また、コネクタ追加についても、Azure Files などもありますが、Office365 の Planner や Team への対応も予定しているようです。また、ServiceBus コネクタでのスキーマ対応も結構うれしいもので、以前に試した際も、メッセージをやりとりするんだけどスキーマ定義を行う箇所がなかったので、別途 JSON 解析アクションを行う必要がありましたが、それも必要なくなりそうです。

今後も LogicApps の動向が非常に楽しみになる内容でした!

Flow モバイルアプリ上での承認機能

$
0
0

以前に紹介した、Microsoft Flow での承認機能ですが、当時はまだモバイルアプリ上での承認行為は行えずに、常にブラウザ上で行うようになっていました。直近のアップデートで、Android 版 Flow アプリでアプリ上の承認行為がサポートされました。

今回も機能サンプルとして、ボタントリガを起点とし、自分自身に承認要求メールを飛ばすようにしています。

Screenshot_20170505-235026

このような感じで、依頼する内容を入力すると、その内容を記したメールが自分自身にとんできます。現時点ではまだ Office365 アカウントに紐づくメールアドレスでなくては対応されていないようで、アカウントを持っていないメールアドレスに送付しても承認は行えず、Flow の Web サイトへと転送されるようになっていました。

Screenshot_20170505-235036

メールが送信されたのを察知すると、Flow アプリへと通知が行われます。上記スクリーンショットでは黒背景となっている Flow アプリ独自の通知ですが、アプリをバックグラウンドにしていたり、立ち上げていない場合は通常の通知が行われていました。

この通知をタップすることで、Flow アプリ上の承認画面が呼び出されます。

Screenshot_20170505-235906

ここで「承認」か「拒否」かを選択し、必要であればコメントを追加して記載することが可能です。

ただし、現時点のアプリでは注意する点があり、先ほどの通知からでなければこの画面が呼び出されない、という点があります。本来であればアクティビティ一覧のところで表示、もしくは通知内容が表示され、そこから承認画面へと移れるのが正しい姿だと思うのですが、現時点ではそのあたりがまだうまいこと対応できていないようです。

Screenshot_20170506-000041

このように、モバイルアプリ上から承認が行えるようになりました。これで、スピーディーな承認が行えるようになったと思います。

LogicApps Release Update 2017-05-05

$
0
0

LogicApps Live で公表されたアップデート内容ですが、さっそくリリースされてきたものがありますので、今回リリース内容をまとめておきます。

今回のアップデート内容は以下の通りです。

  • Can specify the “RunAfter” status in the designer (under the action menu)
  • Release notes show in the logic app blade
  • Set Variable action added to designer/run history view
  • Run API supports time-range filters for runs
  • Use the new paginate API in run-history view for better performance
  • Run history styling improvements

まずは個人的にも待ちかねていた RunAfter 設定をデザイナー上で設定できる機能です。

image

トリガ直下以外のアクションで、右端のメニューに Configure run after が追加されています。これをクリックすると、runAfter の設定をするようにアクションの表示が切り替わります。

image

succesful(成功)、failed(失敗)、skipped(スキップ)、timed out(タイムアウト)の条件が用意されており、直前のアクションの実行結果によって処理を分岐する指定が、デザイナー上だけで行えることになります。今までは CodeView 上で指定していたものですが、これでよりエラーに強い LogicFlow が作りやすくなりました。

次はリリースノートの表示が、ブレード上から行えるようになりました

image

開発ツールの一番最後に追加されています。

image

表示された直後はこのように、非常に見えにくいものです。

image

マウスカーソルを乗せると、色が白背景になり読めるようになりますが、何故このような表示を・・・w

表示されている内容としては、Update 告知用の MSDN Blog の内容そのものとなっていますので、これで Blog をチェックしなくともここで確認できるようになりました。

次は変数のアクションに新機能の追加です。

image

これまでは、変数の初期化アクションは変数ごとに一度しか実施できないため、値を再設定することができませんでした。

image

今回追加された、変数の設定アクションで値の再設定が可能となっています。

Run API supports time-range filters for runs は、API 側の機能追加で開始時刻などを API 側でサポートしたという件、Use the new paginate API in run-history view for better performance は、ポータル上での履歴表示パフォーマンス改善のため、API を改善したという件、Run history styling improvements は履歴の表示を改善した、というものになります。

そして不具合修正としても、以下の物があがっています。

  • Fixed the authentication error on invoking a logic app when passing in Authorization headers
  • Improved run history view when array was evaluated with no items (empty)
  • Recurrence interval errors now show in the input box
  • Recurrence interval visible in run history view
  • Fixed behavior when adding an array to a Select card (no implicit foreach added)

認証エラー回りで回収が行われているのが気になります(最近そのあたりでうまくいけてないことがあったので)。ちょっと DataLake まわりをもう一度確認してみるかな・・・。

LogicFlow で Bearer Token を取得する

$
0
0

以前に試していたものですが、今回テンプレート化して誰でも利用できるようにしてみました。これを利用すれば、LogicApps 上で Azure の各種サービスにアクセスするのも、やりやすくなると思います。

Githubはこちら

作成した LogicFlow は次のようなものです。

(前半)

image

(後半)

image

前半部分では、HTTP リクエストを生成して、ユーザーダイアログを出さない形で Token を取得するよう呼出を行っています。その際、必要なパラメータ(クライアントID、シークレット、テナントID、リソースURL)については、POST 時に JSON パラメータとして受け渡してもらう想定です。

スキーマは以下のようにしています。

{
  "properties": {
    "client_id": {
      "type": "string"
    },
    "client_secret": {
      "type": "string"
    },
    "resourceurl": {
      "type": "string"
    },
    "tenanntid": {
      "type": "string"
    }
  },
"type": "object"
}

クライアント ID やシークレットについては、以前の記事にもあるように Azure AD 上でアプリケーションを作成する必要があります。

また、リソースURLもパラメータとしていますが、これは利用するサービスによって指定するアドレスが異なるためです。もしかすると同一の URL でも可能かもしれませんが、docs にあげられている各種資料を見ると、DataLake Store であれば https://management.core.windows.net/ですし、Azure であれば https://fmanagement.azure.com/であったりします。

このあたりの値を URL エンコードし、パラメータに設定して呼び出すことで、Bearer トークンを取得し、返却する LogicFlow となっています。

トリガや末端のアクションを変更することで、ネストする LogicFlow としても利用できるかと思います。

LogicApps をテンプレート化し配布可能にする

$
0
0

前回のエントリで、以前に作った LogicFlow をテンプレート化して Github からデプロイできるようにしてみました。今回はその手順についてまとめてみます。

image

まず最初にテンプレート化したい LogicFlow を準備します。そして左に表示されている「Automation スクリプト」をクリックします。

image

クリックするとこのように、ARM テンプレートが表示されます。基本はこのように生成されたテンプレートをデプロイすることで、LogicFlow の再利用が可能となります。ただし、知り合いと共有ならまだしも、一般公開する場合には消しておいたほうがよい情報がコメント上に含まれているため、生成されたテンプレートを後で手動編集する必要があります。

image

対象の LogicFlow に API 接続(コネクタ経由でのサービスへの接続)が含まれていた場合、このようなアラートが表示されます。これは API 接続の情報をエクスポートできないよ、という意味合いなのですが LogicFlow の場合、接続情報は各々の環境で異なるのが当然のため、エクスポートできない状態で問題ありません(デプロイ後に一度 LogicFlow を開き、再設定を行う必要があります)

image

作成されたテンプレートには、上記に近い形で「パラメータ」と「リソース」が表示されていると思います。パラメータは、デプロイ時に入力を求められる項目で、LogicFlow としては「LogicFlow 自体の名前」は必ずパラメータとして設定されます。

image

パラメータは、テンプレート内部で可変にしたい箇所に用いられます。上記の例では、LogicFlow 自体の名前の箇所(name 欄)にて parameters~ とパラメータとして入力した値を設定するように記載されています。

実際にテンプレートをデプロイした時には、上記のように「設定」欄でパラメータの入力を行うことになります。

image

なお、テンプレートを表示している際、上部メニューにはこのように表示されています。「ダウンロード」をクリックすると、今表示されているテンプレートがローカルにダウンロードされ、「ライブラリに追加」とすると、Azure Portal から表示できる Templates で確認できるライブラリに追加されます。「デプロイ」をクリックすると、即座に自分のサブスクリプションでデプロイされます。これは、デザイナーを開いて「複製」をクリックしたときと同じ挙動です。

image

Templates については、まだプレビュー段階のため、初期段階では Azure Portal に表示されていませんので、左下部にある「More Services」をクリックし、「その他」カテゴリにある Templates の星印をクリックして一覧に追加することで、左の機能一覧に追加され参照しやすくなります。

Templates を参照すると、初期状態では何も登録されていません。先の Automation スクリプトのところで、ライブラリに追加した場合は、それが表示されている状態になります。

image

ここで直接 template.json のファイルの中身を貼り付けて登録、でもよいのですが、先に書いた通りコメントなどでサブスクリプションの情報が出たりしているので、できるだけ直接貼り付けやライブラリ登録は避けたほうがよいかもしれません。もちろん、知っている間柄でだけ共有するなどであれば、特に気にしなくても大丈夫かと思います。

コメントの編集は、テンプレートをダウンロードして行います。

image

ダウンロードしたテンプレートは、デプロイするためのスクリプトなども含まれています。今回は Github からのデプロイが目的なので、template.json を解凍し編集を行います。

image

開いたテンプレートは上記のようになっています。LogicFlow 全体に対するコメントとして、作成元のサブスクリプション情報が記録されているので、これをばっさりと書き換えるのがよいでしょう。ほかにもパラメータ名なども編集可能ですので、このあたりを調整しておきます。

後は Github に配置して、デプロイボタンを作成します。

image

デプロイボタンについては下記のような感じになります。

image

ググって検索していると WebApps 用のデプロイボタンな記事が多く見受けられますが、今回のように WebApps でない場合は、portal.azure.com に #create/Microsoft.Template を付与して、uri パスで Github 上の template.json ファイルを指定する形で A タグを記載します。

そうするとボタンをクリックすると、Azure Portal を開き(ログインしていない場合はここでログインを求められます)、その後デプロイ時の画面が表示されます。

このような流れで LogicFlow をテンプレート化し、簡単に誰でも自分の環境へデプロイできるようになります。何か面白そうな LogicFlow ができたら、どんどん共有していきたいですね。


Flow アプリで承認機能がバージョンアップ

$
0
0

05/22 付で Flow アプリがバージョンアップされ、これまで困っていた承認回りが拡張されました。これで承認機能も使いやすくなったと思います。

今回追加されたのは、アプリ上で承認依頼が来ているものを表示し、そこから承認or否定を実施できるようになったというものです。

Screenshot_20170522-105800

アクティビティタブを開くと、上記のように「フィード」と「承認」が表示されています。これまでは、最初に通知されたタイミングからしか、この承認画面は開けないという、それちょっとどうなのよ的な挙動でしたが、これで通知を気にせずに承認が行えるようになります。

承認の仕組み自体は、色々な都合もあり Flow でしか実施できませんが、LogicApps から Flow のLoigcFlow を呼び出すことも可能ですので、承認部分を外だしすれば LogicApps でも承認行為を絡めたフローの構築が十分に可能となっています。

LogicApps Release Update 2017-05-19

$
0
0

公式ブログが更新されていないので油断していたら、先日 Azure Portal からリリースノート確認できるようになった機能が活用されていました(

今回のアップデート内容は以下の通りです。

  • API Management run-history now renders based on OpenAPI definition
  • New video added to the template screen
  • Accessibility improvements to folder/file picker and dropdown menus
  • Performance and optimization improvements

コネクタの追加などは発生していない、微調整的な内容となっています。

API Management の実行履歴を OpenAPI 定義に沿って表示するようにした(LogicApps のブレード上ではない?)、新しい動画を新規作成時の画面に追加、ファイルやフォルダのピッカーを更新、パフォーマンスの向上、となっています。

image

ファイルピッカーは見た目どこが更新されているかはちょっと不明ですね・・・もしかすると、まだリリースされていないのかもしれないので、頭の片隅にとどめておきます。

修正された不具合は、以下の通りです。

  • Fixed issues when opening run history with new browse mode
  • Webhook trigger operations would sometimes ask user for polling frequency
  • Initialize variable in designer correctly lists supported types
  • Fixed reload of designer when using x-ms-dynamic-values in swagger for HTTP + Swagger

新しいプロセスで開いた場合に履歴表示がおかしくなる件、Webhook トリガがたまに挙動がおかしくなる件、デザイナー上での変数初期化で一覧表示がおかしかった件、ダイナミックプロパティを利用している Swagger コネクタの場合に、リロードするとプロパティが反映されなかった件、などが修正されています。

LogicApps のログ情報を OMS へと連携する

$
0
0

LogicApps では非常に簡単に OMS(Operations Management Suite)へ、ログ情報を連携することができます。OMS では Azure Portal で見るよりも、よりビジュアライズされた形での参照が可能です。

OMS を利用するためには、OMS ワークスペースの作成が事前に必要です。

image

Azure Portal 上で Log Analytics というメニューがあるので、それをクリックします。表示されていない場合は、メニュー最下部の More Services から選択が可能です。

image

Log Analytics のブレードから、追加をクリックすると新規に OMS ワークスペースの作成を行えます。完全に新規に作成する場合は、OMS ワークスペースの名前を入力していきますが、事前に OMS ポータルから作成済みのものを利用する場合は、「または既存のものを」となっている部分をクリックすると、既存ワークスペース一覧からの選択も可能です。

image

作成されると、上記のようが表示に切り替わります。これで OMS ワークスペースの作成は完了です。続いて、OMS にログを転送する LogicApps 側を設定します。

image

対象の LogicApps を開くと、メニューの下の方に「監視中」というカテゴリがあり、その中に「診断」があるので、これをクリックします。

image

表示が切り替わり、現状の診断状況が表示されます。上部にある「診断設定」をクリックします。

image

最初は状態が「オフ」になっているので、上記とはちょっと異なる表示になっていますが、「オン」に切り替えるとこのような表示になります。ここで「Log Analytycs への送信」をクリックし、送信先となる OMS ワークスペースを指定します。

LOG と METRIC のところは、LogicApps として連携する内容と頻度を指定するのですが、選択肢はこれ一つのみとなっていますので、どちらもチェックされている状態にしておきます。

これで保存を行うと、LogicApps の情報が OMS へと連携されます。

image

https://www.microsoft.com/en-us/cloud-platform/operations-management-suiteが OMS の入り口となっていますので、ここからサインインを行います。

が。

現時点での注意事項が OMS にはあります。それは Chrome では利用できないという謎仕様です。あきらめて Edge か IE を利用してください(FireFox は未確認ですが、いけるかも)。

image

サインインして OMS ポータルが開くと、上記のような感じで表示されると思います。ここは、導入しているソリューションなどによって表示されるものが変わってきますので、利用状況によっては多かったり少なかったりします。

上記の例でいくと、

image

このように Azure Activity Logs となっている箇所が、LogicApps から連携した情報を確認できる部分となります。これをクリックすることで詳細が表示されます。

image

このように、実行回数や、正常終了か異常終了かの結果、外部サービスとの連携実施数などといった数値がビジュアライズされた形で確認できるようになります。

OMS 自体は開発用の Free プランもあり、簡単に環境を用意できるものです。そして LogicApps は簡単に OMS へとログを連携できるようになっていますので、状況の監視を行うのもやりやすいのではないでしょうか。

GMail(G Suite) のメールをトリガに LogicFlow を起動する

$
0
0

今回は実際に利用している LogicFlow の紹介です。LogicFlow には GMail コネクタが用意されているので、GMail をトリガに色々できるのですが、これは G Suite で利用している場合も同様です。

以下がその LogicFlow になります。

image

今、自分の案件上、システムアラートが発生すると何かしらの通知が GMail にて通知されるようになっています。ただ、受信する件数が非常に多いのと、関係ないメールも山ほど送られてくるので正直メール通知だけでは、いくら振り分けルールを作っていたとしても気づけないケースがどうしてもあります。

そこで LogicFlow 側で、メールを受信した際に表題をチェックして、一定のルールに当てはまった場合には、スマホへとプッシュ通知を行わせ何かしらの障害が発生したのをすぐにわかるようにしてみました。

単純な仕組みですが、これを利用しているとメールを常に気にする必要がなくなるので、個人的に効果が高いと感じています(半面、スマホに通知が来るのをビクビクしていますがw)

このような感じで、ちょっとしたことを LogicFlow で自動化することが、LogicApps や Flow の目標としている一つなのではないかな、と思います。

LogicApps に追加された Batch コネクタを試してみる

$
0
0

先日、海外で開催されている Integrate2017 にて発表された、LogicApps でのバッチ処理用コネクタリリースアナウンス。突然の話だったのですが、本日現在すでに利用可能となっていますので、どのような挙動なのかを確認してみました。

Batch コネクタは、1 つのトリガと 1 つのアクションで構成されています。

画像に含まれている可能性があるもの:テキスト

今回のコネクタは、これまでのコネクタと変わり、LogicApps 内部で特殊な制御を行うためのものとなっています。Batch コネクタのアクションから、別の LogicFlow の Batch コネクタトリガを呼び出す、というものです。制約としては、それぞれの LogicFlow は同一リージョンになくてはならない、となります。

image

まずは呼び出される側の LogicFlow です。こちらでは Batch コネクタのトリガを利用します。この際に必要な設定が 2 つあります。

一つは BatchName で設定するバッチ処理名。ここで指定した名称は、呼び出し側で指定する必要があります。もう一つは MessageCount という設定で、これは「何度呼び出しが来たタイミングで、LogicFlow を実行するか」という設定になります。

上記の画面では MessageCount = 2 として設定していますので、2 度 Batch コネクタで呼び出されて初めて後続の処理が実行されることとなります。

image

呼び出し元側の LogicFlow では、このような形で Batch コネクタのアクションを利用します。

BatchName には、呼び出される側で設定しているバッチ処理名を設定し、Message Content には呼び出し側に受け渡すデータ(文字列)を設定します。現時点では必須となっていますので、何かしら設定が必要ですが、呼び出される側の LogicFlow でそれをどうこうする必要はありません。

image

実際の実行はこのような感じになります。呼び出し側で2度 Batch を呼び出すと・・・

image

上記のように、呼び出され側が 1 回実行されているのがわかります。これは MessageCount に 2 を設定しているので、2度呼び出されて初めて 1 度実行される、という挙動になっているのがわかるかと思います。

image

呼び出された際には、2回分の内容が配列となって受け渡されています。ただ現時点ではデザイナー上で Batch コネクタがうまくサポートできておらず、値選択のダイアログ上には表示されていません。Message Content の値など利用する場合は、直接記述にて利用することになりそうです。

これまでは直接 LogicFlow を呼び出すことはできても、呼び出しに対してまとめて処理を行う方法は提供されていませんでした。自前でその仕組みをつくるなどすれば可能でしたが、このコネクタによってさらに簡単に処理を構築できるようになったと思います。

Viewing all 208 articles
Browse latest View live