Azure 監視 REST API のチュートリアル

この記事では、Azure Monitor の REST API リファレンスを使用する方法について説明します。

Azure Monitor API を使用してメトリック定義、ディメンション値、メトリック値を取得し、アプリケーションでデータを使用したり、分析のためにデータベースに格納したりします。 Azure Monitor API を使用して、アラート ルールを一覧表示したり、アクティビティ ログを表示したりすることもできます。

Azure Monitor 要求の認証

Azure Monitor API を使用して送信された要求では、Azure Resource Manager 認証モデルが使用されます。 すべての要求は、Microsoft Entra ID で認証されます。 クライアント アプリケーションを認証する 1 つの方法は、Microsoft Entra サービス プリンシパルを作成し、認証トークンを取得することです。 Microsoft Entra サービス プリンシパルは、Azure portal、CLI、または PowerShell を使って作成できます。 詳細については、「承認トークンを要求し、API を操作するために、アプリを登録する」を参照してください。

トークンを取得する

サービス プリンシパルを作成したら、REST 呼び出しを使用してアクセス トークンを取得します。 サービス プリンシパルまたはアプリの appIdpassword を使用して、次の要求を送信します。


    POST /<tenant-id>/oauth2/token
    Host: https://login.microsoftonline.com
    Content-Type: application/x-www-form-urlencoded
    
    grant_type=client_credentials
    &client_id=<app-client-id>
    &resource=https://management.azure.com
    &client_secret=<password>

次に例を示します。

curl --location --request POST 'https://login.microsoftonline.com/abcd1234-5849-4a5d-a2eb-5267eae1bbc7/oauth2/token' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=client_credentials' \
--data-urlencode 'client_id=0123b56a-c987-1234-abcd-1a2b3c4d5e6f' \
--data-urlencode 'client_secret=123456.ABCDE.~XYZ876123ABceDb0000' \
--data-urlencode 'resource=https://management.azure.com'

要求が成功すると、アクセス トークンが応答で送られてきます。

{
   token_type": "Bearer",
   "expires_in": "86399",
   "ext_expires_in": "86399",
   "access_token": "eyJ0eXAiOiJKV1QiLCJ.....Ax"
}

認証してトークンを取得した後、Azure Monitor API 要求にヘッダー 'Authorization: Bearer <access token>' を含めることで、アクセス トークンを使用します。

注意

Azure REST API を使用した処理に関する詳細については、「Azure REST API リファレンス」を参照してください。

リソース ID の取得

REST API を使用するには、ターゲット Azure リソースのリソース ID が必要です。 リソース ID は次のパターンに従っています。

/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/<provider>/<resource name>/

次に例を示します。

  • Azure IoT Hub: /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Devices/IotHubs/<iot-hub-name>
  • Elastic SQL プール: /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Sql/servers/<pool-db>/elasticpools/<sql-pool-name>
  • Azure SQL Database (v12): /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Sql/servers/<server-name>/databases/<database-name>
  • Azure Service Bus: /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.ServiceBus/<namespace>/<servicebus-name>
  • Azure Virtual Machine Scale Sets: /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Compute/virtualMachineScaleSets/<vm-name>
  • Azure Virtual Machines: /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Compute/virtualMachines/<vm-name>
  • Azure Event Hubs: /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.EventHub/namespaces/<eventhub-namespace>

Azure portal、PowerShell、または Azure CLI を使用してリソース ID を検索します。

ポータルで resourceID を見つけるには、リソースの概要ページで [JSON ビュー] を選択しますA screenshot showing the overview page for a resource with the JSON view link highlighted.

[リソース JSON] ページが表示されます。 リソース ID は、ID の右側にあるアイコンを使用してコピーできます。

A screenshot showing the Resource JSON page for a resource.

API エンドポイント

API エンドポイントでは、次のパターンが使用されます。
/<resource URI>/providers/microsoft.insights/<metrics|metricDefinitions>?api-version=<apiVersion>
resource URI は次の要素から構成されます。
/subscriptions/<subscription id>/resourcegroups/<resourceGroupName>/providers/<resourceProviderNamespace>/<resourceType>/<resourceName>/

重要

メトリックまたはメトリック定義を取得する API 呼び出しを行うときは、必ずリソース URI の後に /providers/microsoft.insights/ を含めるようにしてください。

メトリック定義の取得

Azure Monitor メトリック定義 REST API を使用すると、サービスで使用できるメトリックの一覧にアクセスできます。 メトリック定義を取得するには、次の要求形式を使用します。

GET /subscriptions/<subscription id>/resourcegroups/<resourceGroupName>/providers/<resourceProviderNamespace>/<resourceType>/<resourceName>/providers/microsoft.insights/metricDefinitions?api-version=<apiVersion>
Host: management.azure.com
Content-Type: application/json
Authorization: Bearer <access token>

たとえば、次の要求は、Azure Storage アカウントのメトリック定義を取得します。

curl --location --request GET 'https://management.azure.com/subscriptions/12345678-abcd-98765432-abcdef012345/resourceGroups/azmon-rest-api-walkthrough/providers/Microsoft.Storage/storageAccounts/ContosoStorage/providers/microsoft.insights/metricDefinitions?api-version=2018-01-01'
--header 'Authorization: Bearer eyJ0eXAiOi...xYz

次の JSON は、応答例の本文を示しています。 この例では、2 番目のメトリックのみにディメンションがあります。

{
    "value": [
        {
            "id": "/subscriptions/12345678-abcd-98765432-abcdef012345/resourceGroups/azmon-rest-api-walkthrough/providers/Microsoft.Storage/storageAccounts/ContosoStorage/providers/microsoft.insights/metricdefinitions/UsedCapacity",
            "resourceId": "/subscriptions/12345678-abcd-98765432-abcdef012345/resourceGroups/azmon-rest-api-walkthrough/providers/Microsoft.Storage/storageAccounts/ContosoStorage",
            "namespace": "Microsoft.Storage/storageAccounts",
            "category": "Capacity",
            "name": {
                "value": "UsedCapacity",
                "localizedValue": "Used capacity"
            },
            "isDimensionRequired": false,
            "unit": "Bytes",
            "primaryAggregationType": "Average",
            "supportedAggregationTypes": [
                "Total",
                "Average",
                "Minimum",
                "Maximum"
            ],
            "metricAvailabilities": [
                {
                    "timeGrain": "PT1H",
                    "retention": "P93D"
                },
                 ...
                {
                    "timeGrain": "PT12H",
                    "retention": "P93D"
                },
                {
                    "timeGrain": "P1D",
                    "retention": "P93D"
                }
            ]
        },
        {
            "id": "/subscriptions/12345678-abcd-98765432-abcdef012345/resourceGroups/azmon-rest-api-walkthrough/providers/Microsoft.Storage/storageAccounts/ContosoStorage/providers/microsoft.insights/metricdefinitions/Transactions",
            "resourceId": "/subscriptions/12345678-abcd-98765432-abcdef012345/resourceGroups/azmon-rest-api-walkthrough/providers/Microsoft.Storage/storageAccounts/ContosoStorage",
            "namespace": "Microsoft.Storage/storageAccounts",
            "category": "Transaction",
            "name": {
                "value": "Transactions",
                "localizedValue": "Transactions"
            },
            "isDimensionRequired": false,
            "unit": "Count",
            "primaryAggregationType": "Total",
            "supportedAggregationTypes": [
                "Total"
            ],
            "metricAvailabilities": [
                {
                    "timeGrain": "PT1M",
                    "retention": "P93D"
                },
                {
                    "timeGrain": "PT5M",
                    "retention": "P93D"
                },
                ...
                {
                    "timeGrain": "PT30M",
                    "retention": "P93D"
                },
                {
                    "timeGrain": "PT1H",
                    "retention": "P93D"
                },
                ...
                {
                    "timeGrain": "P1D",
                    "retention": "P93D"
                }
            ],
            "dimensions": [
                {
                    "value": "ResponseType",
                    "localizedValue": "Response type"
                },
                {
                    "value": "GeoType",
                    "localizedValue": "Geo type"
                },
                {
                    "value": "ApiName",
                    "localizedValue": "API name"
                }
            ]
        },
        ...
    ]
}

注意

API バージョン "2018-01-01" 以降を使用することをお勧めします。 以前のバージョンのメトリック定義 API ではディメンションがサポートされていません。

ディメンション値を取得する

使用可能なメトリック定義を取得した後、メトリックのディメンションの値の範囲を取得します。 ディメンション値を使用して、クエリのメトリックをフィルター処理またはセグメント化します。 Azure Monitor の Metrics REST API を使用し、特定のメトリック ディメンションのすべての値を見つけます。

フィルター定義でメトリックの name.value 要素を使用します。 フィルターが指定されていない場合は、既定のメトリックが返されます。 この API では、1 つのディメンションでのみ、ワイルドカード フィルターを使用できます。 "resultType=metadata" クエリ パラメーターを使用して、ディメンション値の要求を指定します。 メトリック値の要求では、resultType は省略されます。

Note

Azure Monitor REST API を使用してディメンション値を取得するには、"2019-07-01" 以降の API バージョンを使用します。

次の要求形式を使用して、ディメンション値を取得します。

GET /subscriptions/<subscription-id>/resourceGroups/  
<resource-group-name>/providers/<resource-provider-namespace>/  
<resource-type>/<resource-name>/providers/microsoft.insights/  
metrics?metricnames=<metric>  
&timespan=<starttime/endtime>  
&$filter=<filter>  
&resultType=metadata  
&api-version=<apiVersion>   HTTP/1.1
Host: management.azure.com
Content-Type: application/json
Authorization: Bearer <access token>

次の例では、Transactions メトリックの API Name ディメンションに対して出力されたディメンション値で、GeoType ディメンションの値が、指定された時間範囲に対して Primary であるものの一覧を取得しています。

curl --location --request GET 'https://management.azure.com/subscriptions/12345678-abcd-98765432-abcdef012345/resourceGroups/azmon-rest-api-walkthrough/providers/Microsoft.Storage/storageAccounts/ContosoStorage/providers/microsoft.insights/metrics  \
?metricnames=Transactions \
&timespan=2023-03-01T00:00:00Z/2023-03-02T00:00:00Z \
&resultType=metadata \
&$filter=GeoType eq \'Primary\' and ApiName eq \'*\' \
&api-version=2019-07-01'
-header 'Content-Type: application/json' \
--header 'Authorization: Bearer eyJ0e..meG1lWm9Y'

次の JSON は、応答例の本文を示しています。

{
  "timespan": "2023-03-01T00:00:00Z/2023-03-02T00:00:00Z",
  "value": [
    {
      "id": "/subscriptions/12345678-abcd-98765432-abcdef012345/resourceGroups/azmon-rest-api-walkthrough/providers/Microsoft.Storage/storageAccounts/ContosoStorage/providers/Microsoft.Insights/metrics/Transactions",
      "type": "Microsoft.Insights/metrics",
      "name": {
        "value": "Transactions",
        "localizedValue": "Transactions"
      },
      "unit": "Count",
      "timeseries": [
        {
          "metadatavalues": [
            {
              "name": {
                "value": "apiname",
                "localizedValue": "apiname"
              },
              "value": "DeleteBlob"
            }
          ]
        },
        {
          "metadatavalues": [
            {
              "name": {
                "value": "apiname",
                "localizedValue": "apiname"
              },
              "value": "SetBlobProperties"
            }
          ]
        },
        ...
      ]
    }
  ],
  "namespace": "Microsoft.Storage/storageAccounts",
  "resourceregion": "eastus"
}

メトリック値の取得

メトリック定義とディメンション値を取得したら、メトリック値を取得します。 Azure Monitor メトリック REST API を使用してメトリック値を取得します。

フィルター定義でメトリックの name.value 要素を使用します。 ディメンション フィルターが指定されていない場合、ロール アップされた集計メトリックが返されます。

特定のディメンション値を持つ複数の時系列をフェッチするには、"&$filter=ApiName eq 'ListContainers' or ApiName eq 'GetBlobServiceProperties'" などの両方のディメンション値を指定するフィルター クエリ パラメーターを指定します。

特定のディメンションのあらゆる値に対して時系列を返すには、"&$filter=ApiName eq '*'" のような * フィルターを使用します。 Top クエリ パラメーターと OrderBy クエリ パラメーターを使用すると、返される時系列の数を制限し、順序付けできます。

Note

Azure Monitor REST API を使用して多次元のメトリック値を取得するには、"2019-07-01" 以降の API バージョンを使用します。

メトリック値を取得するには、次の要求形式を使用します。

GET /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/<resource-provider-namespace>/<resource-type>/<resource-name>/providers/microsoft.insights/metrics?metricnames=<metric>&timespan=<starttime/endtime>&$filter=<filter>&interval=<timeGrain>&aggregation=<aggreation>&api-version=<apiVersion>
Host: management.azure.com
Content-Type: application/json
Authorization: Bearer <access token>

次の例では、5 分間の上位 3 つの API を、Transactions 数の降順で取得します。ここで、GeoType ディメンションの値は Primary です。

curl --location --request GET 'https://management.azure.com/subscriptions/12345678-abcd-98765432-abcdef012345/resourceGroups/azmon-rest-api-walkthrough/providers/Microsoft.Storage/storageAccounts/ContosoStorage/providers/microsoft.insights/metrics \
?metricnames=Transactions \
&timespan=2023-03-01T02:00:00Z/2023-03-01T02:05:00Z \
& $filter=apiname eq '\''GetBlobProperties'\'
&interval=PT1M \
&aggregation=Total  \
&top=3 \
&orderby=Total desc \
&api-version=2019-07-01"' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer yJ0eXAiOi...g1dCI6Ii1LS'

次の JSON は、応答例の本文を示しています。

{
  "cost": 0,
  "timespan": "2023-03-01T02:00:00Z/2023-03-01T02:05:00Z",
  "interval": "PT1M",
  "value": [
    {
      "id": "/subscriptions/12345678-abcd-98765432-abcdef012345/resourceGroups/azmon-rest-api-walkthrough/providers/Microsoft.Storage/storageAccounts/ContosoStorage/providers/Microsoft.Insights/metrics/Transactions",
      "type": "Microsoft.Insights/metrics",
      "name": {
        "value": "Transactions",
        "localizedValue": "Transactions"
      },
      "unit": "Count",
      "timeseries": [
        {
          "metadatavalues": [
            {
              "name": {
                "value": "apiname",
                "localizedValue": "apiname"
              },
              "value": "GetBlobProperties"
            }
          ],
          "data": [
            {
              "timeStamp": "2023-09-19T02:00:00Z",
              "total": 2
            },
            {
              "timeStamp": "2023-09-19T02:01:00Z",
              "total": 1
            },
            {
              "timeStamp": "2023-09-19T02:02:00Z",
              "total": 3
            },
            {
              "timeStamp": "2023-09-19T02:03:00Z",
              "total": 7
            },
            {
              "timeStamp": "2023-09-19T02:04:00Z",
              "total": 2
            }
          ]
        },
        ...
      ]
    }
  ],
  "namespace": "Microsoft.Storage/storageAccounts",
  "resourceregion": "eastus"
}

一度に複数のリソースに対するメトリックのクエリ。

個々のリソース上のメトリックのクエリに加えて、一部のリソースの種類では、1 つの要求での複数のリソースに対するクエリもサポートされています。 これらの API は、Azure メトリック エクスプローラーでのマルチリソース エクスペリエンスを提供するものです。 複数のメトリックのクエリをサポートするリソースの種類のセットは、Azure Monitor の [メトリック] ブレードで、コンテキスト ブレード上のスコープ セレクター内の [リソースの種類] ドロップダウンを使用して確認できます。 詳細については、「マルチリソース UX ドキュメント」を参照してください。

複数のリソースと個々のリソースのメトリックのクエリには、いくつかの重要な違いがあります。

  • メトリック マルチリソース API は、リソース ID レベルではなくサブスクリプション レベルで動作します。 この制限は、これらの API に対してクエリを実行するユーザーが、サブスクリプション自体に対する監視閲覧者の権限を持っている必要があることを意味します。
  • メトリック マルチリソース API では、クエリごとに 1 つの resourceType のみがサポートされます。これは、メトリック名前空間クエリ パラメーターの形式で指定する必要があります。
  • メトリック マルチリソース API では、クエリごとに 1 つの Azure リージョンのみがサポートされ、これは region クエリ パラメーターの形式で指定する必要があります。

複数のリソースに対するメトリックのクエリの例

次の例は、個々のメトリック定義要求を示しています。

GET https://management.azure.com/subscriptions/12345678-abcd-98765432-abcdef012345/resourceGroups/EASTUS-TESTING/providers/Microsoft.Compute/virtualMachines/TestVM1/providers/microsoft.insights/metricdefinitions?api-version=2021-05-01

次の要求は、複数のリソースに対する同等のメトリック定義要求を示しています。 変更点は、リソース ID パスがサブスクリプション パスになったことと、region および metricNamespace クエリ パラメーターが追加されたことだけです。

GET https://management.azure.com/subscriptions/12345678-abcd-98765432-abcdef012345/providers/microsoft.insights/metricdefinitions?api-version=2021-05-01&region=eastus&metricNamespace=microsoft.compute/virtualmachines

次の例は、個々のメトリック要求を示しています。

GET https://management.azure.com/subscriptions/12345678-abcd-98765432-abcdef012345/resourceGroups/EASTUS-TESTING/providers/Microsoft.Compute/virtualMachines/TestVM1/providers/microsoft.Insights/metrics?timespan=2023-06-25T22:20:00.000Z/2023-06-26T22:25:00.000Z&interval=PT5M&metricnames=Percentage CPU&aggregation=average&api-version=2021-05-01

複数のリソースに対する同等のメトリック要求を次に示します。

GET https://management.azure.com/subscriptions/12345678-abcd-98765432-abcdef012345/providers/microsoft.Insights/metrics?timespan=2023-06-25T22:20:00.000Z/2023-06-26T22:25:00.000Z&interval=PT5M&metricnames=Percentage CPU&aggregation=average&api-version=2021-05-01&region=eastus&metricNamespace=microsoft.compute/virtualmachines&$filter=Microsoft.ResourceId eq '*'

Note

この例では、複数のリソース メトリック要求に対して Microsoft.ResourceId eq '*' フィルターが追加されます。 このフィルターは、サブスクリプションとリージョン内の仮想マシン リソースごとに個別の時系列を返すように API に指示します。 フィルターがないと、API はすべての VM の平均 CPU を集計した 1 つの時系列を返します。 各リソースの時系列は、次の戻り値の例に示すように、各時系列エントリの Microsoft.ResourceId メタデータ値によって区別されます。 このクエリでリソース ID が取得されない場合、空の時系列 "timeseries": [] が返されます。

{
    "timespan": "2023-06-25T22:35:00Z/2023-06-26T22:40:00Z",
    "interval": "PT6H",
    "value": [
        {
            "id": "subscriptions/12345678-abcd-98765432-abcdef012345/providers/Microsoft.Insights/metrics/Percentage CPU",
            "type": "Microsoft.Insights/metrics",
            "name": {
                "value": "Percentage CPU",
                "localizedValue": "Percentage CPU"
            },
            "displayDescription": "The percentage of allocated compute units that are currently in use by the Virtual Machine(s)",
            "unit": "Percent",
            "timeseries": [
                {
                    "metadatavalues": [
                        {
                            "name": {
                                "value": "Microsoft.ResourceId",
                                "localizedValue": "Microsoft.ResourceId"
                            },
                            "value": "/subscriptions/12345678-abcd-98765432-abcdef012345/resourceGroups/EASTUS-TESTING/providers/Microsoft.Compute/virtualMachines/TestVM1"
                        }
                    ],
                    "data": [
                        {
                            "timeStamp": "2023-06-25T22:35:00Z",
                            "average": 3.2618888888888886
                        },
                        {
                            "timeStamp": "2023-06-26T04:35:00Z",
                            "average": 4.696944444444445
                        },
                        {
                            "timeStamp": "2023-06-26T10:35:00Z",
                            "average": 6.19701388888889
                        },
                        {
                            "timeStamp": "2023-06-26T16:35:00Z",
                            "average": 2.630347222222222
                        },
                        {
                            "timeStamp": "2023-06-26T22:35:00Z",
                            "average": 21.288999999999998
                        }
                    ]
                },
                {
                    "metadatavalues": [
                        {
                            "name": {
                                "value": "Microsoft.ResourceId",
                                "localizedValue": "Microsoft.ResourceId"
                            },
                            "value": "/subscriptions/12345678-abcd-98765432-abcdef012345/resourceGroups/EASTUS-TESTING/providers/Microsoft.Compute/virtualMachines/TestVM2"
                        }
                    ],
                    "data": [
                        {
                            "timeStamp": "2023-06-25T22:35:00Z",
                            "average": 7.567069444444444
                        },
                        {
                            "timeStamp": "2023-06-26T04:35:00Z",
                            "average": 5.111835883171071
                        },
                        {
                            "timeStamp": "2023-06-26T10:35:00Z",
                            "average": 10.078277777777778
                        },
                        {
                            "timeStamp": "2023-06-26T16:35:00Z",
                            "average": 8.399097222222222
                        },
                        {
                            "timeStamp": "2023-06-26T22:35:00Z",
                            "average": 2.647
                        }
                    ]
                },
                {
                    "metadatavalues": [
                        {
                            "name": {
                                "value": "Microsoft.ResourceId",
                                "localizedValue": "Microsoft.ResourceId"
                            },
                            "value": "/subscriptions/12345678-abcd-98765432-abcdef012345/resourceGroups/Common-TESTING/providers/Microsoft.Compute/virtualMachines/CommonVM1"
                        }
                    ],
                    "data": [
                        {
                            "timeStamp": "2023-06-25T22:35:00Z",
                            "average": 6.892319444444444
                        },
                        {
                            "timeStamp": "2023-06-26T04:35:00Z",
                            "average": 3.5054305555555554
                        },
                        {
                            "timeStamp": "2023-06-26T10:35:00Z",
                            "average": 8.398817802503476
                        },
                        {
                            "timeStamp": "2023-06-26T16:35:00Z",
                            "average": 6.841666666666667
                        },
                        {
                            "timeStamp": "2023-06-26T22:35:00Z",
                            "average": 3.3850000000000002
                        }
                    ]
                }
            ],
            "errorCode": "Success"
        }
    ],
    "namespace": "microsoft.compute/virtualmachines",
    "resourceregion": "eastus"
}

複数のリソースに対するメトリックのクエリのトラブルシューティング

  • 空の時系列で "timeseries": [] が返されました

    • 指定した時間の範囲とフィルターで利用可能なデータがない場合、空の時系列が返されます。 最も一般的な原因は、データを含まない時間の範囲を指定することです。 たとえば、時間の範囲を将来の日付に設定した場合などです。
    • もう 1 つのよくある原因は、どのリソースにも一致しないフィルターを指定することです。 たとえば、サブスクリプションとリージョンの組み合わせのどのリソースにも存在しないディメンジョン値をフィルターで指定すると、"timeseries": [] が返されます。
  • ワイルドカード フィルター
    Microsoft.ResourceId eq '*' などのワイルドカード フィルターを使用すると、API はサブスクリプションとリージョン内のすべての resourceId の時系列を返します。 サブスクリプションとリージョンの組み合わせにリソースが含まれない場合、空の時系列が返されます。 ワイルドカード フィルターを使用しない同じクエリは、サブスクリプションやリージョンなど、要求されるディメンジョン経由で要求されたメトリックを集約した単一の時系列を返します。 サブスクリプションとリージョンの組み合わせにリソースがない場合、API は 0 の単一のデータ ポイントを持つ単一の時系列を返します。

  • 401 認可エラー:
    個別リソース メトリック API は、ユーザーがクエリ対象のリソースに対する監視閲覧者権限を持っていることを必要とします。 複数リソース メトリック API はサブスクリプション レベルの API であるため、ユーザーは、複数リソース メトリック API を使用するために、クエリ対象のサブスクリプションの監視閲覧者権限を持っている必要があります。 ユーザーがサブスクリプションのすべてのリソースに対して監視閲覧者権限を持っている場合でも、ユーザーがサブスクリプション自体に対する監視閲覧者権限を持っていないと、要求は失敗します。

次のステップ