Guida rapida: Distribuire Azure AI Video Indexer (VI) utilizzando Bicep

Con questa guida rapida è possibile creare un account di Azure AI Video Indexer (VI) usando Bicep.

Le risorse seguenti vengono installate usando il modello Bicep:

  • Account di archiviazione di Azure. Gli account di archiviazione per VI devono essere account di archiviazione Standard per utilizzo generico v2.
  • Account VI con una connessione all'account di archiviazione usando un'identità gestita assegnata automaticamente dal sistema
  • Assegnazione del ruolo di Collaboratore dati BLOB di archiviazione per l'account VI nell'account di archiviazione

Prerequisiti

Esaminare il file Bicep

Il codice che accompagna questo avvio rapido può essere trovato negli esempi ufficiali di Azure AI Video Indexer.

Il main.bicep file orchestra l'installazione di due moduli:

  • Il modulo VI che distribuisce l'account VI insieme alla risorsa dell'account di Archiviazione di Azure da cui dipende.
  • Modulo di autorizzazione dei permessi di ruolo che concede all'identità VI il permesso di proprietario dei dati di Archiviazione Blob di Azure sull'account di archiviazione.

Nota

È una buona pratica separare le risorse di Azure in diversi moduli Bicep. Per una conoscenza completa del funzionamento dei moduli Bicep, vedere Moduli Bicep - Azure Resource Manager.

Creare il file Bicep

  1. Copiare e incollare il contenuto seguente in un file denominato main.bicep nella directory di lavoro.

    param location string = resourceGroup().location 
    @description('Storage Account Name') 
    param storageAccountName string = “<add_your_storage_account_name” 
    @description('Video Indexer Account Name') 
    param videoIndexerAccountName string = = “<add_your_videoindexer_account_name>” 
    
    module videoIndexer 'videoIndexer.bicep' = { 
      name: 'videoIndexer.bicep' 
      params: { 
        location: location 
        storageAccountName: storageAccountName 
        videoIndexerAccountName: videoIndexerAccountName 
      } 
    } 
    
    // Role Assignment must be on a separate resource  
    
    module roleAssignment 'role-assignment.bicep' = { 
      name: 'grant-storage-blob-data-contributor' 
      params: { 
        servicePrincipalObjectId: videoIndexer.outputs.servicePrincipalId 
        storageAccountName: storageAccountName 
      } 
      dependsOn: [ 
        videoIndexer 
      ] 
    } 
    
    
  2. Modificare il main.bicep file inserendo i parametri mancanti:

    • storageAccountName : nome dell'account di archiviazione che si vuole connettere all'account Di Azure AI Video Indexer
    • videoIndexerAccountName - il nome dell'account VI

Creare un modulo di indicizzazione video AI Bicep

Copiare e incollare il contenuto seguente in un file denominato videoindexer.bicep nella directory di lavoro. Il file distribuisce l'account di archiviazione insieme a un account VI dotato di un'identità assegnata dal sistema.


param location string = resourceGroup().location 
@description('Storage Account Name') 
param storageAccountName string 
@description('Video Indexer Account Name') 
param videoIndexerAccountName string 
@description('Storage Account Kind') 
var storageKind = 'StorageV2' 
@description('Storage Account Sku') 
var storageSku = 'Standard_LRS' 
resource storageAccount 'Microsoft.Storage/storageAccounts@2021-04-01' = { 
  name: storageAccountName 
  location: location 
  kind: storageKind 
  properties: { 
    minimumTlsVersion: 'TLS1_2' 
  } 
  sku: { 
    name: storageSku 
  }
} 

resource videoIndexer 'Microsoft.VideoIndexer/accounts@2024-01-01' = { 
  name: videoIndexerAccountName 
  location: location 
  identity: { 
    type: 'SystemAssigned' 
  } 

  properties: { 
    storageServices: { 
      resourceId: storageAccount.id 
    } 
  } 
} 

output storageAccountName string = storageAccount.name 
output accountName string = videoIndexer.name 
output servicePrincipalId string = videoIndexer.identity.principalId 

Creare un modulo Bicep per l'assegnazione di ruolo

Copiare e incollare il contenuto seguente in un file denominato role-assignment.bicep nella directory di lavoro. Il modulo concede all'identità assegnata dal sistema il ruolo di Collaboratore dati blob di archiviazione sull'account di archiviazione VI.


@secure() 
param servicePrincipalObjectId string 
param storageAccountName string
@description('Storage Blob Data Contributor Role Id') 
var storageBlobDataContributorRoleId = 'ba92f5b4-2d11-453d-a403-e96b0029c9fe' 
resource storageAccount 'Microsoft.Storage/storageAccounts@2021-04-01' existing= { 
  name: storageAccountName 
} 

resource roleAssignment 'Microsoft.Authorization/roleAssignments@2020-04-01-preview' = { 
  name: guid(storageAccount.id, servicePrincipalObjectId, 'Storage Blob Data Contributor')  
  scope: storageAccount  
  properties: { 
    roleDefinitionId: subscriptionResourceId('Microsoft.Authorization/roleDefinitions', storageBlobDataContributorRoleId)  
    principalId: servicePrincipalObjectId 
    principalType: 'ServicePrincipal'
  }
} 

Distribuire il file Bicep

  1. Apri un terminale e assicurati di aver eseguito l'accesso alla sottoscrizione di Azure.

    az login

    az account set --subscription <your-subscription-name>

  2. Crea un gruppo di risorse.

    az group create -n <your-resource-group-name> -l eastus

  3. Distribuire il modello nel gruppo di risorse.

    az deployment group create --resource-group <your-resource-group-name> --template-file .\main.template.json

  4. Attendere il completamento della distribuzione e controllare la risorsa creata in portale di Azure.

Se non si ha familiarità con Azure AI Video Indexer, vedere:

Se sei nuovo alla distribuzione di Bicep, vedi: