92K Views
December 08, 23
スライド概要
Japan Power Platform Conference 2023 - メインイベントで登壇した際の資料です。
https://powerplatformconf.connpass.com/event/294851/
Power Platformで始めるALM構築 コルネ BI10 & BI11
本イベントのスポンサー様 Gold Sponsor Silver Sponsor Facilities & Staff Sponsor ダイキン工業㈱
2023
2023 Power Platformで始める ALM構築 • コルネ • Microsoft MVP for Business Applications
自己紹介 Name コルネ なにしてる人? 今はPower Platform関連のお仕事をさせていただいております。 アプリケーション開発やクラウド構築なんかも前まではやっていました。 そんなこともあり、最近はフュージョン開発に興味があるので面白そうな ことがあれば教えてください。 今回お話するALMもある種のフュージョン開発ですね! X(Twitter) @koruneko32767 Blog コルネの進捗や備忘録が記されたなにか YouTube Korune Ch. コルネ connpass Japan Power Platform Game Builders 業務改善検討会 2023 5
ALM ALMに関する基礎知識 2023
そもそもALMとは • ALMは、Application Lifecycle Managementの略称で、ガバナンス、開発、メンテナンスを含むアプリケーションが その役目を終えるまでのライフサイクル全体を管理するためのプロセスです。 • ALMを導入することでアプリのリリースを自動化することができ、開発者のアプリのリリースに掛かる時間の短縮化、 ワークフローの可視化が可能になります。 これによりその時々の要件に沿ったリリースが可能になり、また開発者の負荷も減らすことができます。 Plan & Track Develop Build & Test Deploy Operate Monitor & Learn 計画立案して 開発して テストして リリースして 運用して 課題分析して 2023 7
Power PlatformでのALM • Azure DevOpsのようなCI/CDプラットフォームを利用することで、ビルド、テスト、デプロイのパイプラインを自動化及び 管理することができるようになります。 • Power Appsのキャンバスアプリやモデル駆動型アプリ、Power Automateのクラウドフローやデスクトップフロー、 Copilot Studioのチャットボット、Dataverse、セキュリティロールなどのソリューションに含めることができるものがALMの 対象になります。 • 用途ごとに環境を独立させて開発を行うことで、運用中のアプリに影響を及ぼすことなく開発ができるようになります。 また各環境へのデプロイを自動化させることで開発者の負荷を減らすことができます。 これによりPower Platformでも開発速度やアプリの信頼性、ユーザエクスペリエンスを大幅に向上させることができます。 デプロイ 開発環境 2023 デプロイ テスト環境 本番環境 8
Power PlatformでALMを行うのに最低限必要なこと • Power PlatformでALMを行う場合は対象の環境にDataverseが必要です。 • Power PlatformでALMを行う場合は対象のアプリやフロー、データソースはソリューション化されている必要があります。 • アプリの開発を行うための開発環境と、アプリの実運用を行うための本番環境の2つの個別の環境が必要です。 環境はシステム統合テストが必要などの組織やプロジェクトの要件に合わせて適宜作成して管理してください。 公式では開発、テスト、および運用/展開のためにそれぞれ1つずつ、3つの環境を用意することが推奨されています。 • ソース管理システムを利用してCI/CDを構築する必要があります。 公式ではGitHubとAzure DevOpsの利用を紹介しているため、これらのいずれかを利用することを推奨します。 2023 9
ソリューション ソリューションに関する基礎知識 2023
ソリューションとは • アプリやフロー、テーブルやセキュリティ情報、環境変数や接続情報やコンポーネントなどを1つにまとめたパッケージです。 AI モデル • AI モデル アプリ • • • • 2023 キャンバス アプリ モデル駆動型アプリ ページ カード 自動化 • • • • • • Dataflow カスタム コネクタ クラウド フロー ダイアログ デスクトップ フロー プロセス 分析 • • • 舵手ボード データセット レポート テーブル • テーブル情報 セキュリティ • • And More セキュリティ ロール 列のセキュリティ プロファイル ・・・ 11
マネージドソリューションとアンマネージソリューション ソリューションはマネージドソリューションとアンマネージドソリューションのどちらかに分類されます。 アンマネージドソリューション • • • • ソリューションの変更の制限はありません 開発環境で利用されます マネージドまたはアンマネージドとしてエクスポートできます ソリューションの開発中の利用が推奨されます マネージドソリューション • • • • マネージドソリューションは直接編集できません 運用環境のような開発環境でない環境で利用されます エクスポートはできません ソリューションの開発が行われない際の利用が推奨されます マネージドソリューションは、アンマネージドソリューションをマネージドとしてエクスポートして利用することが推奨されています。 2023 12
ALMの実現 Power PlatformでALMを実施するには 2023
Power Platformで利用可能なALMの実装方法 PowerShell PowerShellで作成可能 他と比較してメリットが少ない 管理者向け 2023 Pipelines DevOps GitHub Actions 構築が比較的簡単 高度な自動展開が構築可能 高度な自動展開が構築可能 システム的にソリューションを管理可能 DevOps GitHub Actions 手動での展開 開発者向け 開発者向け マネージド環境が必要 管理が高度化する場合がある 管理が高度化する場合がある 市民開発者向け 開発者向け 14
PowerShellの利用 PowerShellを利用してのPower PlatformでのALMの実現 2023
PowerShellを利用してのPower PlatformでのALMの実現 PowerShellモジュールを使用することで、Power Platformの監視、管理、および品質チェックのタスクを自動化すること が可能です。 PowerShellを用いてのALMの実現はPower Platformの管理者が環境管理などと合わせて利用するケースが多いと思 われます。 詳しくは以下ドキュメントをご参照ください。 PowerShell を使用してソリューションを管理する 2023 16
Pipelinesの利用 Pipelinesを利用してのPower PlatformでのALMの実現 2023
Pipelinesを利用してのPower PlatformでのALMの実現 Power PlatformのPipelinesは、コードを記載することなくALMとCI/CDの機能を実現することができるので市民開発者 をはじめとするすべてのユーザにおすすめのPower PlatformでのALM実現方法です。 PipelinesはALMを普及させることを目的に用意されているだけあり、少ない労力と知識でALMを実現可能です。 ✓ 数分で簡単にALMを構成 ✓ 直感的な操作でソリューションを簡単に展開可能 ✓ プロ開発者はPipelinesを拡張することで、さらにALMを要件に合わせてカスタマイズすることが可能 Pipelinesを利用する場合は、展開先であるターゲット環境はマネージド環境である必要がある点に注意してください。 Power PlatformのPipelinesを利用することで市民開発者は少ない労力と知識でALMを実現することができます。 さらにプロ開発者と協力することで自身のチームのニーズに合わせたカスタマイズを行うことも可能です。 2023 18
Pipelinesの構築 Overview ◼ 前提条件 • • • • 最低限必要な環境として、開発環境、本番環境、Pipelines管理用環境の3つの環境が必要となる パイプラインで利用されるすべての環境にはDataverseが必要となる パイプラインで利用されるすべての環境は同じリージョンである必要がある(現時点では) パイプラインでの展開先となる環境(ターゲット環境)はマネージド環境である必要がある ◼ 構築手順 1. Power Platform Pipelinesのインストール 2. 展開パイプラインの構成 ◼ 実行手順 1. パイプラインの実行 ◼ 実行履歴 1. 実行履歴の確認 2023 19
Pipelinesの構築 前提条件 -環境の用意1. 最低限の構成として、開発環境、本番環境、Pipelines管理用環境の3つの環境を用意します。 推奨されている構成例は、開発環境、検証環境、本番環境、Pipeline管理用の4つの環境が推奨されています。 2. 本番環境をマネージド環境として設定します。 ➢ 開発環境: ➢ 本番環境(マネージド環境): ➢ Pipelines管理用環境: 2023 Dev Prod Host 20
Pipelinesの構築 構築手順 -Power Platform Pipelinesのインストール1. Power Platform管理センターにアクセスして、Pipelines管理用環境を選択します。 2. 「リソース > Dynamics 365 アプリ」を選択します。 3. 「アプリのインストール」を選択して「Power Platform Pipelines」をインストールします。 4. 一覧で「Power Platform Pipelines」が「インストール済み」になるまで少し待ちます。 2023 21
Pipelinesの構築 構築手順 –展開パイプラインの構成1. Power Appsにアクセスして、 Pipelines管理用環境(先ほどアプリをインストールした環境)を選択します。 2. アプリに「展開パイプラインの構成」というモデル駆動型アプリが追加されているので再生します。 2023 22
Pipelinesの構築 構築手順 –展開パイプラインの構成3. 左のメニューより「環境」を選択します。 4. 「新規」を選択して開発環境と本番環境をそれぞれ作成します。 項目名 2023 入力内容 名前 パイプラインで利用される分かりやすい環境の名前を入力 所有者 所有者を選択(既定ではログイン中のユーザが選択) 環境の種類 開発環境もしくはターゲット環境を選択 • 開発環境: ソリューションの開発が行われる環 • ターゲット環境: ソリューションの展開先となる環境 環境 ID 紐づける環境のIDを選択(管理センターより確認) 検証の状態 システムにより設定 エラーメッセージ システムにより設定 説明 環境のわかりやすい説明を入力(省略可能) 23
Pipelinesの構築 構築手順 –展開パイプラインの構成5. 左のメニューより「パイプライン」を選択します。 6. 「新規」を選択してパイプラインの作成を行います。 Pipelinesでソリューションを展開時に Copilotがソリューションの説明を作成してくれるようになります。 * 現在米国環境でのみ有効 2023 24
Pipelinesの構築 構築手順 –展開パイプラインの構成7. 少し下にスクロールしてパイプラインに開発環境を紐づけます。 作成済みの環境を選択する場合は「既存の展開環境の追加」を選択します。 8. 少し下にスクロールして「展開ステージの新規登録」を選択してパイプラインにより展開される環境を紐づけます。 * “ステージ”と聴くとステージング環境を想起する方もいるかもしれませんが、ここで設定するのはパイプラインによって展開される環境です。 ターゲット環境をすべて登録してください。 2023 25
Pipelinesの構築 構築手順 –展開パイプラインの構成9. パイプラインにより展開される環境を設定します。 項目名 名前 所有者 説明 先ほどパイプライン作成時に入力した内容(既定で設定済み) 名前 展開されるステージの名前 (例: Deploy as Prod) 所有者 所有者を選択(既定ではログイン中のユーザが選択) 説明 ステージのわかりやすい説明を入力(省略可能) 展開パイプライン このステージが属するパイプライン 前の展開ステージ このステージで展開される前に展開されいる必要があるステージ(省略可能) ターゲット展開環境 ID このステージにより展開される環境(検索して選択可能) 説明 環境のわかりやすい説明を入力(省略可能) エクスポート前の手順が必要です 展開前のステップが必要 2023 入力内容 パイプラインの拡張によって作成された、デプロイ前ステップを実行する外部プロセスがあ る場合は「はい」を選択 委任された展開である ソリューションの展開を委任したい場合は「はい」を選択 委任された展開の種類 委任を行う場合は、「ステージの所有者」、「サービスプリンシパル」のいずれかを選択 26
Pipelinesの構築 実行手順 –パイプラインの実行1. 開発環境にてソリューションの作成を行います。 2023 27
Pipelinesの構築 実行手順 –パイプラインの実行2. 左のメニューより「パイプライン」を選択します。 画面が表示されると先ほど作成したパイプラインと展開ステージが表示されますので、「ここに展開」を選択します。 2023 28
Pipelinesの構築 実行手順 –パイプラインの実行3. 「今すぐ」展開するか「後で」展開するか選択します。 「後で」を選択するとパイプラインが実行される時間をスケジュールすることができます。 2023 29
Pipelinesの構築 実行手順 –パイプラインの実行4. 接続参照や環境変数を利用している場合はここで設定を入力します。 環境変数は通常のソリューションのエクスポート/インポート時と同様に既定の値を事前に削除しておかないと、ここで設 定できないので注意してください。 (追記)事前に環境変数の値を削除していなくとも、環境変数の値の設定が可能になりました。 (参考)Power Platformのソリューションのインポート時に環境変数が常に表示され、編集できるようになりました 2023 30
Pipelinesの構築 実行手順 –パイプラインの実行5. 展開設定に問題がなければ「展開」を選択します。 「AI展開メモ」が有効だとここで Copilotがソリューションの説明を作成してくれるようになります。 * 現在米国環境でのみ有効 2023 31
Pipelinesの構築 実行手順 –パイプラインの実行6. しばらく待って展開が完了すると、展開先の環境に対象のソリューションがマネージドソリューションとして展開されます。 2023 32
Pipelinesの構築 実行履歴 –実行履歴の確認1. パイプラインの実行履歴、もしくは「展開パイプラインの構成」アプリより実行履歴を確認することが可能です。 2023 33
Pipelinesを利用する際の注意点 • 最低限必要な環境として、開発環境、本番環境、Pipelines管理用環境の3つの環境が必要となります。 • パイプラインで利用されるすべての環境にはDataverseが必要となります。 • パイプラインで利用されるすべての環境は同じリージョンである必要があります。(現時点では) • パイプラインでの展開先となる環境(ターゲット環境)はマネージド環境である必要があります。 • 異なるテナントに対してのパイプラインは構築できません。 (異なるテナントへの展開を行いたい場合はAzure DevOpsやGitHubを使用する) • パイプラインを用いて以前のバージョンにロールバックすることはできません。 以前のバージョンへのロールバックを行いたい場合は、パイプラインの「ソリューション アーティファクト」よりアーティファクトをダ ウンロードし、”solution.xml”ファイル内のソリューションバージョンをインクリメントしてから、それをターゲット環境に手動で インポートする必要があります。 • アンマネージドソリューションは展開できません。すべてマネージドソリューションとして展開されます。 • 一度に複数のソリューションは展開できません。 (現時点では) • パイプラインでソリューションのエクスポート前にアンマネージドソリューションを公開することはできません。 (現時点では) パイプラインを実行する前に事前にソリューションを公開しておく必要があります。 2023 34
DevOpsの利用 Azure DevOpsを利用してのPower PlatformでのALMの実現 2023
Azure DevOpsを利用してのPower PlatformでのALMの実現 Azure DevOpsのMicrosoft Power Platform Build Tools for Azure DevOpsを導入することで、Azure DevOpsビルドタスクにて、Microsoft Power Platformで構築されたアプリのALMを管理することが可能になります。 Azure DevOpsを利用してPower PlatformのALMを実現する場合、タスク定義をYAML形式で自身で定義して構成 する必要があるため、開発者向けのPower PlatformのALMの実現方法となっています。 Azure DevOpsのビルドタスクを利用するメリットとしては以下が挙げられます。 ✓ Pipelinesでは実現できなかったより柔軟で複雑なALMを構成することが可能 ✓ 異なるテナントに対してデプロイを実現可能 ✓ データの移行が可能 ✓ 環境の管理が可能 DevOpsのビルドタスクを用いてPower PlatformのALMを実現することで柔軟で複雑なALMを構成することができます。 ただし、Pipelinesのように直感的な操作で構成を作成することができないので開発者向けのやり方です。 2023 36
Azure DevOpsビルドタスクの構築 Overview ◼ 前提条件 • ALMを実現したいすべての環境にはDataverseが必要となる ◼ 構築手順 1. 2. 3. 4. 5. Microsoft Power Platform Build Toolsのインストール サービスプリンシパルを使用してサービス接続構成を作成 アプリケーションユーザの作成 サービス接続の設定 パイプラインの構築 ◼ 実行手順 1. パイプラインの実行 ◼ 実行履歴 1. 実行履歴の確認 2023 37
Azure DevOpsビルドタスクの構築 構築手順 -Microsoft Power Platform Build Toolsのインストール1. Azure MarketplaceよりPower Platform Build ToolsをAzure DevOpsにインストールします。 2023 38
Azure DevOpsビルドタスクの構築 構築手順 -サービスプリンシパルを使用してサービス接続構成を作成Power Platform Build ToolsからPower Platform環境に対して接続を行うには現在2種類の方法があります。 ➢ サービスプリンシパルとクライアント シークレット ➢ ユーザー名/パスワード ユーザー名/パスワードでは多要素認証はサポートされておらず、またサービスプリンシパルを用いた接続が推奨されているた め、ここではサービスプリンシパルを用いた接続を行います。 1. Microsoft Power Platform CLIを自身のPCインストールします。 2. 認証プロファイルを作成します。 PS > pac auth create 3. サービスプリンシパルを使用してサービス接続の作成を行います。 PS > pac admin create-service-principal --environment <environment id> 4. アプリケーション IDやサービス プリンシパル ID、クライアント シークレットなどが表示されますので控えておきます。 5. これを対象の環境数分実行します。 2023 39
Azure DevOpsビルドタスクの構築 構築手順 -アプリケーションユーザの作成1. 認証プロファイルを作成します。 PS > pac admin assign-user ` --user "<user id>" ` --role "System administrator" ` --environment <environment id> ` --application-user 2. 作成されたロールなどの情報はMicrosoft Entraのエンタープライズアプリケーションから確認することが可能です。 3. これを対象の環境数分実行します。 2023 40
Azure DevOpsビルドタスクの構築 構築手順 -サービス接続の設定1. Power Platform Build ToolsをインストールしたAzure DevOpsの組織の「Project Settings」を開きます。 2. 「Pipelines > Service connections」を選択します。 3. 右上にある「New service connection」を選択し、Power Platformを選択して「Next」を選択します。 4. 対象環境の接続設定をそれぞれ入力して「Save」を選択します。 項目名 2023 入力内容 Server URL Power Platform管理センターより確認できる「環境 URL」 (例: https://XXX.crm.dynamics.com/) Tenant Id 先ほど作成した「テナント ID」 Application Id 先ほど作成した「アプリケーション ID」 Client secret of Application Id 先ほど作成した「クライアント シークレット」 Service connection name サービス接続名 Description (optional) 接続の説明 41
Azure DevOpsビルドタスクの構築 構築手順 -パイプラインの構築1. Power Platform Build ToolsをインストールしたAzure DevOpsの「Repos」より「New repository」を選択して、 新規リポジトリーを作成します。 2. 「Pipelines」より、「New pipeline」を選択します。 3. 「Azure Repos Git」を選択して、先ほど作成したリポジトリーを選択します。 4. 「Starter pipeline」を選択して、「Save and run」を選択します。 2023 42
Azure DevOpsビルドタスクの構築 構築手順 -パイプラインの構築5. 成功すると以下のような画面が表示されます。 失敗した方はおそらく以下のようなメッセージが表示されたかと思います。 [error]No hosted parallelism has been purchased or granted. To request a free parallelism grant, please fill out the following form https://aka.ms /azpipelines-parallelism-request これはAzure Pipelines の無料付与の変更に起因しています。 Azure Pipelinesの無料枠を利用したい場合は要求の送信より利用申請を行い承認を受ける必要があります。 承認までにはおおよそ2~3営業日掛かります。 2023 43
Azure DevOpsビルドタスクの構築 構築手順 -パイプラインの構築6. 「Project Settings」を開きます。 7. 「Repositories」を選択して先ほど作成したリポジトリー名を選択します。 8. 「Security」を選択します。 9. 「<project name> Build Service (<Org name>)」の「Contribute」を「Allow」に設定します。 これにより、パイプラインからリポジトリーにpushができるようになります。 2023 44
Azure DevOpsビルドタスクの構築 構築手順 -パイプラインの構築今回はサンプルとして以下のような構成でパイプラインを構成します。 開発環境 1. ソリューションのエクスポート アンマネージド ソリューション マネージド 運用環境 マネージド ソリューション アンマネージド 2. ソリューションのインポート 2023 45
Azure DevOpsビルドタスクの構築 構築手順 -パイプラインの構築◼ ソリューションのエクスポート 1. Power Platform Tool Installer ➢ パイプライン内でPower Platform Build Toolsを実行するためのツールをインストールします。 2. Power Platform WhoAmI for Dev ➢ Power Platformの開発環境への接続が問題なく行えるかを確認します。 3. Power Platform Publish Customizations ➢ Power Platform内のすべてのカスタマイズを公開します。 4. Power Platform Export Unmanaged Solution ➢ アンマネージドソリューションとしてPower Platformの開発環境からエクスポートします。 5. Power Platform Unpack Unmanaged Solution ➢ アンマネージドソリューションをXMLファイルに展開します。 6. Power Platform Export Managed Solution ➢ マネージドソリューションとしてPower Platformの開発環境からエクスポートします。 7. Power Platform Unpack Managed Solution ➢ マネージドソリューションをXMLファイルに展開します。 8. Commit Solution to repo ➢ XMLファイルに分解したファイルをリポジトリーにpushします。 2023 46
Azure DevOpsビルドタスクの構築 構築手順 -パイプラインの構築◼ ソリューションのエクスポート パイプラインが実行される条件を設定します。これはリポジトリにpush時にパイプラインが、無限ループしないようにするために必要です。 1. パイプラインの右上の三点リーダーより「Triggers」を選択します。 2. 「Override the YAML continuous integration trigger from here」にチェックを入れて、XML形式に展開されたソ リューションを格納するフォルダを対象外にします。 2023 47
Azure DevOpsビルドタスクの構築 構築手順 -パイプラインの構築◼ ソリューションのエクスポート ジョブ内で実施するタスクを定義していきます。 `steps:`以下に設定を行います。 タスクは自身で定義することもできますし、画面右にあるアシスタントからタスクを選択の上パラメータを入力することで構築することが 可能です。 2023 48
Azure DevOpsビルドタスクの構築 構築手順 -パイプラインの構築◼ ソリューションのエクスポート ◆ Power Platform Tool Installer パイプライン内でPower Platform Build Toolsを実行するためのツールをインストールします。 このタスクはPower Platform Build Toolsを利用するパイプライン内で最初に一度実行する必要があります。 オプションで特定のバージョンを指定することも可能です。 YAML - task: PowerPlatformToolInstaller@2 displayName: 'Power Platform Tool Installer' inputs: DefaultVersion: true 2023 49
Azure DevOpsビルドタスクの構築 構築手順 -パイプラインの構築◼ ソリューションのエクスポート ◆ Power Platform WhoAmI for Dev Power Platformの開発環境(Dev)への接続が問題なく行えるかを確認します。 このタスクをパイプラインで早期に実施しておくことにより、処理が実施される前に早期に接続不良を確認できるのでエラーの早期検知に便利な機 能です。 YAML - task: PowerPlatformWhoAmi@2 displayName: 'Power Platform WhoAmI for Dev' inputs: authenticationType: 'PowerPlatformSPN' PowerPlatformSPN: 'Dev' 2023 50
Azure DevOpsビルドタスクの構築 構築手順 -パイプラインの構築◼ ソリューションのエクスポート ◆ Power Platform Publish Customizations Power Platform内の指定した環境内のすべてのカスタマイズを公開します。 パイプラインを実施前に事前にソリューションを公開済みであればこのタスクは不要です。 YAML - task: PowerPlatformPublishCustomizations@2 displayName: 'Power Platform Publish Customizations' inputs: authenticationType: 'PowerPlatformSPN' PowerPlatformSPN: 'Dev' AsyncOperation: true MaxAsyncWaitTime: '60' 2023 51
Azure DevOpsビルドタスクの構築 構築手順 -パイプラインの構築◼ ソリューションのエクスポート ◆ Power Platform Export Unmanaged Solution アンマネージドソリューションとしてPower Platformの開発環境からエクスポートします。必要に応じてオプションをカスタマイズしてください。 `SolutionName`という変数を利用しているので、変数の定義が必要です。 YAML - task: PowerPlatformExportSolution@2 displayName: 'Power Platform Export Unmanaged Solution' inputs: authenticationType: 'PowerPlatformSPN' PowerPlatformSPN: 'Dev' SolutionName: '$(SolutionName)' SolutionOutputFile: '$(Build.ArtifactStagingDirectory)/$(SolutionName).zip' AsyncOperation: true MaxAsyncWaitTime: '60' Managed: false ExportCustomizationSettings: true ExportExternalApplicationSettings: true ExportGeneralSettings: true ExportAutoNumberingSettings: true ExportRelationshipRoles: true 2023 52
Azure DevOpsビルドタスクの構築 構築手順 -パイプラインの構築◼ ソリューションのエクスポート 変数は右上にある”Variables”から作成を行うことができます。 必要に応じて変数はシークレット値として設定することも可能です。 ここで作成した変数はパイプライン内で`$(<Variable Name>)`で参照することが可能です。 今回は`SolutionName`という変数が必要なので自身の環境に合わせて作成してください。 * 設定する値は表示名ではなく名前です 2023 53
Azure DevOpsビルドタスクの構築 構築手順 -パイプラインの構築◼ ソリューションのエクスポート ◆ Power Platform Unpack Unmanaged Solution アンマネージドソリューションをXMLファイルに展開します。 これによりソリューションファイルをソース管理システムで管理できるようになります。 対象のソリューションファイルと指定した`SolutionType`が異なっている場合、エラーとなるため注意してください。 YAML - task: PowerPlatformUnpackSolution@2 displayName: 'Power Platform Unpack Unmanaged Solution' inputs: SolutionInputFile: '$(Build.ArtifactStagingDirectory)/$(SolutionName).zip' SolutionTargetFolder: '$(Build.SourcesDirectory)/$(SolutionName)/Unmanaged' SolutionType: Unmanaged 2023 54
Azure DevOpsビルドタスクの構築 構築手順 -パイプラインの構築◼ ソリューションのエクスポート ◆ Power Platform Export Managed Solution マネージドソリューションとしてPower Platformの開発環境からエクスポートします。必要に応じてオプションをカスタマイズしてください。 YAML - task: PowerPlatformExportSolution@2 displayName: 'Power Platform Export Managed Solution' inputs: authenticationType: 'PowerPlatformSPN' PowerPlatformSPN: 'Dev' SolutionName: '$(SolutionName)' SolutionOutputFile: '$(Build.ArtifactStagingDirectory)/$(SolutionName)_Managed.zip' AsyncOperation: true MaxAsyncWaitTime: '60' Managed: true ExportCustomizationSettings: true ExportExternalApplicationSettings: true ExportGeneralSettings: true ExportAutoNumberingSettings: true ExportRelationshipRoles: true 2023 55
Azure DevOpsビルドタスクの構築 構築手順 -パイプラインの構築◼ ソリューションのエクスポート ◆ Power Platform Unpack Managed Solution マネージドソリューションをXMLファイルに展開します。 これによりソリューションファイルをソース管理システムで管理できるようになります。 対象のソリューションファイルと指定した`SolutionType`が異なっている場合、エラーとなるため注意してください。 YAML - task: PowerPlatformUnpackSolution@2 displayName: 'Power Platform Unpack Managed Solution' inputs: SolutionInputFile: '$(Build.ArtifactStagingDirectory)/$(SolutionName)_Managed.zip' SolutionTargetFolder: '$(Build.SourcesDirectory)/$(SolutionName)/Managed' SolutionType: Managed 2023 56
Azure DevOpsビルドタスクの構築 構築手順 -パイプラインの構築◼ ソリューションのエクスポート ◆ Commit Solution to repo XMLファイルに分解したファイルをリポジトリーにpushします。 リポジトリーにpushするための事前定義済みのタスクはないため、スクリプトを独自定義して実行させています。 `GitUserEmail`及び`GitUserName`という変数を定義しているので自身の環境に合わせて作成してください。 YAML - task: CmdLine@2 displayName: 'Commit Solution to repo' inputs: script: | echo commit all changes git config user.email "$(GitUserEmail)" git config user.name "$(GitUserName)" git init git checkout -b main git pull origin main --rebase git add . git commit -m "solution init" echo push code to new repo git -c http.extraheader="AUTHORIZATION: bearer $(System.AccessToken)" push origin main 2023 57
Azure DevOpsビルドタスクの構築 構築手順 -パイプラインの構築◼ ソリューションのエクスポート パイプラインの構築が完了したら、右上の「Save」を選択してリポジトリーにpushを行うことでPipelinesの実行を行わせま す。 パイプラインの実行履歴は「Pipelines > Pipelines」より確認することが可能です。 より詳細な実行ログが欲しい場合は変数の定義にて`System.Debug`を`true`に設定します。 2023 58
Azure DevOpsビルドタスクの構築 構築手順 -パイプラインの構築◼ ソリューションのエクスポート パイプラインが無事完了している場合は、対象のリポジトリに”<SolutionName>/Managed”及 び”<SolutionName>/Unmanaged”というフォルダの配下に、XML形式に展開されたファイルが展開されており、また、 これをトリガーにしてPipelinesが無限にトリガーしていることがないかと思います。 2023 59
Azure DevOpsビルドタスクの構築 構築手順 -パイプラインの構築◼ ソリューションのインポート 1. Power Platform Tool Installer ➢ パイプライン内でPower Platform Build Toolsを実行するためのツールをインストールします。 2. Power Platform WhoAmI for Dev ➢ Power Platformの開発環境への接続が問題なく行えるかを確認します。 3. Power Platform WhoAmI for Prod ➢ Power Platformの運用環境への接続が問題なく行えるかを確認します。 4. Power Platform pack Solution ➢ マネージドソリューションを.zipファイルに圧縮します。 5. Power Platform Checker ➢ ソリューションファイルの静的分析を実行します。 6. Power Platform Import Solution ➢ マネージドソリューションとしてPower Platformの運用環境にインポートします。 2023 60
Azure DevOpsビルドタスクの構築 構築手順 -パイプラインの構築◼ ソリューションのインポート パイプラインを新規作成します。 次に作成するパイプラインはソリューションファイルがリポジトリーにpushされたときをトリガーに動作するように設定します。 2023 61
Azure DevOpsビルドタスクの構築 構築手順 -パイプラインの構築◼ ソリューションのインポート ◆ Power Platform Tool Installer パイプライン内でPower Platform Build Toolsを実行するためのツールをインストールします。 このタスクはPower Platform Build Toolsを利用するパイプライン内で最初に一度実行する必要があります。 オプションで特定のバージョンを指定することも可能です。 YAML - task: PowerPlatformToolInstaller@2 displayName: 'Power Platform Tool Installer' inputs: DefaultVersion: true 2023 62
Azure DevOpsビルドタスクの構築 構築手順 -パイプラインの構築◼ ソリューションのインポート ◆ Power Platform WhoAmI for Dev Power Platformの開発環境(Dev)への接続が問題なく行えるかを確認します。 このタスクをパイプラインで早期に実施しておくことにより、処理が実施される前に早期に接続不良を確認できるのでエラーの早期検知に便利な機 能です。 YAML - task: PowerPlatformWhoAmi@2 displayName: 'Power Platform WhoAmI for Dev' inputs: authenticationType: 'PowerPlatformSPN' PowerPlatformSPN: 'Dev' 2023 63
Azure DevOpsビルドタスクの構築 構築手順 -パイプラインの構築◼ ソリューションのインポート ◆ Power Platform WhoAmI for Prod Power Platformの運用環境(Prod)への接続が問題なく行えるかを確認します。 このタスクをパイプラインで早期に実施しておくことにより、処理が実施される前に早期に接続不良を確認できるのでエラーの早期検知に便利な機 能です。 YAML - task: PowerPlatformWhoAmi@2 displayName: 'Power Platform WhoAmI for Prod' inputs: authenticationType: 'PowerPlatformSPN' PowerPlatformSPN: ’Prod' 2023 64
Azure DevOpsビルドタスクの構築 構築手順 -パイプラインの構築◼ ソリューションのインポート ◆ Power Platform pack Solution マネージドソリューションを.zipファイルに圧縮します。 リポジトリー内にあるマネージドファイルを対象に実行します YAML - task: PowerPlatformPackSolution@2 displayName: 'Power Platform pack Solution' inputs: SolutionSourceFolder: '$(Build.SourcesDirectory)/$(SolutionName)/Managed' SolutionOutputFile: '$(Build.ArtifactStagingDirectory)/$(SolutionName).zip' SolutionType: Managed 2023 65
Azure DevOpsビルドタスクの構築 構築手順 -パイプラインの構築◼ ソリューションのインポート ◆ Power Platform Checker ソリューションファイルの静的分析を実行します。 ソリューションのチェックに現在利用できるのは、Power Appsから実行できるソリューションチェッカーとアプリをAppSourceに公開する前に、認証 を実施する目的で使用される拡張ルールセットの2種類があります。 YAML - task: PowerPlatformChecker@2 displayName: 'Power Platform Checker' inputs: authenticationType: 'PowerPlatformSPN' PowerPlatformSPN: 'Dev' FilesToAnalyze: '$(Build.ArtifactStagingDirectory)/$(SolutionName).zip' RuleSet: '0ad12346-e108-40b8-a956-9a8f95ea18c9' SaveResults: true 2023 66
Azure DevOpsビルドタスクの構築 構築手順 -パイプラインの構築◼ ソリューションのインポート ◆ Power Platform Import Solution マネージドソリューションとしてPower Platformの運用環境にインポートします。 インポート時に接続参照や環境変数の値を設定したいので、”Settings/DeploymentSettings-Prod.json”を用意して更新しています。 YAML - task: PowerPlatformImportSolution@2 displayName: 'Power Platform Import Solution' inputs: authenticationType: 'PowerPlatformSPN' PowerPlatformSPN: 'Prod' SolutionInputFile: '$(Build.ArtifactStagingDirectory)/$(SolutionName).zip' ConvertToManaged: true SkipProductUpdateDependencies: true OverwriteUnmanagedCustomizations: true AsyncOperation: true MaxAsyncWaitTime: '60' PublishWorkflows: true UseDeploymentSettingsFile: true DeploymentSettingsFile: 'Settings/DeploymentSettings-Prod.json' 2023 67
Azure DevOpsビルドタスクの構築 構築手順 -パイプラインの構築◼ 接続参照及び環境変数の事前設定 Azure DevOpsによりソリューションの展開を完全に自動化させたい場合、接続参照及び環境変数の設定値を事前に定義してお く必要があります。 1. 接続参照及び環境変数の定義ファイルの出力を行います。 PS > pac solution create-settings ` --solution-zip <solution_zip_file_path> ` --settings-file <settings_file_name>.json これにより生成されたJSONファイルでは値が含まれていないので値を更新します。 接続参照の`ConnectionId`は次の手順で取得します。 2. Power Appsにアクセスして、ソリューションの展開先の環境を開きます。 対象の環境に利用する接続参照と同様の接続名が存在しない場合は、事前に作成を行っておきます。 3. “Connection References”というDataverseテーブルがありますので、そのテーブルの中にあるデータをもとに `ConnectionId`の取得し、1で取得したJSONファイルの値を更新します。 作成したJSONファイルは対象のリポジトリーにpushして、Pipelinesから参照できるようにします。 2023 68
Azure DevOpsを利用する際の注意点 • パイプラインで利用されるすべての環境にはDataverseが必要となります。 • `PowerPlatformImportSolution@2`タスクでソリューションインポート時に`ConvertToManaged`オプションを 利用してアンマネージドソリューションをマネージドソリューションに変換してインポートすることができる(はず)ですが、現在正 常に動作していないと思われます。(私が勘違いしてるだけかも…) "ConvertToManaged" does not seem to be working properly. #659 • 接続参照はソリューションを展開される環境内で事前に作成しておく必要があります。 • 先人の知恵がほぼない。 2023 69
GitHub Actionsの利用 GitHub Actionsを利用してのPower PlatformでのALMの実現 2023
GitHub Actionsを利用してのPower PlatformでのALMの実現 GitHub ActionsのPower Platform Actionsを導入することで、GitHub Actionsのワークフロー上にて、Microsoft Power Platformで構築されたアプリのALMを管理することが可能になります。 GitHub Actionsを利用してPower PlatformのALMを実現する場合、ワークフロー定義をYAML形式で自身で定義し て構成する必要があるため、開発者向けのPower PlatformのALMの実現方法となっています。 GitHub Actionsのビルドタスクを利用するメリットとしては以下が挙げられます。 ✓ Pipelinesでは実現できなかったより柔軟で複雑なALMを構成することが可能 ✓ 異なるテナントに対してデプロイを実現可能 ✓ データの移行が可能 ✓ 環境の管理が可能 GitHub Actionsのワークフローを用いてPower PlatformのALMを実現することで柔軟で複雑なALMを構成すること ができます。 ただし、Pipelinesのように直感的な操作で構成を作成することができないので開発者向けのやり方です。 2023 71
GitHub Actionsビルドタスクの構築 Overview ◼ 前提条件 • ALMを実現したいすべての環境にはDataverseが必要となる ◼ 構築手順 1. サービスプリンシパルアカウントの作成 2. アプリケーションユーザの作成 3. GitHub Actionsの構築 ◼ 実行手順 1. ワークフローの実行 ◼ 実行履歴 1. 実行履歴の確認 2023 72
GitHub Actionsの構築 構築手順 -サービスプリンシパルアカウントの作成GitHub ActionsからPower Platform環境に対して接続を行うには現在2種類の方法があります。 ➢ サービスプリンシパルとクライアント シークレット ➢ ユーザー名/パスワード ユーザー名/パスワードでは多要素認証はサポートされておらず、またサービスプリンシパルを用いた接続が推奨されているた め、ここではサービスプリンシパルを用いた接続を行います。 Azure DevOpsで作成した方法とやり方が異なるので注意してください。 2023 73
GitHub Actionsの構築 構築手順 -サービスプリンシパルアカウントの作成1. Microsoft Entraのアプリの登録に管理者権限を持つアカウントでサインインします。 2. 「新規登録」を選択してアプリケーションの登録を行います。 2023 74
GitHub Actionsの構築 構築手順 -サービスプリンシパルアカウントの作成3. 概要に表示されている「アプリケーション (クライアント) ID」と「オブジェクト ID」を控えておきます。 4. 「マニフェスト」を開き、`allowPublicClient`プロパティをtrueに設定して保存を選択します。 5. 「APIのアクセス許可」を開き、「アクセス許可の追加」を選択します。 6. 「Microsoft API」より「Dynamics CRM」を選択して、「委任されたアクセス許可」を選択のうえ 「user_impersonation」を選択してアクセス許可の追加を行います。 7. 同様に「所属する組織で使用している API」より「PowerApps-Advisor」を選択して、「委任されたアクセス許可」を 選択のうえ「Analysis.All」を選択してアクセス許可の追加を行います。 2023 75
GitHub Actionsの構築 構築手順 -サービスプリンシパルアカウントの作成8. 「証明書とシークレット」を表示し、「新しいクライアント シークレット」を選択します。 9. 説明と期限を入力してクライアントシークレットの作成を行います。 10.ここで表示されたクライアントシークレットは一度画面を離れると再び確認することができないので、ここで控えておきます。 2023 76
GitHub Actionsの構築 構築手順 –アプリケーションユーザの作成GitHub Actionsのワークフローを用いてソリューションを環境に展開するには、「アプリケーションユーザ」に環境へのアクセス 権を設定する必要があります。 「アプリケーションユーザ」とは先ほど作成したアプリケーションの登録を使用して認証されたライセンスを付与されていないユー ザを指します。 1. Power Platform 管理センターに管理者権限を持つアカウントでサインインします。 2. ALMの対象となる環境を選択し、「設定 > ユーザーとアクセス許可 > アプリケーション ユーザー」を選択します。 3. 「新規アプリユーザー」を選択します。 4. 「アプリ」で先ほど登録したアプリを選択し、「部署」で任意の部署を選択します。「セキュリティ ロール」には”System Administrator”を選択して作成を行います。 2023 77
GitHub Actionsの構築 構築手順 -GitHub Actionsの構築1. GitHubにサインインします。 2. リポジトリーの新規作成を行います。 2023 78
GitHub Actionsの構築 構築手順 -GitHub Actionsの構築3. 「Settings」より「Secrets and variables > Actions」を選択します。 4. 「New repository secret」より”PowerPlatformSPN”という名前のを付けて、Microsoft Entraに登録したアプリ のクライアントシークレット値を入力して、シークレット値の作成を行います。 このように機密情報はシークレット値に記載するようにし、リポジトリファイル内にべた書きしないように気を付けましょう。 2023 79
GitHub Actionsの構築 構築手順 -GitHub Actionsの構築5. 「Actions」より「Simple workflow」の「Configure」を選択すると、基本となるワークフローを追加できます。 (「set up workflow yourself」から空のワークフローを利用するのでも大丈夫です。) 2023 80
GitHub Actionsの構築 構築手順 -GitHub Actionsの構築6. Microsoftがpowerplatform-actions-labで公開しているsample-workflows/export-and-branchsolution-with-spn-auth.ymlを利用して開発環境からソリューションのエクスポートを行います。 こちらに記載されているYAMLを先ほど作成したワークフローにコピペし、名前を”export-and-branch-solutionwith-spn-auth.yml”に変更します。 7. l:28-l:30にあるenv内にある環境変数を自身の環境に合わせて更新します。 ➢ ENVIRONMENT_URL: ソリューションをエクスポートする環境の環境URL(例: https://XXX.crm.dynamics.com/) ➢ CLIENT_ID: Microsoft Entraに登録したアプリの「アプリケーション (クライアント) ID」 ➢ TENANT_ID:ソリューションをエクスポートする環境があるテナントのテナントID 8. 変更が完了したらCommitを行います。 2023 81
GitHub Actionsの構築 構築手順 -GitHub Actionsの構築9. 「Actions」より、「export-and-branch-solution」を選択します。 10.「Run workflow」よりワークフローを動かします。ソリューション名は自身の環境に合わせて変更します。 デフォルト値を更新したい場合は、l:12の`default`値を変更しておきます。 2023 82
GitHub Actionsの構築 構築手順 -GitHub Actionsの構築11.ワークフローの実行が完了すると「<SolutionName>-<yyyyMMdd>-<hhmm>」形式のブランチが作成されて います。(時間はUTC) 12.こちらのブランチを開くと、「solutions/<SolutionName>」配下にxml形式でエクスポートされたソリューションファイル が作成されていることを確認することができます。 2023 83
GitHub Actionsの構築 構築手順 -GitHub Actionsの構築13.「Contribute」の「Open pull request」よりpull requestを作成します。 14.プルリクの作成後、mainブランチとの競合が発生していないことを確認した後、「Merge pull request」よりmainブラ ンチとのマージを行います。 15.マージ後のブランチは「Delete branch」を選択して削除しておきます。 16.この操作後mainブランチを確認すると、mainブランチにソリューションファイルが作成されていることを確認できます。 2023 84
GitHub Actionsの構築 構築手順 -GitHub Actionsの構築続いて運用環境へのデプロイを行うワークフローを作成します。 17.「Actions」より「New workflow」を選択して、「set up a workflow yourself」を選択します。 18.release-solution-to-prod-with-inputs.ymlに記載されているYAMLをコピーし、ワークフローに貼り付けます。 ワークフローの名前には”release-solution-to-prod-with-inputs.yml”を設定します。 19.設定が完了したらCommitを行います。 2023 85
GitHub Actionsの構築 構築手順 -GitHub Actionsの構築20.もう一度「Actions」より「New workflow」を選択して、「set up a workflow yourself」を選択します。 21.release-action-call.ymlに記載されているYAMLをコピーし、ワークフローに貼り付けます。 ワークフローの名前には”release-action-call.yml”を設定します。 22.l:15-l:20にあるenv内にある環境変数を自身の環境に合わせて更新します。 ➢ ➢ ➢ ➢ ➢ solution_name: 自身の環境にあるALM対象のソリューション名 BUILD_ENVIRONMENT_URL: ソリューションをビルドするための環境*の環境URL PRODUCTION_ENVIRONMENT_URL: マネージドソリューションをインポートする運用環境の環境URL CLIENT_ID: Microsoft Entraに登録したアプリの「アプリケーション (クライアント) ID」 TENANT_ID:ソリューションをエクスポートする環境があるテナントのテナントID * ビルド環境では、アンマネージドソリューションをインポートし、その後マネージドソリューションとしてエクスポートするために利用されます。 23.設定が完了したらCommitを行います。 2023 86
GitHub Actionsの構築 実行手順 -ワークフローの実行先ほど作成したワークフローはReleaseが作成されたときに動くようになっているので、Releaseの作成を行います。 1. Releasesに利用するtagを作成します。 「code」を選択して表示されるhttps://github.com/~から始まるリンクをコピーします。 2. ローカルで適当なフォルダにPowerShellでアクセスし、先ほどのリポジトリをローカルにクローンします。 PS > git clone https://github.com/~ * もしgitコマンドが利用できない場合は、まずは環境を整えてから実行してください。 2023 87
GitHub Actionsの構築 実行手順 -ワークフローの実行3. タグの作成を行います PS > git tag –a v1.0.0 –m ‘version 1.0,0’ タグとコメントは任意のもので大丈夫です。 4. タグをリモートに反映させます。 PS > git push v1.0.0 5. これでTagsが作成されました。 2023 88
GitHub Actionsの構築 実行手順 -ワークフローの実行7. 「Create a new release」を選択します。 8. 先ほど作成したタグを選択し、任意の名前を付けて「Publish release」を選択します。 2023 89
GitHub Actionsの構築 実行手順 -ワークフローの実行9. 設定に問題がなければ「release-action-call.yml」が実行され成功しているはずです。 10.運用環境にアクセスして、マネージドソリューションがインポートされていることを確認します。 2023 90
GitHub Actionsを利用する際の注意点 • ALMで利用されるすべての環境にはDataverseが必要となります。 • Azure DevOpsのPipelinesで利用可能なヘルパータスクと比較すると利用可能なヘルパータスクは少ない。 • 先人の知恵がほぼない。 2023 91
ALMの比較 Power Platformで実現可能なALMの比較 2023
Power PlatformでのALM実現方法の簡易比較 ◼ Power PlatformのPipelines Power Platformのパイプラインを利用することで、コードを記載することなく画面操作で設定を行うことができるので、 多くのユーザにとってALMを実現しやすい方法となっています。 ALMを試したことがない方で、手軽に試してみたい方はPipelinesからまず試してみるのがおすすめです。 ◼ Azure DevOps(Power Platform Build Tools) Azure DevOpsでPower Platform Build Toolsタスクを利用することで、Azure DevOpsで利用可能な他のタ スクと併用しながらALMを構築することができ、自身のプロジェクトニーズに合わせたカスタマイズを行うことが可能です。 YAMLを用いて定義ファイルを構築/管理できる場合で、ニーズに合わせてパイプラインのカスタマイズを行いたい場合に おすすめです。 ◼ Power PlatformのGitHub Actions Power PlatformのGitHub Actionsを利用することで、 GitHub Actionsで利用可能な他のタスクと併用しなが らALMを構築することができ、自身のプロジェクトニーズに合わせたカスタマイズを行うことが可能です。 プロジェクト内に協力可能な開発者が参画しており、GitHub Actionsの構築に精通している場合におすすめです。 2023 93
ALM Accelerator ALM Acceleratorの導入 2023
ALM Acceleratorとは ALM Accelerator for Power Platformとは、これまで紹介したPower PlatformのAzure DevOpsやGitHub ActionsでのALM管理を補完するために提供されているツールです。 ALM Acceleratorを導入することで、市民開発者とプロ開発者の溝を埋めることが可能です。 市民開発者にとってはシンプルな操作でALMを実施することができるようになり、プロ開発者にとってはALMをニーズに合わ せてカスタマイズする高度な機能が提供されています。 ALM Accelerator for Power Platformを利用して、市民開発者とプロ開発者がそれぞれ分断されることなくプロジェク トに携わり、Power PlatformのALMの実現を行えるように目指しましょう。 ALM Accelerator for Power PlatformはPower PlatformでのALM実現を補完してくれるツールです。 市民開発者、プロ開発者ともに導入を行うメリットがあるので、是非ALM実現の際は導入を検討してみてください。 2023 95
ALM Acceleratorの構築 Overview ◼ 前提条件 • ALMを実現したいすべての環境にはDataverseが必要となる • カスタム コネクタ及びMicrosoft EntraコネクタのHTTPアクションを実行できるライセンス及びポリシー許可が必要 ◼ 構築手順 1. 2. 3. 4. 5. 6. 7. 8. Microsoft Entraへのアプリ登録 Azure DevOpsへの拡張機能のインストール Creator Kitのインストール ALM Acceleratorのインストールと構築 ALM Acceleratorで使用するAzure DevOpsのセットアップ アプリケーションユーザーの作成 ALM Acceleratorを使用するユーザ構成の作成 デプロイプロファイルの作成 ◼ 展開手順 1. ALM Accelerator for Power Platformの利用 2023 96
ALM Acceleratorの構築 構築手順 -Microsoft Entraへのアプリ登録1. Microsoft Entraのアプリの登録に管理者権限を持つアカウントでサインインします。 2. 「新規登録」を選択してアプリケーションの登録を行います。 2023 97
ALM Acceleratorの構築 構築手順 -Microsoft Entraへのアプリ登録3. 「APIのアクセス許可」を開き、「アクセス許可の追加」を選択します。 4. 「Microsoft API」より「Dynamics CRM」を選択して、「委任されたアクセス許可」を選択のうえ 「user_impersonation」を選択してアクセス許可の追加を行います。 5. 同様に「所属する組織で使用している API」より「PowerApps-Advisor」を選択して、「委任されたアクセス許可」を 選択のうえ「Analysis.All」を選択してアクセス許可の追加を行います。 6. 「Microsoft API」より「Azure DevOps」を選択して、「委任されたアクセス許可」を選択のうえ 「user_impersonation」を選択してアクセス許可の追加を行います。 2023 98
ALM Acceleratorの構築 構築手順 -Microsoft Entraへのアプリ登録7. 「証明書とシークレット」を表示し、「新しいクライアント シークレット」を選択します。 8. 説明と期限を入力してクライアントシークレットの作成を行います。 9. ここで表示されたクライアントシークレットは一度画面を離れると再び確認することができないので、ここで控えておきます。 2023 99
ALM Acceleratorの構築 構築手順 -Microsoft Entraへのアプリ登録10.「概要」を表示して、「アプリケーション (クライアント) ID」と「ディレクトリ (テナント) ID」を控えておきます。 11.「リダイレクト URI を追加する」を選択してリダイレクトURIの追加を行います。 12.「プラットフォームを追加」を選択します。 13.「Web」を選んで「リダイレクト URI」に`https://global.consent.azure-apim.net/redirect`を入力して、「構 成」を選択します。 2023 100
ALM Acceleratorの構築 構築手順 -Microsoft Entraへのアプリ登録最後に登録したアプリをPower App Managementにアクセス許可の付与を行います。 14.Power Apps admin moduleのインストールします。 PS > Install-Module -Name Microsoft.PowerApps.Administration.PowerShell 15.Power Apps及びPower Automate用のモジュールをインストールします。 PS > Install-Module -Name Microsoft.PowerApps.PowerShell -AllowClobber 16.アプリケーションIDを用いて管理アプリの登録を行います。 PS > New-PowerAppManagementApp -ApplicationId <Application (client) ID> 2023 101
ALM Acceleratorの構築 構築手順 -Azure DevOpsへの拡張機能のインストール1. Azure Marketplaceより以下をAzure DevOpsにインストールします。 ➢ (必須) ➢ (必須) ➢ (オプション) 2023 Power Platform Build Tools Replace Tokens SARIF SAST Scans Tab 102
ALM Acceleratorの構築 構築手順 –Creator Kitのインストール1. CrearorKitCore ソリューションをダウンロードします。 2. Power Appsを開き、ALM Acceleratorをホストする環境を選択します。 3. ソリューションを開き、「ソリューションをインポート」より先ほどダウンロードしたマネージドソリューションをインポートします。 2023 103
ALM Acceleratorの構築 構築手順 -ALM Acceleratorのインストール1. GitHubの microsoft / coe-starter-kit より「CenterofExcellenceALMAccelerator_<latest version>_managed.zip」をダウンロードします。(Assetsにあります。) 2023 104
ALM Acceleratorの構築 構築手順 -ALM Acceleratorのインストールと構築2. Power Appsを開き、ALM Acceleratorをホストする環境を選択します。 3. ソリューションを開き、「ソリューションをインポート」より先ほどダウンロードしたマネージドソリューションをインポートします。 4. 接続情報の設定が求められるのでそれぞれ設定します。 「HTTP with Microsoft Entra ID」の接続情報を設定する際は両方のURIに https://graph.microsoft.com/を設定します。 2023 105
ALM Acceleratorの構築 構築手順 -ALM Acceleratorのインストールと構築ALM Acceleratorのインポートが完了したら、DevOpsのカスタムコネクタの構成を行います。 5. 「詳細 > すべて検出 > データ > カスタム コネクタ」を選択します。 [Tips] カスタム コネクタをよく利用する方はピン止めしておくと便利です。 6. 「CustomAzureDevOps」というカスタム コネクタが作成されているので編集を選択します。 2023 106
ALM Acceleratorの構築 構築手順 -ALM Acceleratorのインストールと構築7. 「2. セキュリティ」タブを開いて、「編集」を選択します。 8. それぞれ以下のように設定します。 項目 値 認証タイプ OAuth 2.0 ID プロバイダー Azure Active Directory Client ID Microsoft Entraへのアプリ登録時に控えた「アプリケーション (クライアント) ID」 Client secret Microsoft Entraへのアプリ登録時に控えた「クライアントシークレット」の「値」 Authorization URL 既定値のまま Tenant ID 既定値のまま Resource URL *アプリ登録時に「所属する組織で使用しているAPI」を選択していた場合は 既定値のまま その際に利用していた「アプリケーション (クライアント) ID」 Enable on-behalf-of login 既定値のまま スコープ 既定値のまま 2023 107
ALM Acceleratorの構築 構築手順 -ALM Acceleratorのインストールと構築9. 「コネクタの更新」を選択します。 10.「リダイレクト URL」が`https://global.consent.azure-apim.net/redirect`でない場合は(完全一致でない場 合は)、Microsoft Entraでのアプリ登録時に設定したリダイレクト URIをここで設定されている値に置き換えます。 2023 108
ALM Acceleratorの構築 構築手順 -ALM Acceleratorのインストールと構築11.「6. テスト」ページを開きます。 12.「新しい接続」を作成します。 2023 109
ALM Acceleratorの構築 構築手順 -ALM Acceleratorのインストールと構築13.「テスト操作」を選択します。 * カスタム コネクタのページから離れていた場合は再度カスタム コネクタのテストページに戻ってきて操作します。 14.応答statusが状態 200 であることと、ボディで返されたJSON値が自身のテナントのAzure DevOpsの Organizationであることを確認します。 2023 110
ALM Acceleratorの構築 構築手順 -ALM Acceleratorで使用するAzure DevOpsのセットアップ1. 「ALM Accelerator for Power Platform Administration」というモデル駆動型アプリを開きます。 2. 左のペインにある「Azure DevOps」の「Project」を選択します。 2023 111
ALM Acceleratorの構築 構築手順 -ALM Acceleratorで使用するAzure DevOpsのセットアップ3. 「Azure DevOps Organization」より、自身のOrganizationを選択します。 4. 「Projects」より「New > Project Wizard」を選択します。 5. 任意のプロジェクト名を入力して、必要に応じてプレビュー機能を有効にします。 プレビュー機能はCenterofExcellenceALMAccelerator/PREVIEW.mdから確認できます。 2023 112
ALM Acceleratorの構築 構築手順 -ALM Acceleratorで使用するAzure DevOpsのセットアップ6. 「Pipeline Templates」で「install into new ‘coe-alm-accelerator-templates’ repository」にチェックを付 けます。 これにより新しいリポジトリにパイプライン テンプレートがインストールされます。 2023 113
ALM Acceleratorの構築 構築手順 -ALM Acceleratorで使用するAzure DevOpsのセットアップ7. 「Service Connection」でALMを構成する対象の環境を選択したうえで、項目に値を入力し「Add」を選択します。 2023 項目 値 Select Environment ALM構築対象の環境 TenantId Microsoft Entraへのアプリ登録時に控えた 「ディレクトリ (テナント) ID」 ClientId Microsoft Entraへのアプリ登録時に控えた 「アプリケーション (クライアント) ID」 ClientSecret Microsoft Entraへのアプリ登録時に控えた 「クライアントシークレット」の「値」 114
ALM Acceleratorの構築 構築手順 -ALM Acceleratorで使用するAzure DevOpsのセットアップ8. 「Generic pipelines」で問題がなければ「Next」を選択します。 2023 115
ALM Acceleratorの構築 構築手順 -アプリケーションユーザの作成1. Power Platform 管理センターに管理者権限を持つアカウントでサインインします。 2. ALM構築対象の環境を選択します。 3. 「設定」より、「ユーザーとアクセス許可 > アプリケーション ユーザー」を選択します。 4. 「新規アプリ ユーザー」を選択して、Microsoft Entraに登録したアプリを選択します。 セキュリティ ロールには”System Administrator”を設定して、各環境で必要な機能を実行できるようにしておくこと が推奨されています。 5. これを対象の環境すべてで実施します。 2023 116
ALM Acceleratorの構築 構築手順 -ALM Acceleratorを使用するユーザ構成の作成Dataverseのリソースに適切にアクセスできるように、Dataverseユーザの作成を行います。 1. Power Platform 管理センターに管理者権限を持つアカウントでサインインします。 2. ALM Acceleratorをホストしている環境を選択します。 3. 「設定」より、「ユーザーとアクセス許可 > チーム」を選択します。 4. 「チームの作成」を選択します。 「チームの種類」では「Microsoft Entra ID セキュリティ グループ」を選択して、任意のセキュリティグループを選択しま す。 「メンバーシップの種類」では「メンバー」を選択します。 5. 「次へ」を選択して、セキュリティロールに「ALM Power App Access」と「Basic User」を割り当てます。 2023 117
ALM Acceleratorの構築 構築手順 -ALM Acceleratorを使用するユーザ構成の作成ALM Acceleratorの接続は、作業を行うすべての環境でアクセスできる必要があるすべてのユーザに権限を設定する必要 があります。 6. Azure DevOpsにサインインし、先ほど作成したプロジェクトを開きます。 7. 「Project settings」より、「Pipelines > Service connections」を選択します。 2023 118
ALM Acceleratorの構築 構築手順 -ALM Acceleratorを使用するユーザ構成の作成8. 環境を選択し、右上にある三点リーダーより「Security」を選択します。 9. 「User permissions」より「Add」を選択し、アクセス許可を付与するユーザを選択します。 10.これを各環境について実施します。 2023 119
ALM Acceleratorの構築 構築手順 -ALM Acceleratorを使用するユーザ構成の作成ALM Acceleratorの管理アプリよりアプリをデプロイするユーザ設定の作成を行います。 11.「ALM Accelerator for Power Platform Administration」というモデル駆動型アプリを開きます。 12.左のペインより「Deployment User Settings」を選択します。 2023 120
ALM Acceleratorの構築 構築手順 -ALM Acceleratorを使用するユーザ構成の作成13.「New」を選択して、このユーザ設定でできることを設定します。 2023 121
ALM Acceleratorの構築 構築手順 -ALM Acceleratorを使用するユーザ構成の作成13.「User Labels」を構成します。 ここの設定は、実行されたアクションの展開履歴のビューで表示されます。 空白を設定した場合はそれぞれ以下が使用されます。 ➢ ➢ ➢ ➢ Deploy Solution: Commit Solution: Import Solution: Delete Solution: DEPLOY SOLUTION COMMIT SOLUTION IMPORT SOLUTION DELETE SOLUTION 14.設定が完了したら「Save」を選択します。 2023 122
ALM Acceleratorの構築 構築手順 -デプロイプロファイルの作成ALM Acceleratorはソリューションの展開を行う際にデプロイプロファイルに基づいて展開が行われます。 デプロイプロファイルはデプロイユーザの設定にリンクされています。 1. 「ALM Accelerator for Power Platform Administration」というモデル駆動型アプリを開きます。 2. 左のペインより「Deployment Profile」を選択します。 2023 123
ALM Acceleratorの構築 構築手順 -デプロイプロファイルの作成3. 「New」を選択して新規デプロイプロファイルの作成を行います。 最低限以下項目を入力します。 2023 項目 値 Name ALM構築対象の環境 AzDO Organization Azure DevOpsのOrganization AzDO Project Azure DevOpsの対象となるプロジェクト Reposiroty Azure DevOpsの対象となるリポジトリ Repository ID リポジトリのID 124
ALM Acceleratorの構築 構築手順 -デプロイプロファイルの作成4. デプロイ時に実行されるStepを定義します。 「New Deployment Step」を選択します。 2023 125
ALM Acceleratorの構築 構築手順 -デプロイプロファイルの作成5. 例えば本番環境にデプロイするStepは以下のように作成することができます。 2023 126
ALM Acceleratorの構築 展開手順 -ALM Accelerator for Power Platformの利用1. 開発環境で展開を行いたいソリューションを作成しておきます。 2. ALM Acceleratorをホストしている環境を開き、「ALM Accelerator for Power Platform」というキャンバスアプリ を開いて、開発環境を選択します。 2023 127
ALM Acceleratorの構築 展開手順 -ALM Accelerator for Power Platformの利用3. 「Choose a Profile」より先ほど作成したデプロイプロファイルを選択します。 2023 128
ALM Acceleratorの構築 展開手順 -ALM Accelerator for Power Platformの利用4. 「COMMIT SOLUTION」を選択すると、右に入力ペインが表示されますので項目に値を入力します。 「Enter Notes」はメモのようにみえるので入力しなくてもよくみえるかもですが、こちらもなにかしら入力しないとCommit が行えませんのでご注意ください。 わかりやすいコミットメッセージを入力しておきましょう。 2023 129
ALM Acceleratorの構築 展開手順 -ALM Accelerator for Power Platformの利用5. 実行が完了すると、「COMMIT SOLUTION」の右に緑のチェックマークがつきます。 こちらを選択すると、今回ALM Acceleratorを実行するとAzure DevOpsのPipelinesが実行されるように設定して いますので、パイプラインの実行履歴が開きます。 2023 130
ALM Acceleratorの構築 展開手順 -ALM Accelerator for Power Platformの利用6. パイプラインの実行履歴を確認すると、通常と同じように実行結果を確認することが可能です。 2023 131
ALM Acceleratorの構築 展開手順 -ALM Accelerator for Power Platformの利用7. 今回の手順で作成した「COMMIT SOLUTION」の実行が完了すると、「DeploymentProfile - TEST」に指定し た環境に対象のソリューションがアンマネージドソリューションとしてインポートされます。 もしリポジトリにunpackしたソリューションファイルを格納したい場合などは、”Pipelines”配下のパイプラインの定義ファイ ルを修正することになります。 テンプレートは結構複雑ですので、改修を行うにはそこそこの 労力がかかりますのでご注意ください! 2023 132
ALM Acceleratorの構築 展開手順 -ALM Accelerator for Power Platformの利用8. 続いて「DEPLOY SOLUTION」を選択します。 先ほどと同じように項目を入力して、「DEPLOY SOLUTION」を選択します。 2023 133
ALM Acceleratorの構築 展開手順 -ALM Accelerator for Power Platformの利用9. 「DEPLOY SOLUTION」を実行すると、Pull Requestが作成されます。 Azure DevOpsの対象のReposを開いて問題がなければ、プルリクを承認します。 承認を行うと次のジョブが実行されます。 2023 134
ALM Acceleratorの構築 展開手順 -ALM Accelerator for Power Platformの利用10.今回の手順で作成した「DEPLOY SOLUTION」の実行が完了すると、「DeploymentProfile - Prod」に指定した 環境に対象のソリューションがマネージドソリューションとしてインポートされます。 2023 135
ALM Acceleratorの構築 展開手順 -ALM Accelerator for Power Platformの利用11.最後に「DELETE SOLUTION」の実行してみます。 これは「NOTE」で警告が記載されている通り、ソリューションの削除は元に戻せないので破壊的な行為です。 ソリューションの削除を行うので影響が大きいということですね。 ここで入力するのはソリューションの「名前」ではなく「表示名」です。 2023 136
ALM Acceleratorの構築 展開手順 -ALM Accelerator for Power Platformの利用12.「DELETE SOLUTION」が実行されるとすべての環境から対象のソリューションが削除されます。 アンマネージドソリューションを削除してもソリューション内にあるオブジェクトまでは削除されませんが、この操作ではソリュー ション内に含まれていたオブジェクトもまとめて削除されます。 2023 137
ALM Acceleratorを利用する際の注意点 • ALMで利用されるすべての環境にはDataverseが必要となります。 • 先人の知恵がほぼない。 2023 138
早見表 Power PlatformでのALM選択早見表 2023
Power PlatformでのALM選択早見表 Pipelines DevOps/GitHub ALM Accelerator IT/開発者の協力 必須ではない (拡張を行う場合は必要) 必須 事前のセットアップに必要 ソースコードによる拡張 不可 * ただし予定されている 可能 可能 昇格された権限 必要 不要 不要 品質管理の実現 最小 無制限 ベスト プラクティス 市民開発者向け Yes No Yes エクスペリエンス Yes No 作成者目線だとNo サポート Microsoftによる対応 MicrosoftとGitHubによる対応 GitHubとPower CATによる対応 カスタマイズ 不可 可能 可能 コードファーストの開発 No Yes Yes 2023 140
まとめ まとめ 2023
まとめ Power Platformでアプリを作成したら最終的にALMの構築を目指さないといけないわけではありません。 作成したアプリのビジネスにおける重要度を考慮したうえでALMの導入を検討することになります。 Power PlatformでALMを構築する場合は、 ✓ Pipelines ✓ Azure DevOps ✓ GitHub Actions の3つがあります。 さらにこれらでのALMの実現をより強力にするオプションとしてALM Acceleratorがあります。 自身のプロジェクトや、開発レベルなどと相談して是非ALMの導入を検討してみてください! 2023 142
参考ドキュメント 参考ドキュメント 2023
参考ドキュメント Microsoft Power Platform でのアプリケーション ライフサイクル管理サービスの概要 ALM の環境戦略 Power Platform のパイプラインの概要 Microsoft Power Platform Build Tools for Azure DevOps Microsoft Power Platform 用 GitHub Actions How to do ALM with Power Platform ALM Accelerator とは 2023 144
2023 145