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

Producteur OSIRIS JSON pour Microsoft Azure

Le producteur OSIRIS JSON pour Azure se connecte à Microsoft Azure via Azure CLI (az) et génère des snapshots OSIRIS JSON de la topologie de votre abonnement. À partir de v0.5.0, le producteur couvre les couches réseau, calcul, stockage, identité, bases de données, conteneurs, intégration, observabilité, sauvegarde, automatisation et groupes de gestion, y compris leurs arêtes de dépendance entre ressources (Private Endpoint vers des cibles PaaS, App Service vers App Insights, Log Analytics, RSV, Backup Vault vers des éléments protégés, AKS vers des sous-réseaux et des pools de nœuds, etc.).

Pour commencer à utiliser OSIRIS JSON pour Microsoft Azure, installez le dispatcher principal et le producteur OSIRIS JSON pour Microsoft Azure:

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

Le dispatcher principal permet d’exécuter osirisjson-producer azure .... Sans celui-ci, invoquez directement le binaire du fournisseur avec osirisjson-producer-azure ....

Assurez-vous que $GOPATH/bin (ou $HOME/go/bin) se trouve dans votre PATH. Consultez la page getting started pour d’autres options d’installation.

Prérequis

  1. Installez Azure CLI
  2. Authentifiez-vous: az login
  3. L’utilisateur authentifié doit disposer du rôle Reader (ou d’une autorisation de lecture équivalente) sur le ou les abonnements cibles. Pour une collecte complète des données, y compris les routes effectives, l’utilisateur doit également disposer de l’autorisation Microsoft.Network/networkInterfaces/effectiveRouteTable/action (incluse dans Network Contributor et les rôles supérieurs). Si cette autorisation est absente, le producteur ignore la collecte des routes effectives avec un log INFO et continue normalement.

Vous pouvez exécuter le producteur sur votre machine locale ou l’invoquer à l’aide d’un job planifié avec un compte de service sur la plateforme de votre choix.

Utilisation de la CLI

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

Mode unique

Commencez par collecter un abonnement, qui sera automatiquement enregistré sous microsoft-azure-<timestamp>-<name>.json:

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

Mode interactif

Exécutez sans flags pour obtenir un sélecteur interactif d’abonnements:

osirisjson-producer azure

Le producteur découvre tous les abonnements accessibles et présente une liste numérotée. Sélectionnez avec des numéros individuels (1,3,5), des plages (30-55), des combinaisons (1,3,30-55) ou saisissez all.

Mode multi-abonnement

Collectez plusieurs abonnements dans un répertoire de sortie:

# 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

Mode batch (CSV)

Générez un modèle CSV:

osirisjson-producer azure template --generate

Collectez à partir d’un fichier CSV:

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

Le modèle CSV utilise ces colonnes:

ColonneObligatoireDescription
subscription_idouiUUID de l’abonnement Azure
subscription_nameouiLibellé lisible par un humain (utilisé comme nom de fichier de sortie)
tenant_idUUID du tenant Azure AD / Entra ID
environmentÉtape de déploiement: dv, np, pr (développement, non-production, production)
regionFiltre sur une région Azure (vide = toutes les régions)
notesNotes en texte libre (ignorées par le producteur)

Hiérarchie de sortie

Mode unique: enregistre dans microsoft-azure-<timestamp>-<name>.json dans le répertoire courant.

Modes multi/batch/all: organisés par tenant et timestamp:

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

Chaque abonnement produit un document OSIRIS autonome. Les références inter-abonnements (par exemple les peerings VNet ou les connexions ExpressRoute vers des abonnements distants) sont émises sous forme de ressources stub avec provider.subscription défini sur l’ID de l’abonnement distant, afin que l’arête de topologie survive à la limite tout en conservant la validité du document.

Environnements multi-tenant

Exécutez le producteur une fois par tenant. Chaque az login authentifie auprès d’un tenant. Utilisez az login --tenant <tenant-id> pour basculer. La hiérarchie de sortie regroupe automatiquement les documents par tenant.

Référence des flags

FlagCourtDescription
--subscription-SID d’abonnement Azure, séparés par des virgules
--allDécouvre automatiquement tous les abonnements accessibles
--source-sFichier CSV avec les abonnements cibles
--output-oRépertoire de sortie (obligatoire pour les modes multi/all/CSV)
--tenantID du tenant Azure AD / Entra ID (facultatif)
--regionFiltre sur une région Azure spécifique (facultatif)
--purposeNiveau de détail de la sortie: documentation (par défaut) ou audit. Voir Objectif ci-dessous
--safe-failure-modeGestion des secrets: fail-closed (par défaut), log-and-redact, off
--version / -vAffiche la version et quitte
--helpAffiche l’aide et quitte

Objectif

Le flag --purpose implémente le chapitre 13.1.3 de la spécification OSIRIS JSON (minimisation des données). La collecte est toujours exhaustive; l’émission est façonnée par l’objectif déclaré, afin qu’une même exécution du producteur puisse servir à la fois des cas d’usage de visualisation légère et des cas d’usage d’audit / conformité.

ValeurComportement
documentation (par défaut)Champs minimaux: identité, type, traçabilité du provider, noms, tags et relations de haut niveau. Les maps properties et extensions par ressource sont supprimées. Adapté aux diagrammes, tableaux de bord d’inventaire et documentation de haut niveau.
auditTous les champs lisibles, après masquage des champs sensibles. Maps properties et extensions complètes pour chaque ressource, connexion et groupe. Adapté aux revues de conformité, audits, dérive de configuration ou documentation approfondie et conception précise de la topologie.

La valeur sélectionnée est enregistrée dans le document sous metadata.scope.purpose, afin que les consommateurs puissent identifier le niveau de détail qu’ils lisent.

[!IMPORTANT] Les secrets sont toujours masqués, quel que soit l’objectif. La projection d’audit ajoute des détails (adresses IP, règles NSG, sous-champs SKU, détails BGP, etc.); elle n’ajoute jamais de matériel d’authentification. Les mots de passe administrateur de base de données, les clés d’accès Cosmos / Redis / Service Bus / Event Hubs, les clés d’instrumentation App Insights et les clés partagées Log Analytics ne sont jamais collectés.

# 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

Ce que collecte le producteur OSIRIS JSON pour Microsoft Azure

Le producteur OSIRIS JSON pour Microsoft Azure collecte à chaque exécution un inventaire complet des types de ressources pris en charge via Azure CLI. Les tableaux suivants regroupent ce qui est interrogé.

Réseau

Ressource Microsoft AzureType 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

Calcul

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

Stockage

Ressource Microsoft AzureType OSIRIS JSON
Storage Accountsosiris.azure.storage

App Service / couche web

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

Routage App Service: les sites dont kind contient functionapp sont émis comme osiris.azure.functionapp; tous les autres sites sont émis comme osiris.azure.webapp.

Identité et sécurité

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

Sauvegarde et reprise après sinistre

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

Bases de données

Ressource Microsoft AzureType 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

Conteneurs

Ressource Microsoft AzureType 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

Intégration et messagerie

Ressource Microsoft AzureType 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

Automatisation et workflows

Ressource Microsoft AzureType 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

Observabilité

Ressource Microsoft AzureType OSIRIS JSONNote
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.metricalert--purpose audit uniquement
Action Grouposiris.azure.monitor.actiongroup--purpose audit uniquement

Les ressources Metric Alert et Action Group sont limitées à --purpose audit, car ce sont des constructions de politique d’observabilité et non des ressources de topologie; avec l’objectif par défaut documentation, elles ne sont pas émises.

Contenance

Ressource Microsoft AzureType OSIRIS JSON
Groupes de ressourcescontainer.resourcegroup

Ce qui n’est intentionnellement pas collecté

OSIRIS JSON définit un format JSON neutre vis-à-vis des fournisseurs pour décrire les ressources d’infrastructure, leurs propriétés et leurs relations topologiques - ce n’est pas un format Infrastructure-as-Code ni un format similaire. Vous pouvez en savoir plus ici: Qu’est-ce qu’OSIRIS JSON. Les éléments suivants sont intentionnellement hors périmètre:

  • Politiques de sauvegarde / rétention sous Recovery Services Vault et Backup Vault (les vaults et les arêtes vers les éléments protégés sont émis; les corps des politiques ne le sont pas).
  • Politique de couche base de données: audit SQL, détection de menaces, TDE, règles de pare-feu, security-alert-policy.
  • Politiques, produits, opérations et valeurs nommées d’API Management.
  • Routes, jeux de règles, endpoints et associations de politiques WAF de Front Door (le profil est émis; le routage ne l’est pas).
  • Secrets de Container App et variables d’environnement ACI.
  • Énumération des diagnostic settings par ressource (ajouterait un appel az par ressource).
  • Azure Front Door classique (Microsoft.Network/frontDoors, déprécié).
  • Microsoft.DBforPostgreSQL/servers hérité (single server, en fin de vie dans la roadmap Azure).

Structure de sortie OSIRIS JSON pour 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": [ ... ]
  }
}

Types de connexion

Les arêtes de connexion utilisent les sous-types standard OSIRIS JSON v1.0 conformément au chapitre 5.2.3 de la spécification, afin que les consommateurs puissent distinguer les couches de topologie.

Type de connexion OSIRIS JSONUtilisé pour
containsContenance (Subnet dans VNet, App Service Plan dans site, AKS Cluster dans node pool, RG dans Subscription, SQL Server dans SQL Database, SQL MI dans SQL MI Database, Disk source dans Snapshot, VM dans Disk attaché)
networkConnectivité réseau générique (NIC vers subnet, associations NSG, liens DNS, connexions de gateway, App Insights vers workspace, Web App vers App Insights, AKS / Redis / ACI vers subnet, APIM vers subnet)
network.peeringPeerings VNet
network.vpnConnexions de gateway VPN
network.bgpConnexions de circuit ExpressRoute
dependencyPrivate Endpoint vers cible PaaS (Web App, Function App, Key Vault, Container Registry, Recovery Services Vault, cluster AKS, Service Bus, Event Hubs, APIM)
dependency.storagePrivate Endpoint vers Storage Account
dependency.databasePrivate Endpoint vers base de données (SQL Server, Cosmos DB, Redis)

Types de groupe

Type de groupe OSIRIS JSONUtilisé pour
logical.subscriptionGroupe d’abonnement de premier niveau. Sous --purpose audit, reçoit extensions.osiris.azure.management_group_path (tableau JSON de noms d’affichage, de la racine à la feuille).
logical.resourcegroupGroupes de resource groups (enfants de l’abonnement)
logical.managementgroupUn groupe par management group dans la chaîne d’ascendance du tenant (de la racine au parent de l’abonnement). Chaque groupe liste ses abonnements enfants directs et ses management groups enfants dans children.
container.regionUn groupe par provider.region distinct observé dans l’abonnement, contenant comme membres toutes les ressources de cette région. La région global et les ressources sans région sont ignorées. Le token de frontière est <subscription-id>/<region>, donc les groupes n’entrent jamais en collision entre abonnements.

Types de ressources

Les types de ressources suivent la spécification OSIRIS JSON v1.0. Les types standard sont utilisés lorsqu’ils sont définis; les types spécifiques à Azure utilisent le namespace osiris.azure.*.

Types standard:

  • container.resourcegroup - Groupes de ressources
  • network.vpc - Réseaux virtuels
  • network.subnet - Sous-réseaux
  • network.interface - Interfaces réseau
  • network.security.group - Groupes de sécurité réseau
  • network.loadbalancer - Load balancers (L4 uniquement; les Application Gateways utilisent osiris.azure.applicationgateway)
  • network.firewall - Azure Firewalls
  • compute.vm - Machines virtuelles

Extensions (osiris.azure)

Les données spécifiques à Azure qui ne correspondent pas à des propriétés OSIRIS JSON portables sont émises sous le namespace d’extension osiris.azure. Cela suit la spécification OSIRIS JSON: properties contient les données communes / portables, extensions contient les données détaillées spécifiques au fournisseur. Les extensions sont émises uniquement sous --purpose audit.

Les extensions représentatives incluent:

Type de ressource OSIRIS JSONChamps d’extension sélectionnés
network.interfaceenable_accelerated_networking, effective_routes[]
network.security.groupdefault_security_rules[]
osiris.azure.expressroutesku, sku_tier, service_provider, peerings[] (type de peering BGP, état, ASN du peer, ID VLAN, préfixes d’adresse)
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 lié)
osiris.azure.loganalyticscustomer_id (UUID du workspace utilisé par KQL; ce n’est pas un secret)
logical.subscriptionosiris.azure.management_group_path (tableau de noms d’affichage de MG, de la racine à la feuille; audit uniquement)

[!NOTE] network.security.group security_rules[] (règles définies par l’utilisateur) sont émises dans properties, pas dans extensions, car elles constituent un signal topologique primaire. Seules default_security_rules[] (règles baseline gérées par Azure) vont dans extensions.

network.interface private_ip est également émis dans properties pour la même raison.

Métadonnées du provider

Chaque ressource inclut provider.type avec le type de ressource ARM natif (par exemple Microsoft.Network/virtualNetworks, Microsoft.Compute/virtualMachines). Les stubs inter-abonnements incluent provider.subscription avec l’ID de l’abonnement distant. Toutes les ressources incluent provider.source défini sur azure-cli.

IDs de ressources

Les IDs de ressources Azure suivent le pattern azure::<ARM-resource-id>, en utilisant l’ID de ressource ARM complet comme identifiant natif. Cela garantit des IDs globalement uniques et déterministes qui survivent à la corrélation entre abonnements.

Canonicalisation des régions

provider.region et metadata.scope.regions sont canonicalisés dans la forme slug Azure (minuscules, sans espaces). La CLI az renvoie location de manière incohérente selon les types de ressources: la plupart des ressources ARM utilisent westeurope / eastus2, tandis que les App Service Plans et les Web Apps exposent la forme d’affichage (West Europe). Le producteur normalise vers le slug afin qu’un abonnement mono-région n’apparaisse pas comme deux régions dans metadata.scope.regions.

Exigences RBAC

Niveau d’autorisationCe qui est collecté
ReaderTous les types de ressources, propriétés, extensions (règles NSG, peerings ER, connexions de gateway, peerings VNet, liens DNS, arêtes de Private Endpoint vers cible, App Service vers App Insights, AKS, ressources de conteneur, base de données, messagerie et observabilité)
Reader + effectiveRouteTable/actionTout ce qui précède + routes effectives des NIC
Network Contributor / OwnerDataset complet sans restrictions

Le producteur teste l’autorisation sur la première NIC et ignore proprement la collecte des routes effectives si l’autorisation est refusée. Toutes les autres données sont collectées quoi qu’il arrive.

Exemples

Abonnement unique

Nous allons explorer un abonnement unique dans notre tenant et générer depuis Microsoft Azure un document OSIRIS JSON.

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

Document de sortie OSIRIS JSON (réduit, --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 même exécution avec la valeur par défaut --purpose documentation renvoie le graphe de ressources identique, mais avec les maps properties et extensions supprimées de chaque ressource, connexion et groupe, ce qui le rend adapté aux vues de topologie de haut niveau et à la documentation.

edit_note

Help improve this page

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