|
1 | 1 | ---
|
2 | 2 | title: Guidance for throttled requests
|
3 | 3 | description: Learn to group, stagger, paginate, and query in parallel to avoid requests being throttled by Azure Resource Graph.
|
4 |
| -ms.date: 09/13/2021 |
| 4 | +author: timwarner-msft |
| 5 | +ms.author: timwarner |
| 6 | +ms.date: 08/18/2022 |
5 | 7 | ms.topic: conceptual
|
6 | 8 | ms.custom: devx-track-csharp
|
7 | 9 | ---
|
@@ -217,21 +219,21 @@ looking for. However, some Azure Resource Graph clients handle pagination differ
|
217 | 219 | ```csharp
|
218 | 220 | var results = new List<object>();
|
219 | 221 | var queryRequest = new QueryRequest(
|
220 |
| - subscriptions: new[] { mySubscriptionId }, |
221 |
| - query: "Resources | project id, name, type"); |
| 222 | + subscriptions: new[] { mySubscriptionId }, |
| 223 | + query: "Resources | project id, name, type"); |
222 | 224 | var azureOperationResponse = await this.resourceGraphClient
|
223 |
| - .ResourcesWithHttpMessagesAsync(queryRequest, header) |
224 |
| - .ConfigureAwait(false); |
225 |
| - while (!string.Empty(azureOperationResponse.Body.SkipToken)) |
| 225 | + .ResourcesWithHttpMessagesAsync(queryRequest, header) |
| 226 | + .ConfigureAwait(false); |
| 227 | + while (!string.IsNullOrEmpty(azureOperationResponse.Body.SkipToken)) |
226 | 228 | {
|
227 |
| - queryRequest.SkipToken = azureOperationResponse.Body.SkipToken; |
228 |
| - // Each post call to ResourceGraph consumes one query quota |
229 |
| - var azureOperationResponse = await this.resourceGraphClient |
230 |
| - .ResourcesWithHttpMessagesAsync(queryRequest, header) |
231 |
| - .ConfigureAwait(false); |
232 |
| - results.Add(azureOperationResponse.Body.Data.Rows); |
| 229 | + queryRequest.Options ??= new QueryRequestOptions(); |
| 230 | + queryRequest.Options.SkipToken = azureOperationResponse.Body.SkipToken; |
| 231 | + var azureOperationResponse = await this.resourceGraphClient |
| 232 | + .ResourcesWithHttpMessagesAsync(queryRequest, header) |
| 233 | + .ConfigureAwait(false); |
| 234 | + results.Add(azureOperationResponse.Body.Data.Rows); |
233 | 235 |
|
234 |
| - // Inspect throttling headers in query response and delay the next call if needed. |
| 236 | + // Inspect throttling headers in query response and delay the next call if needed. |
235 | 237 | }
|
236 | 238 | ```
|
237 | 239 |
|
|
0 commit comments