kkamegawa's weblog

Visual Studio,TFS,ALM,VSTS,DevOps関係のことについていろいろと書いていきます。Google Analyticsで解析を行っています

TFSUGのSlack参加ワークフローを支えるFlow

はじめに

tfsug.hatenablog.jp

要望があって、TFSUGのSlackを用意しました。無料版なので、一定期間で読めなくなりますが、よければ参加してください。

参加は無制限ではなく、申請方式にしています。Formsで氏名とメールアドレスをもらったら手動で招待しています。だいたい2営業日程度で招待処理しています。

使ったもの

  • Microsoft Forms
  • OneDrive for Business
  • Microsoft Flow(Office 365)
  • Slack

Excelを用意

f:id:kkamegawa:20190120152412p:plain

まず、格納するためのExcelをSharePoint Onlineに用意します。Logic Appsではなく、Flowを使っているのは頻度が高くないことと、Logic AppsだとOffice 365とAzureが同一Azure ADで提供されていないとアクセスできないためです。

f:id:kkamegawa:20190120152410p:plain

Excelではテーブルを作成しないと Flowで認識できないので、必須です。ヘッダ部分の列を選択して、テーブルとして作成します。

f:id:kkamegawa:20190120152448p:plain

テーブルが作成できました。これで準備完了です。

Forms

f:id:kkamegawa:20190120152416p:plain

こんな感じのFormを用意します。Excelと併用しているのはFormsの回答を閲覧できるのは同一Office 365組織内の人だけだからです。

Flow

こんな感じでFlowを作りました。

f:id:kkamegawa:20190120152419p:plain

アンケートが作成されたとき、アンケートに対して、一行Excelに作成します。

f:id:kkamegawa:20190120152423p:plain

最後に私と@changeworldさんに「作成された」ということをメールで通知します。この時のメールにはExcelのURLのみ書かれており、氏名やメールアドレスは含んでいません。やろうと思えばできますが、めんどくさいのと、メールにかかれると嫌だろうということもあります。

アンケート回答は1人で複数作れるからか、Apply to eachで回答ごとに作ることになるんですね。

最後にSlackの管理者用チャンネルに「リクエストがあった」というメッセージをポストします。これはどちらでもいいのですが、作業完了のチェックもメッセージにつけられるので、便利ですね。一応Excel内にもあるんですが。

終わりに

せっかくあるものなので、Flowでつくってみましたが、試行錯誤するものの、コーディングレスでこういうことができるので、結構便利です。

今はTwitterに流しているAzure DevOps関係の情報も自動的にSlackに流すようにしていますので、よければ参加してみてください。

今どきのAzure Stack on Azureの作り方

諸事情あって、Azure上にAzure Stackを作っています。検索すれば上のほうにでてくる世界のやまさのエントリーがあるのですが、私がこれをやってもDSCを構築するところで失敗しました。検索しても事例がいくつかあるものの、ASDKはサポート外なので、MSDN Forumで知ってる人の答えをもらうしかないようです。

blog.nnasaki.com

書かれていないものの、今までやってた方はAzure ADでやっていたのでしょうか?私はサブスクリプションの都合でADFSで構築しています(Azure ADだと構築時一時的に全体管理者が必要になるため)。

困ったなーと思っていたら、今どきはこんなARMテンプレートを用意してくれている人がいました。プロフィールを見ると、MSトルコのSeniorプレミアフィールドエンジニアの方のようです。

github.com

このテンプレートでデプロイするとManaged DiskをPremium SSDで構築してくれます。評価環境ならforkしてStandard SSDに書き換えたほうがいいでしょう。お金があるなら別ですが。

デプロイすると、デスクトップにPowerShellのアイコンが4つできているはずです。Install Azure ADかInstall ADFSかどちらかクリックするとデプロイが始まります。

1時間ちょっとすると、たぶん再起動がかかります。ここから先はCloudAdminアカウントで接続するのは同じですね。あとはひたすら待ちます。E16インスタンスでは4時間かかっても終わりませんでした。放置しているので、そのうちできるでしょう、たぶん。

github.com

もしくはこちらのスクリプトでASDK環境を構築できるそうです。ただし、ASDK 1811.2限定。こちらはAzure StackのGlobal Black Beltの方ですね。

ASDKを作った後の最大のやっちゃいけないことは、ホストOSでシャットダウン、再起動などを実施してしまうことです。ASDK内では複数のVMが起動していて、お互い依存しています。なので、最悪起動中のVMが不整合に陥り、起動しなくなります(というか、知らない人がやってしまいました)。

シャットダウンは必ず特権エンドポイントにつないでから、Stop-AzureStackコマンドレットを実行しましょう。というか、通常シャットダウンしないもののようですね…。

docs.microsoft.com

Azure PipelinesでAzureのREST APIを呼ぶ

これはAzure DevOpsアドベントカレンダー19日目の記事です。

qiita.com

というちぇんわさんの無茶ぶり読者からのご質問があったので、簡単にやってみました。

Azure Pipeline task to call Azure REST API

難しいことはなくて、Azure PipelinesにPowerShellタスクを追加して、普通にPowerShellでのREST API呼び出しているだけです。もちろんアクセストークンなんかはこんな生書きしてはいけません(笑)。variablesか、Libraryに入れておくのが望ましいです。

一つ悩ましいとすれば「どうやってAzureのトークン取るの?」ということですが、今回の場合、AzureのREST APIのリファレンスには"Try It"というボタンがついているので、そこから持ってきました。

例えばVirtual Machinesの一覧を取るAPI。

docs.microsoft.com

このトークンの権限はちょっと調べてないですが、同様のことはAzure-CLIでもできます。Try Itからサインアウトしてもキーは使えていました。

docs.microsoft.com

qiita.com

ただまぁどうしてもRESTじゃないといけないということはあると思いますが、簡単にやるならAzure PowerShellタスクやAzure-CLIタスク使うとこの辺の面倒全部見てくれる(Login-AzureRmAccountコマンドレット不要)ので、そっちのほうがいいんじゃないかなと思いました。

docs.microsoft.com

docs.microsoft.com

Azure DevOps 2018/9/10の更新

Azure DevOps Sprint 140のリリースノートAzure DevOpsローンチリリースノート(Sprint 140は別でした)の翻訳を行いました。オリジナルはこちらから読んでください。

docs.microsoft.com

Sprint 140を記念してではないですが、今回のリリースではVisual Studio Team ServicesからAzure DevOpsへブランド変更が行われました。基本的に今まで使っていた方々には大きな影響はメール通知のフォーマットやfromアドレスが変わったことくらいでしょうか。

Sprint 140は今回の展開は数日中に行われるとのことなので、このエントリーを読んでいる方皆さんのアカウントにはすでに展開されているはずです。

OSS向けの公開レポジトリおよび、CI/CDパイプラインの無償枠がずいぶん強化されましたね。とはいえ、Microsoft Hosted-agentのストレージが10GBしかないので、あまりに大きいレポジトリのビルド&テストは難しいかもしれません。たとえば.NET Core CLRのforkレポジトリはビルドできる思いますが、Core FXは難しいかもしれません。

用語も少し難しかったので、統一されるのはいいことです。

GitHubのAzure Pipelinesアプリがなぜできたのかと思ったんですが、個人アカウントでのOAuthの認証だと退職した時とか確かに困りますね。なるほどという感じです。

ではまた三週間後。

Translate to Japanese to Azure DevOps release note ...