次の方法で共有


Logic Apps 経由で環境メタデータを取得するチュートリアル

このチュートリアルでは、 Microsoft Dynamics Lifecycle Services API を利用して環境を定期的にスキャンし、メタデータの詳細を取得する方法を説明します。

このチュートリアルでは、これらのタスクを実行する方法を説明します:

  1. Lifecycle Services API で認証する Power Automate フローまたは Azure Logic Apps ワークフローを作成します。
  2. 環境メタデータ エンドポイントを呼び出して、特定の環境の詳細を取得します。

このシナリオ例では、監査およびコンプライアンスの要件を満たすために、顧客はデータベースのバックアップの場所と毎日のバックアップが作成されたかどうかを把握している必要があります。 お客様は、次の手順を使用してバックアップの場所を取得します。

ステップ 1: ワークフローを作成し、変数を設定する

このチュートリアルでは、Logic Apps ワークフローを使用します。 しかし、Power Automate フローや、会社が自動化に使いたい他のオーケストレーション エンジンを使うこともできます。 データを取得するためのすべての呼び出しでは RESTful API を使用します。 したがって、REST をサポートするツールはすべて、このチュートリアルで動作します。

Azure portal で、新しいロジック アプリを作成し、名前を付けます。

Azure portal で作成されているロジック アプリを示すスクリーンショットです。

新しいロジック アプリがプロビジョニングされたら、デザイナーを使用してワークフローを編集します。 任意のスケジュールで実行される 繰り返し トリガーを設定します。

繰り返しトリガーが設定されていることを示すスクリーンショット。

このチュートリアルの残りの手順を完了するには、プロジェクト ID と環境 ID が必要です。

  • 環境 ID – パッケージをインストールする環境の ID です。 この ID はLifecycle Servicesの環境詳細ページで確認できます。
  • プロジェクト ID – 環境が存在するプロジェクトの ID です。 この ID は環境詳細ページの URL で確認できます。

次に、Microsoft Entra ID で認証し、Lifecycle Services API を呼び出すために使用できるトークンを取得します。 Microsoft Entra ID の設定が完了していない場合、認証 (プレビュー) を参照してください。

トークンを取得するには、このチュートリアルではパスワードを含むユーザー資格情報を使用します。 次の例は、Microsoft Entra ID の呼び出しを示しています。

Microsoft Entra ID で認証し、Lifecycle Services API を呼び出すためのトークンを取得するための呼び出しを示すスクリーンショット。

次に、JSON の解析 アクションで以下の JavaScript Object Notation (JSON) スキーマを使用して、Microsoft Entra ID トークンのレスポンスを強く型付けされたオブジェクトに解析します。

{
    "properties": {
        "access_token": {
            "type": "string"
        },
        "expires_in": {
            "type": "integer"
        },
        "ext_expires_in": {
            "type": "integer"
        },
        "token_type": {
            "type": "string"
        }
    },
    "type": "object"
}

Microsoft Entra ID トークン応答が厳密に型指定されたオブジェクトに解析されることを示すスクリーンショット。

ステップ 2: 環境の詳細を取得する

このセクションでは、バックアップの詳細を取得します。 環境 ID とプロジェクト ID を必ず用意してください。

環境メタデータのエンドポイント

Lifecycle Services API への最初の呼び出しを行います。 環境メタデータの取得 を使用して、利用可能なすべてのメタデータ プロパティを取得します。 該当する Lifecycle Services プロジェクトでこの環境を表示するためのアクセス権を持つユーザーからのベアラー トークンを必ず使用してください。

GET https://lcsapi.lcs.dynamics.com/environmentinfo/v1/detail/project/{projectId}/?environmentId={environmentId}

受け取る応答は、次の例に似ています。

{
    "ResultPageCurrent": 1,
    "ResultHasMorePages": true,
    "Data": [
        {
            "EnvironmentId": "d15ed3a8c2c14054840b946c93915da9",
            "EnvironmentName": "ProdEnvironment1",
            "ProjectId": 112233,
            "EnvironmentInfrastructure": "MicrosoftManaged",
            "EnvironmentType": "Production",
            "EnvironmentGroup": "Primary",
            "EnvironmentProduct": "finance and operations",
            "EnvironmentEndpointBaseUrl": "<example>",
            "DeploymentState": "Finished",
            "TopologyDisplayName": "finance and operations - High Availability (10.0.20 with Platform update 44)",
            "CurrentApplicationBuildVersion": "10.0.886.48",
            "CurrentApplicationReleaseName": "10.0.20",
            "CurrentPlatformReleaseName": "Update44",
            "CurrentPlatformVersion": "7.0.6060.45",
            "DeployedOnUTC": "8/5/2021 11:00 PM",
            "CloudStorageLocation": "Central India",
            "DisasterRecoveryLocation": "South India",
            "DeploymentStatusDisplay": "Deployed",
            "CanStart": false,
            "CanStop": false,
            "DatabaseDailyBackupsEnabled": true,
            "DatabaseBackupLocation": "Central India"
        },
        {
            "EnvironmentId": "60b557b2-fefb-4690-859e-f83caf98c17e",
            "EnvironmentName": "SandboxEnvironment1",
            "ProjectId": 112233,
            "EnvironmentInfrastructure": "MicrosoftManaged",
            "EnvironmentType": "Sandbox",
            "EnvironmentGroup": "Primary",
            "EnvironmentProduct": "finance and operations",
            "EnvironmentEndpointBaseUrl": "<example>",
            "DeploymentState": "Finished",
            "TopologyDisplayName": "finance and operations - Sandbox (10.0.20 with Platform update 44)",
            "CurrentApplicationBuildVersion": "10.0.960.24",
            "CurrentApplicationReleaseName": "10.0.21",
            "CurrentPlatformReleaseName": "Update45",
            "CurrentPlatformVersion": "7.0.6129.19",
            "DeployedOnUTC": "8/5/2021 12:42 PM",
            "CloudStorageLocation": "East US",
            "DisasterRecoveryLocation": "West US",
            "DeploymentStatusDisplay": "Failed",
            "CanStart": false,
            "CanStop": true,
            "DatabaseDailyBackupsEnabled": true,
            "DatabaseBackupLocation": "East US"
        }
    ],
    "IsSuccess": true,
    "OperationActivityId": "216ea45d-113d-445a-a393-f67041f7aafe",
    "ErrorMessage": null,
    "VersionEOL": "9999-12-31T23:59:59.9999999"
}

このデータの用途

環境の詳細のログや記録を保持する必要がある婆は、先のステップで示したように、API を介して環境の状態を取得するためにこのアプローチを使用する可能性があります。 この状態情報は、ツール自体のログ (ロジック アプリの実行履歴など) に保存できます。 あるいは、長期保存する場合は、Azure Blob Storage またはオンプレミスにファイルとして保存できます。

Logic Apps でレビューされているログを示すスクリーンショット。