person Tia Zanella
calendar_add_on Created April 5, 2026
update Updated June 7, 2026
Share
download Download MD

Produttore OSIRIS JSON per Microsoft Azure

Il produttore OSIRIS JSON per Azure si connette a Microsoft Azure tramite Azure CLI (az) e genera snapshot OSIRIS JSON della topologia della tua sottoscrizione. A partire da v0.5.0, il produttore copre i livelli di rete, calcolo, storage, identità, database, container, integrazione, osservabilità, backup, automazione e gruppi di gestione, includendo le relative dipendenze tra risorse (Private Endpoint verso target PaaS, App Service verso App Insights, Log Analytics, RSV, Backup Vault verso elementi protetti, AKS verso subnet e node pool, ecc.).

Per iniziare a usare OSIRIS JSON per Microsoft Azure, installa il dispatcher principale e il produttore OSIRIS JSON per Microsoft Azure:

go install go.osirisjson.org/producers/cmd/osirisjson-producer@latest
go install go.osirisjson.org/producers/cmd/osirisjson-producer-azure@latest

Il dispatcher principale consente di eseguire osirisjson-producer azure .... Senza di esso, invoca direttamente il binario del vendor come osirisjson-producer-azure ....

Assicurati che $GOPATH/bin (o $HOME/go/bin) sia nel tuo PATH. Consulta la pagina getting started per ulteriori opzioni di installazione.

Prerequisiti

  1. Installa Azure CLI
  2. Autenticati: az login
  3. L’utente autenticato deve avere il ruolo Reader (o un’autorizzazione di lettura equivalente) sulle sottoscrizioni di destinazione. Per la raccolta completa dei dati, incluse le effective route, l’utente necessita anche dell’autorizzazione Microsoft.Network/networkInterfaces/effectiveRouteTable/action (inclusa in Network Contributor e ruoli superiori). Se questa autorizzazione è assente, il produttore salta la raccolta delle effective route con un log INFO e continua normalmente.

Puoi eseguire il produttore sulla tua macchina locale oppure invocarlo tramite un job schedulato con un account di servizio sulla piattaforma che preferisci.

Utilizzo della CLI

osirisjson-producer azure [flags]
osirisjson-producer azure template --generate

Modalità singola

Inizia raccogliendo una sottoscrizione, che verrà salvata automaticamente come microsoft-azure-<timestamp>-<name>.json:

osirisjson-producer azure -S a1b2c3d4-e5f6-7890-abcd-ef1234567890

Modalità interattiva

Esegui senza flag per ottenere un selettore interattivo delle sottoscrizioni:

osirisjson-producer azure

Il produttore rileva tutte le sottoscrizioni accessibili e presenta un elenco numerato. Seleziona usando numeri singoli (1,3,5), intervalli (30-55), combinazioni (1,3,30-55) oppure digita all.

Modalità multi-sottoscrizione

Raccogli più sottoscrizioni in una directory di output:

# Specific subscriptions
osirisjson-producer azure -S sub-id-1,sub-id-2,sub-id-3 -o ./output

# All accessible subscriptions (auto-discover)
osirisjson-producer azure --all -o ./output

# All subscriptions in a specific tenant
osirisjson-producer azure --all --tenant f1e2d3c4-b5a6-9078-fedc-ba9876543210 -o ./output

Modalità batch (CSV)

Genera un template CSV:

osirisjson-producer azure template --generate

Raccogli da un file CSV:

osirisjson-producer azure -s subscriptions.csv -o ./output

Il template CSV usa queste colonne:

ColonnaObbligatorioDescrizione
subscription_idUUID della sottoscrizione Azure
subscription_nameEtichetta leggibile da persone (usata come nome del file di output)
tenant_idUUID del tenant Azure AD / Entra ID
environmentFase di deployment: dv, np, pr (sviluppo, non produzione, produzione)
regionFiltra per regione Azure (vuoto = tutte le regioni)
notesNote in testo libero (ignorate dal produttore)

Gerarchia di output

Modalità singola: salva in microsoft-azure-<timestamp>-<name>.json nella directory corrente.

Modalità multi/batch/all: organizzate per tenant e timestamp:

output/
  <TenantID>/
    <timestamp>/
      <SubscriptionName>.json

Ogni sottoscrizione produce un documento OSIRIS autonomo. I riferimenti tra sottoscrizioni (ad esempio peering VNet o connessioni ExpressRoute verso sottoscrizioni remote) sono emessi come risorse stub con provider.subscription impostato sull’ID della sottoscrizione remota, in modo che l’arco di topologia attraversi il confine mentre il documento resta valido.

Ambienti multi-tenant

Esegui il produttore una volta per tenant. Ogni az login autentica verso un tenant. Usa az login --tenant <tenant-id> per cambiare tenant. La gerarchia di output raggruppa automaticamente i documenti per tenant.

Riferimento delle flag

FlagAbbreviazioneDescrizione
--subscription-SID delle sottoscrizioni Azure, separati da virgola
--allRileva automaticamente tutte le sottoscrizioni accessibili
--source-sFile CSV con i target di sottoscrizione
--output-oDirectory di output (obbligatoria per modalità multi/all/CSV)
--tenantID del tenant Azure AD / Entra ID (opzionale)
--regionFiltra per una regione Azure specifica (opzionale)
--purposeGrado di dettaglio dell’output: documentation (predefinito) o audit. Vedi Scopo sotto
--safe-failure-modeGestione dei segreti: fail-closed (predefinito), log-and-redact, off
--version / -vMostra la versione ed esce
--helpMostra l’aiuto ed esce

Scopo

La flag --purpose implementa il capitolo 13.1.3 della specifica OSIRIS JSON (minimizzazione dei dati). La raccolta è sempre esaustiva; l’emissione è modellata dallo scopo dichiarato, così la stessa esecuzione del produttore può servire sia casi d’uso di visualizzazione leggera sia casi d’uso di audit / compliance.

ValoreComportamento
documentation (predefinito)Campi minimi: identità, tipo, tracciabilità del provider, nomi, tag e relazioni di alto livello. Le mappe properties ed extensions per risorsa vengono rimosse. Adatto a diagrammi, dashboard di inventario e documentazione di alto livello.
auditOgni campo leggibile, dopo la redazione dei campi sensibili. Mappe properties ed extensions complete per ogni risorsa, connessione e gruppo. Adatto a revisioni di compliance, audit, drift di configurazione o documentazione approfondita e progettazione accurata della topologia.

Il valore selezionato viene registrato nel documento in metadata.scope.purpose, così i consumer possono capire quale grado di dettaglio stanno leggendo.

[!IMPORTANT] I segreti sono sempre redatti indipendentemente dallo scopo. La proiezione di audit aggiunge dettagli (indirizzi IP, regole NSG, sottocampi SKU, dettagli BGP, ecc.); non aggiunge mai materiale di autenticazione. Password amministrative dei database, chiavi di accesso Cosmos / Redis / Service Bus / Event Hubs, chiavi di strumentazione di App Insights e chiavi condivise di Log Analytics non vengono mai raccolte.

# Default: documentation (minimal projection)
osirisjson-producer azure -S a1b2c3d4-e5f6-7890-abcd-ef1234567890

# Audit: full ARM fidelity
osirisjson-producer azure -S a1b2c3d4-e5f6-7890-abcd-ef1234567890 --purpose audit

Cosa raccoglie il produttore OSIRIS JSON per Microsoft Azure

Il produttore OSIRIS JSON per Microsoft Azure raccoglie a ogni esecuzione un inventario completo dei tipi di risorsa supportati tramite Azure CLI. Le tabelle seguenti raggruppano ciò che viene interrogato.

Rete

Risorsa Microsoft AzureTipo OSIRIS JSON
Virtual Networksnetwork.vpc
Subnetsnetwork.subnet
Network Interfacesnetwork.interface
Network Security Groupsnetwork.security.group
Application Security Groupsosiris.azure.asg
Route Tablesosiris.azure.routetable
Public IP Addressesosiris.azure.publicip
Public IP Prefixesosiris.azure.publicipprefix
Load Balancers (L4)network.loadbalancer
Application Gateways (L7)osiris.azure.applicationgateway
Azure Firewallsnetwork.firewall
NAT Gatewaysosiris.azure.gateway.nat
VNet Gateways (VPN / ExpressRoute)osiris.azure.gateway.vnet
Route Serversosiris.azure.routeserver
ExpressRoute Circuitsosiris.azure.expressroute
VPN Gateway Connectionsosiris.azure.vpnconnection
Private Endpointsosiris.azure.privateendpoint
DNS Zonesosiris.azure.dns.zone
Private DNS Zonesosiris.azure.dns.privatezone
DNS Private Resolversosiris.azure.dns.resolver
DNS Forwarding Rulesetsosiris.azure.dns.forwardingruleset
Azure Bastionosiris.azure.bastion
Traffic Manager Profilesosiris.azure.trafficmanager
Availability Setsosiris.azure.availabilityset

Calcolo

Risorsa Microsoft AzureTipo OSIRIS JSON
Virtual Machinescompute.vm
VM Scale Setsosiris.azure.vmss
Managed Disksosiris.azure.disk
Managed Snapshotsosiris.azure.snapshot
Azure Arc Machinesosiris.azure.arc.machine

Storage

Risorsa Microsoft AzureTipo OSIRIS JSON
Storage Accountsosiris.azure.storage

App Service / livello web

Risorsa Microsoft AzureTipo OSIRIS JSON
App Service Planosiris.azure.appserviceplan
Web Apposiris.azure.webapp
Web App Deployment Slotosiris.azure.webapp.slot
Function Apposiris.azure.functionapp

Routing di App Service: i siti il cui kind contiene functionapp sono emessi come osiris.azure.functionapp; tutti gli altri siti sono emessi come osiris.azure.webapp.

Identità e sicurezza

Risorsa Microsoft AzureTipo OSIRIS JSON
Key Vaultosiris.azure.keyvault
Container Registryosiris.azure.containerregistry
User-Assigned Managed Identityosiris.azure.managedidentity

Backup e disaster recovery

Risorsa Microsoft AzureTipo OSIRIS JSON
Recovery Services Vaultosiris.azure.recoveryservicesvault
Backup Vault (Azure Backup)osiris.azure.backupvault

Database

Risorsa Microsoft AzureTipo OSIRIS JSON
SQL Serverosiris.azure.sqlserver
SQL Databaseosiris.azure.sqldatabase
SQL Elastic Poolosiris.azure.sql.elasticpool
SQL Managed Instanceosiris.azure.sqlmi
SQL MI Databaseosiris.azure.sqlmidatabase
SQL Virtual Machineosiris.azure.sqlvm
PostgreSQL Flexible Serverosiris.azure.postgresqlserver
MySQL Flexible Serverosiris.azure.mysqlserver
Cosmos DB accountosiris.azure.cosmosaccount
Redis Cacheosiris.azure.redis

Container

Risorsa Microsoft AzureTipo OSIRIS JSON
AKS Clusterosiris.azure.aks.cluster
AKS Agent Poolosiris.azure.aks.nodepool
Container App Managed Environmentosiris.azure.containerapp.environment
Container Apposiris.azure.containerapp
Container Group / ACIosiris.azure.containergroup

Integrazione e messaggistica

Risorsa Microsoft AzureTipo OSIRIS JSON
Service Bus Namespaceosiris.azure.servicebus.namespace
Event Hubs Namespaceosiris.azure.eventhubs.namespace
API Management Serviceosiris.azure.apim
Front Door (Standard / Premium)osiris.azure.frontdoor.profile
Stream Analyticsosiris.azure.streamanalytics
Event Grid System Topicosiris.azure.eventgrid.systemtopic

Automazione e workflow

Risorsa Microsoft AzureTipo OSIRIS JSON
Logic Workflowosiris.azure.logic.workflow
Logic API Connectionosiris.azure.logic.apiconnection
Data Factoryosiris.azure.datafactory
Synapse Workspaceosiris.azure.synapse.workspace
Automation Accountosiris.azure.automation.account
Communication Serviceosiris.azure.communicationservice
Email Communication Serviceosiris.azure.emailservice
Email Communication Domainosiris.azure.emailservice.domain

Osservabilità

Risorsa Microsoft AzureTipo OSIRIS JSONNota
Application Insightsosiris.azure.applicationinsights
Log Analytics Workspaceosiris.azure.loganalytics
Data Collection Ruleosiris.azure.monitor.datacollectionrule
Data Collection Endpointosiris.azure.monitor.datacollectionendpoint
Autoscale Settingosiris.azure.monitor.autoscale
Metric Alertosiris.azure.monitor.metricalertsolo --purpose audit
Action Grouposiris.azure.monitor.actiongroupsolo --purpose audit

Le risorse Metric Alert e Action Group sono limitate a --purpose audit perché sono costrutti di policy di osservabilità, non risorse di topologia; con lo scopo predefinito documentation non vengono emesse.

Contenimento

Risorsa Microsoft AzureTipo OSIRIS JSON
Gruppi di risorsecontainer.resourcegroup

Cosa non viene raccolto intenzionalmente

OSIRIS JSON definisce un formato JSON vendor-neutral per descrivere risorse infrastrutturali, le loro proprietà e le loro relazioni topologiche - non è un formato Infrastructure-as-Code o simile. Puoi approfondire qui: Cos’è OSIRIS JSON. I seguenti elementi sono intenzionalmente fuori ambito:

  • Policy di backup / retention sotto Recovery Services Vault e Backup Vault (i vault e gli archi verso gli elementi protetti sono emessi; i corpi delle policy no).
  • Policy del livello database: auditing SQL, threat-detection, TDE, regole firewall, security-alert-policy.
  • Policy, prodotti, operazioni e named value di API Management.
  • Route, rule set, endpoint e associazioni di policy WAF di Front Door (il profilo viene emesso; il routing no).
  • Segreti di Container App e variabili di ambiente ACI.
  • Enumerazione dei diagnostic setting per risorsa (aggiungerebbe una chiamata az per risorsa).
  • Azure Front Door classico (Microsoft.Network/frontDoors, deprecato).
  • Microsoft.DBforPostgreSQL/servers legacy (single server, end-of-life nella roadmap di Azure).

Struttura dell’output OSIRIS JSON per Microsoft Azure

{
  "$schema": "https://osirisjson.org/schema/v1.0/osiris.schema.json",
  "version": "1.0.0",
  "metadata": {
    "generator": {
      "name": "osirisjson-producer-azure",
      "version": "0.5.0",
      "url": "https://osirisjson.org/en/docs/producers/hyperscalers/microsoft-azure"
    },
    "scope": {
      "name": "<subscription-id> - <subscription-name>",
      "purpose": "documentation",
      "providers": ["azure"],
      "accounts": ["<tenant-id>"],
      "subscriptions": ["<subscription-id>"],
      "regions": ["westeurope", "eastus2"]
    }
  },
  "topology": {
    "resources": [ ... ],
    "connections": [ ... ],
    "groups": [ ... ]
  }
}

Tipi di connessione

Gli archi di connessione usano i sottotipi standard di OSIRIS JSON v1.0 secondo il capitolo 5.2.3 della specifica, così i consumer possono distinguere i livelli della topologia.

Tipo di connessione OSIRIS JSONUsato per
containsContenimento (Subnet dentro VNet, App Service Plan dentro sito, AKS Cluster dentro node pool, RG dentro Subscription, SQL Server dentro SQL Database, SQL MI dentro SQL MI Database, Disk sorgente dentro Snapshot, VM dentro Disk collegato)
networkConnettività di rete generica (NIC verso subnet, associazioni NSG, link DNS, connessioni gateway, App Insights verso workspace, Web App verso App Insights, AKS / Redis / ACI verso subnet, APIM verso subnet)
network.peeringPeering VNet
network.vpnConnessioni gateway VPN
network.bgpConnessioni circuito ExpressRoute
dependencyPrivate Endpoint verso target PaaS (Web App, Function App, Key Vault, Container Registry, Recovery Services Vault, cluster AKS, Service Bus, Event Hubs, APIM)
dependency.storagePrivate Endpoint verso Storage Account
dependency.databasePrivate Endpoint verso database (SQL Server, Cosmos DB, Redis)

Tipi di gruppo

Tipo di gruppo OSIRIS JSONUsato per
logical.subscriptionGruppo di sottoscrizione di primo livello. Con --purpose audit ottiene extensions.osiris.azure.management_group_path (array JSON di display name, dalla root alla leaf).
logical.resourcegroupGruppi di resource group (figli della sottoscrizione)
logical.managementgroupUn gruppo per ogni management group nella catena di ancestry del tenant (dalla root al parent della sottoscrizione). Ogni gruppo elenca le sue sottoscrizioni figlie dirette e i management group figli come children.
container.regionUn gruppo per ogni provider.region distinto osservato nella sottoscrizione, che include come membri tutte le risorse in quella regione. La regione global e le risorse senza regione vengono saltate. Il token di confine è <subscription-id>/<region>, quindi i gruppi non collidono mai tra sottoscrizioni.

Tipi di risorsa

I tipi di risorsa seguono la specifica OSIRIS JSON v1.0. I tipi standard sono usati dove definiti; i tipi specifici di Azure usano il namespace osiris.azure.*.

Tipi standard:

  • container.resourcegroup - Gruppi di risorse
  • network.vpc - Reti virtuali
  • network.subnet - Subnet
  • network.interface - Interfacce di rete
  • network.security.group - Network security group
  • network.loadbalancer - Load balancer (solo L4; gli Application Gateway usano osiris.azure.applicationgateway)
  • network.firewall - Azure Firewalls
  • compute.vm - Macchine virtuali

Estensioni (osiris.azure)

I dati specifici di Azure che non mappano a proprietà OSIRIS JSON portabili sono emessi sotto il namespace di estensione osiris.azure. Questo segue la specifica OSIRIS JSON: properties contiene dati comuni / portabili, extensions contiene dati approfonditi specifici del vendor. Le estensioni sono emesse solo con --purpose audit.

Le estensioni rappresentative includono:

Tipo di risorsa OSIRIS JSONCampi di estensione selezionati
network.interfaceenable_accelerated_networking, effective_routes[]
network.security.groupdefault_security_rules[]
osiris.azure.expressroutesku, sku_tier, service_provider, peerings[] (tipo di peering BGP, stato, ASN del peer, ID VLAN, prefissi di indirizzo)
osiris.azure.webapp / osiris.azure.functionappmanaged_identity, outbound_vnet_routing, private_endpoint_connection_ids[], app_insights_id
osiris.azure.storage / osiris.azure.keyvault / osiris.azure.containerregistry / osiris.azure.recoveryservicesvault / osiris.azure.sqlserver / osiris.azure.cosmosaccountprivate_endpoint_connection_ids[]
osiris.azure.applicationinsightsworkspace_resource_id (workspace Log Analytics associato)
osiris.azure.loganalyticscustomer_id (UUID del workspace usato da KQL; non è un segreto)
logical.subscriptionosiris.azure.management_group_path (array di display name MG, dalla root alla leaf; solo audit)

[!NOTE] network.security.group security_rules[] (regole definite dall’utente) sono emesse in properties, non in extensions, perché sono un segnale primario di topologia. Solo default_security_rules[] (regole baseline gestite da Azure) va in extensions.

Anche network.interface private_ip viene emesso in properties per lo stesso motivo.

Metadati del provider

Ogni risorsa include provider.type con il tipo di risorsa ARM nativo (ad esempio Microsoft.Network/virtualNetworks, Microsoft.Compute/virtualMachines). Gli stub tra sottoscrizioni includono provider.subscription con l’ID della sottoscrizione remota. Tutte le risorse includono provider.source impostato a azure-cli.

ID delle risorse

Gli ID delle risorse Azure seguono il pattern azure::<ARM-resource-id>, usando l’ID risorsa ARM completo come identificatore nativo. Questo garantisce ID globalmente univoci e deterministici che sopravvivono alla correlazione tra sottoscrizioni.

Canonicalizzazione delle regioni

provider.region e metadata.scope.regions sono canonicalizzati nella forma slug di Azure (minuscolo, senza spazi). La CLI az restituisce location in modo non uniforme tra i tipi di risorsa: la maggior parte delle risorse ARM usa westeurope / eastus2, mentre App Service Plan e Web App espongono la forma di visualizzazione (West Europe). Il produttore normalizza allo slug in modo che una sottoscrizione a singola regione non appaia come due regioni in metadata.scope.regions.

Requisiti RBAC

Livello di autorizzazioneCosa viene raccolto
ReaderTutti i tipi di risorsa, proprietà, estensioni (regole NSG, peering ER, connessioni gateway, peering VNet, link DNS, archi da Private Endpoint a target, App Service verso App Insights, AKS, risorse container, database, messaggistica e osservabilità)
Reader + effectiveRouteTable/actionTutto quanto sopra + effective route delle NIC
Network Contributor / OwnerDataset completo senza restrizioni

Il produttore verifica l’autorizzazione sulla prima NIC e salta in modo controllato la raccolta delle effective route se l’autorizzazione viene negata. Tutti gli altri dati vengono raccolti comunque.

Esempi

Sottoscrizione singola

Esploreremo una singola sottoscrizione nel nostro tenant e genereremo da Microsoft Azure un documento OSIRIS JSON.

osirisjson-producer azure -S a1b2c3d4-e5f6-7890-abcd-ef1234567890 --purpose audit

Documento di output OSIRIS JSON (ridotto, --purpose audit):

{
  "$schema": "https://osirisjson.org/schema/v1.0/osiris.schema.json",
  "version": "1.0.0",
  "metadata": {
    "generator": {
      "name": "osirisjson-producer-azure",
      "version": "0.5.0",
      "url": "https://osirisjson.org/en/docs/producers/hyperscalers/microsoft-azure"
    },
    "scope": {
      "name": "a1b2c3d4-e5f6-7890-abcd-ef1234567890 - my-nonprod-subscription",
      "purpose": "audit",
      "providers": ["azure"],
      "accounts": ["f1e2d3c4-b5a6-9078-fedc-ba9876543210"],
      "subscriptions": ["a1b2c3d4-e5f6-7890-abcd-ef1234567890"],
      "regions": ["westeurope"]
    }
  },
  "topology": {
    "resources": [
      {
        "id": "azure::/subscriptions/a1b2c3d4/resourceGroups/network-rg/providers/Microsoft.Network/virtualNetworks/hub-vnet",
        "type": "network.vpc",
        "name": "hub-vnet",
        "status": "active",
        "provider": {
          "name": "azure",
          "native_id": "/subscriptions/a1b2c3d4/resourceGroups/network-rg/providers/Microsoft.Network/virtualNetworks/hub-vnet",
          "type": "Microsoft.Network/virtualNetworks",
          "region": "westeurope",
          "source": "azure-cli",
          "subscription": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
          "tenant": "f1e2d3c4-b5a6-9078-fedc-ba9876543210"
        },
        "properties": {
          "resource_group": "network-rg",
          "address_space": ["10.0.0.0/16"],
          "dns_servers": ["10.0.0.4"],
          "subnet_count": 4,
          "enable_ddos_protection": false,
          "peerings": [
            {
              "name": "hub-to-spoke",
              "peering_state": "Connected",
              "remote_vnet_id": "/subscriptions/a1b2c3d4/.../spoke-vnet",
              "allow_gateway_transit": true,
              "allow_forwarded_traffic": true
            }
          ]
        }
      },
      {
        "id": "azure::/subscriptions/a1b2c3d4/resourceGroups/data-rg/providers/Microsoft.Storage/storageAccounts/mystg",
        "type": "osiris.azure.storage",
        "name": "mystg",
        "status": "active",
        "provider": {
          "name": "azure",
          "native_id": "/subscriptions/a1b2c3d4/resourceGroups/data-rg/providers/Microsoft.Storage/storageAccounts/mystg",
          "type": "Microsoft.Storage/storageAccounts",
          "region": "westeurope",
          "source": "azure-cli",
          "subscription": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
          "tenant": "f1e2d3c4-b5a6-9078-fedc-ba9876543210"
        },
        "properties": {
          "resource_group": "data-rg",
          "sku_tier": "Standard",
          "sku_name": "Standard_LRS",
          "kind": "StorageV2",
          "access_tier": "Hot",
          "https_only": true,
          "min_tls_version": "TLS1_2",
          "public_network_access": "Disabled",
          "allow_blob_public_access": false
        },
        "extensions": {
          "osiris.azure": {
            "private_endpoint_connection_ids": [
              "/subscriptions/a1b2c3d4/.../privateEndpoints/pe-mystg"
            ]
          }
        }
      }
    ],
    "connections": [
      {
        "source": "azure::/subscriptions/a1b2c3d4/.../subnets/default",
        "target": "azure::/subscriptions/a1b2c3d4/.../virtualNetworks/hub-vnet",
        "type": "contains",
        "direction": "forward"
      },
      {
        "source": "azure::/subscriptions/a1b2c3d4/.../privateEndpoints/pe-mystg",
        "target": "azure::/subscriptions/a1b2c3d4/.../storageAccounts/mystg",
        "type": "dependency.storage",
        "direction": "forward"
      }
    ],
    "groups": [
      {
        "id": "azure::subscription::a1b2c3d4-e5f6-7890-abcd-ef1234567890",
        "type": "logical.subscription",
        "name": "my-nonprod-subscription",
        "children": [
          "azure::resourcegroup::network-rg",
          "azure::resourcegroup::data-rg"
        ],
        "extensions": {
          "osiris.azure": {
            "management_group_path": ["Tenant Root Group", "Corp", "NonProd"]
          }
        }
      },
      {
        "id": "azure::managementgroup::NonProd",
        "type": "logical.managementgroup",
        "name": "NonProd",
        "children": [
          "azure::subscription::a1b2c3d4-e5f6-7890-abcd-ef1234567890"
        ]
      },
      {
        "id": "azure::region::a1b2c3d4-e5f6-7890-abcd-ef1234567890/westeurope",
        "type": "container.region",
        "name": "westeurope",
        "members": [
          "azure::/subscriptions/a1b2c3d4/.../virtualNetworks/hub-vnet",
          "azure::/subscriptions/a1b2c3d4/.../storageAccounts/mystg"
        ]
      }
    ]
  }
}

La stessa esecuzione con il valore predefinito --purpose documentation restituisce il grafo delle risorse identico, ma con le mappe properties ed extensions rimosse da ogni risorsa, connessione e gruppo, rendendolo adatto a viste topologiche di alto livello e documentazione.

edit_note

Help improve this page

Found an issue or want to contribute? Open an issue.