Microsoft 365 API で調整をシミュレートする
通常、Microsoft 365 サーバーの負荷が高い場合、テスト テストは困難です はほとんど発生しません。 開発プロキシを使用すると、調整応答をシミュレートし、アプリケーションが正しく処理するかどうかを確認できます。
Microsoft 365 API の調整をシミュレートするには、 GraphRandomErrorPlugin と RetryAfterPlugin を使用します。 GraphRandomErrorPlugin
は、Microsoft 365 API の調整応答を返します。 RetryAfterPlugin
は、API の指示に従ってアプリがバックオフすることを確認します。
開始するには、開発プロキシ構成ファイルで GraphRandomErrorPlugin
と RetryAfterPlugin
を有効にします。
{
"$schema": "https://raw.githubusercontent.com/microsoft/dev-proxy/main/schemas/v0.14.1/rc.schema.json",
"plugins": [
{
"name": "RetryAfterPlugin",
"enabled": true,
"pluginPath": "~appFolder/plugins/dev-proxy-plugins.dll"
},
{
"name": "GraphRandomErrorPlugin",
"enabled": true,
"pluginPath": "~appFolder/plugins/dev-proxy-plugins.dll",
"configSection": "graphRandomErrorPlugin"
}
],
"urlsToWatch": [
"https://graph.microsoft.com/v1.0/*",
"https://graph.microsoft.com/beta/*",
"https://graph.microsoft.us/v1.0/*",
"https://graph.microsoft.us/beta/*",
"https://dod-graph.microsoft.us/v1.0/*",
"https://dod-graph.microsoft.us/beta/*",
"https://microsoftgraph.chinacloudapi.cn/v1.0/*",
"https://microsoftgraph.chinacloudapi.cn/beta/*",
"!https://*.sharepoint.*/*_api/web/GetClientSideComponents",
"https://*.sharepoint.*/*_api/*",
"https://*.sharepoint.*/*_vti_bin/*",
"https://*.sharepoint-df.*/*_api/*",
"https://*.sharepoint-df.*/*_vti_bin/*"
]
}
注意事項
構成ファイルのGraphRandomErrorPlugin
の前にRetryAfterPlugin
を追加します。 後で追加した場合、RetryAfterPlugin
が処理する前にGraphRandomErrorPlugin
によって要求が失敗します。
次に、調整エラーをシミュレートするように GraphRandomErrorPlugin
を構成します。
{
"$schema": "https://raw.githubusercontent.com/microsoft/dev-proxy/main/schemas/v0.14.1/rc.schema.json",
"plugins": [
{
"name": "RetryAfterPlugin",
"enabled": true,
"pluginPath": "~appFolder/plugins/dev-proxy-plugins.dll"
},
{
"name": "GraphRandomErrorPlugin",
"enabled": true,
"pluginPath": "~appFolder/plugins/dev-proxy-plugins.dll",
"configSection": "graphRandomErrorPlugin"
}
],
"urlsToWatch": [
"https://graph.microsoft.com/v1.0/*",
"https://graph.microsoft.com/beta/*",
"https://graph.microsoft.us/v1.0/*",
"https://graph.microsoft.us/beta/*",
"https://dod-graph.microsoft.us/v1.0/*",
"https://dod-graph.microsoft.us/beta/*",
"https://microsoftgraph.chinacloudapi.cn/v1.0/*",
"https://microsoftgraph.chinacloudapi.cn/beta/*",
"!https://*.sharepoint.*/*_api/web/GetClientSideComponents",
"https://*.sharepoint.*/*_api/*",
"https://*.sharepoint.*/*_vti_bin/*",
"https://*.sharepoint-df.*/*_api/*",
"https://*.sharepoint-df.*/*_vti_bin/*"
],
"graphRandomErrorPlugin": {
"allowedErrors": [ 429 ]
}
}
構成ファイルで開発プロキシを起動し、アプリをテストして、調整がどのように処理されるかを確認します。
調整されたときにアプリケーションがバックオフしたが、要求で指定された時間待機しない場合は、 Calling https://graph.microsoft.com/v1.0/endpoint again before waiting for the Retry-After period. Request will be throttled
のようなメッセージが表示されます。
このメッセージは、アプリケーションが調整を正しく処理せず、不必要に調整を長引かせることを示します。 アプリで調整を処理する方法を改善するには、要求を再試行する前に、 Retry-After
ヘッダーで指定された時間待機するようにコードを更新します。
Dev Proxy