Skip to content

Discovery Performance Enhancements

Pre-release
Pre-release
Compare
Choose a tag to compare
@krowlandson krowlandson released this 09 Sep 10:08

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 add DiscoveryMode to enable better control of discovery for IAM and Policy
  • Bugfix for Sort-Object error when running New-AzStateDiscovery with multiple types selected
  • Improved resource type coverage when generating the Parent, Parents and ParentPath and ResourcePath 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 full Verbose 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 the GetParent 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