Discovery Performance Enhancements
Pre-release
Pre-release
This release includes a number of updates designed to improve control over discovery, and provide better discovery performance for large environments.
Changes include:
- Improve
CacheMode
functionality and addDiscoveryMode
to enable better control of discovery for IAM and Policy - Bugfix for
Sort-Object
error when runningNew-AzStateDiscovery
with multiple types selected - Improved resource type coverage when generating the
Parent
,Parents
andParentPath
andResourcePath
properties - Added the following AtScope methods to simplify discovering which IAM and Policy objects are applied directly at the scope of the current AzState object, rather than all inherited objects:
[AzState].GetRoleAssignmentsAtScope()
[AzState].GetRoleDefinitionsAtScope()
[AzState].GetPolicyAssignmentsAtScope()
[AzState].GetPolicyDefinitionsAtScope()
[AzState].GetPolicySetDefinitionsAtScope()
- General improvements to logging, including the addition of logs in the
Information
stream to provide better visibility of discovery progress without enabling fullVerbose
stream logs - Added new static property
[AzState]::ParentMap
to act as Cache for storing a list of parent IDs for Management Groups and Subscriptions, providing improved performance by reducing lookup complexity for theGetParent
method - Added case sensitivity control for AzState caches with default setting to ignore case
[AzState]::DefaultCacheCaseSenstive = $false
- this helps improve discovery performance by reducing the number of false cache misses due to mismatching case being returned from the ARM API, but can be easily set back to case-sensitive if needed for specific use-cases