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

Importante

A causa dell'annuncio di ritiro Servizi multimediali di Azure, Azure AI Video Indexer annuncia le modifiche alle funzionalità di Azure AI Video Indexer. Vedere Modifiche correlate al ritiro di Servizi multimediali di Azure (AMS) per comprendere cosa significa per l'account Video Indexer di Azure per intelligenza artificiale. Vedere la guida alla preparazione per il ritiro di AMS: aggiornamento VI e migrazione.

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
  • Account VI con una connessione all'account di archiviazione usando un'identità gestita assegnata dal sistema
  • Assegnazione di ruolo collaboratore ai dati BLOB 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 di collaboratore ai dati 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 i 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: