Skip to main content

Azure Resources Graph client

Project description

llamazure.azgraph : Azure Resources Graph client

The llamazure.azgraph package provides a usable client for the Azure Resource Graph.

Benefits:

  • automatically queries all your subscriptions
  • no boilerplate
  • easily navigate paginated queries

azgraph

Usage

Create a Graph with the from_credential and any of the standard Azure credentials.

from azure.identity import DefaultAzureCredential

from llamazure.azgraph.azgraph import Graph

g = Graph.from_credential(DefaultAzureCredential())

Querying

Make a simple query with the q method, which will return your data directly:

>>> g.q("Resources | project id, name, type, location | limit 5")
[{'id': '/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg0/providers/Microsoft.Storage/storageAccounts/sa0', 'name': 'sa0', 'type': 'microsoft.storage/storageaccounts', 'location': 'canadacentral'}]

Or specify options with the query method, which will return the full result object:

>>> from llamazure.azgraph.models import Req

>>> g.query(Req(query="Resources | project id, name, type, location | limit 1", subscriptions=g.subscriptions, options={"$skip": 1},))
Res(req=Req(query='Resources | project id, name, type, location | limit 1', subscriptions=('00000000-0000-0000-0000-000000000000',), facets=(), managementGroupId=None, options={'$skip': 1}), totalRecords=1, count=1, resultTruncated='false', facets=[], data=[{'id': '/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/NetworkWatcherRG/providers/Microsoft.Network/networkWatchers/NetworkWatcher_canadacentral', 'name': 'NetworkWatcher_canadacentral', 'type': 'microsoft.network/networkwatchers', 'location': 'canadacentral'}], skipToken=None)

Retries

Every query can be automatically retried by the retry policy. You can modify this by setting the Graph.retry_policy attribute:

g.retry_policy = RetryPolicy(retries=10)

Pagination

Pagination is handled automatically. If you want to manually paginate, you can manually walk the pages:

req = Req(query="Resources | project id, name, type, location | limit 5", subscriptions=g.subscriptions)

res0 = g.query_single(req)
res1 = g.query_next(req, res0)
res2 = g.query_next(req, res1)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

llamazure_azgraph-0.1.1.tar.gz (5.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

llamazure_azgraph-0.1.1-py3-none-any.whl (6.0 kB view details)

Uploaded Python 3

File details

Details for the file llamazure_azgraph-0.1.1.tar.gz.

File metadata

  • Download URL: llamazure_azgraph-0.1.1.tar.gz
  • Upload date:
  • Size: 5.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for llamazure_azgraph-0.1.1.tar.gz
Algorithm Hash digest
SHA256 c38989cab85c3c34b409e6587c8ef9f8526e7332c22351f178a239679f7edb55
MD5 8f49a8e673ecdc3a3c467bb2c97a1b7a
BLAKE2b-256 a8ffa6dcc08c42ff08004e83d2da88dd372ad6540493b2a097ff96f1d0b8bdee

See more details on using hashes here.

File details

Details for the file llamazure_azgraph-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for llamazure_azgraph-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 f0975e28f208f033e297ed19b09fbe5afd6ab9821f5446757f7820ae2a740306
MD5 48be65d90f0a4412abdbc8322aaa8e1e
BLAKE2b-256 d1a3b3a4cfdbf43087238800013015b5483b556e3062566b710e9335f313bba8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page