Delen via


Quickstart: Azure AI Video Indexer (VI) implementeren met Bicep

Met deze quickstart kunt u een Azure AI Video Indexer-account (VI) maken met behulp van Bicep.

De volgende resources worden geïnstalleerd met behulp van de Bicep-sjabloon:

  • Azure-opslagaccount. Opslagaccounts voor VI moeten een Standaard v2-opslagaccount voor algemeen gebruik zijn.
  • VI-account met een verbinding met het opslagaccount met behulp van een door het systeem toegewezen beheerde identiteit
  • De roltoewijzing Inzender voor opslagblobgegevens voor het VI-account in het opslagaccount

Vereisten

  • Een Azure-abonnement met machtigingen voor het maken van resources.
  • De nieuwste versie van de Azure CLI.
  • Aanbevolen: Bicep tools.

Het Bicep-bestand controleren

De code die bij deze quickstart hoort, vindt u in de officiële Voorbeelden van Azure AI Video Indexer.

Het main.bicep bestand organiseert de installatie van twee modules:

  • De VI-module waarmee het VI-account wordt geïmplementeerd met de afhankelijke Resource van het Azure Storage-account.
  • De module Rolmachtiging waarmee de VI-identiteit wordt verleend aan de azure Blob Storage-gegevenseigenaar voor het opslagaccount.

Notitie

Het is een goede gewoonte om Azure-resources te scheiden van meerdere Bicep-modules. Zie Bicep-modules - Azure Resource Manager voor een uitgebreid begrip van de werking van Bicep-modules.

Het Bicep-bestand maken

  1. Kopieer en plak de volgende inhoud in een bestand met de naam main.bicep in uw werkmap.

    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. Bewerk het main.bicep bestand door de ontbrekende parameters in te vullen:

    • storageAccountName : de naam van het opslagaccount dat u wilt verbinden met het Azure AI Video Indexer-account
    • videoIndexerAccountName - de naam van het VI-account

Een Video AI Indexer Bicep-module maken

Kopieer en plak de volgende inhoud in een bestand met de naam videoindexer.bicep in uw werkmap. Het bestand implementeert het opslagaccount samen met een VI-account met een door het systeem toegewezen identiteit.


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 

Een Bicep-module voor roltoewijzing maken

Kopieer en plak de volgende inhoud in een bestand met de naam role-assignment.bicep in uw werkmap. De module verleent de door het systeem toegewezen identiteit de rol van Inzender voor opslagblobgegevens voor het opslagaccount van het VI-account.


@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'
  }
} 

De Bicep-bestanden implementeren

  1. Open een terminal en zorg ervoor dat u bent aangemeld bij uw Azure-abonnement.

    az login

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

  2. Maak een resourcegroep.

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

  3. Implementeer de sjabloon in de resourcegroep.

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

  4. Wacht tot de implementatie is voltooid en inspecteer de gemaakte resource in Azure Portal.

Als u niet eerder met Azure AI Video Indexer werkt, raadpleegt u:

Als u nog geen gebruik hebt van bicep-implementatie, raadpleegt u: