Condividi tramite


Guida introduttiva: Distribuire Azure AI Video Indexer (VI) usando Bicep

Con questa guida introduttiva è 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 un account di archiviazione per utilizzo generico v2 Standard.
  • Account VI con una connessione all'account di archiviazione usando un'identità gestita assegnata dal sistema
  • Assegnazione di ruolo Collaboratore dati BLOB di archiviazione per l'account di archiviazione vi nell'account di archiviazione

Prerequisiti

Esaminare il file Bicep

Il codice che accompagna questa guida introduttiva è disponibile negli esempi ufficiali di Video Indexer per Intelligenza artificiale di Azure.

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

  • Il modulo VI che distribuisce l'account VI con la risorsa account dipendente Archiviazione di Azure.
  • Modulo Autorizzazione ruolo che concede all'identità VI l'autorizzazione del proprietario dei dati Archiviazione BLOB di Azure per l'account di archiviazione.

Nota

È consigliabile separare le risorse di Azure in più 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 - Nome account VI

Creare un modulo Bicep di Video AI Indexer

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 con 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 collaboratore ai dati dei BLOB di archiviazione nell'account di archiviazione dell'account 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. Aprire un terminale e assicurarsi 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 non si ha familiarità con la distribuzione Bicep, vedere: