다음을 통해 공유


빠른 시작: Bicep을 사용하여 Azure AI VI(Video Indexer) 배포

이 빠른 시작을 사용하면 Bicep을 사용하여 Azure AI VI(Video Indexer) 계정을 만들 수 있습니다.

다음 리소스는 Bicep 템플릿을 사용하여 설치됩니다.

  • Azure Storage 계정입니다. VI용 스토리지 계정은 표준 범용 v2 스토리지 계정이어야 합니다.
  • 시스템 할당 관리 ID를 사용하여 스토리지 계정에 연결된 VI 계정
  • 스토리지 계정의 VI 계정에 대한 Storage Blob 데이터 기여자 역할 할당

필수 조건

  • 리소스를 만들 수 있는 권한이 있는 Azure 구독입니다.
  • 최신 버전의 Azure CLI
  • 권장: Bicep 도구.

Bicep 파일 검토

이 빠른 시작과 함께 제공되는 코드는 공식 Azure AI Video Indexer 샘플에서 찾을 수 있습니다.

이 파일은 main.bicep 두 모듈의 설치를 오케스트레이션합니다.

  • 종속 Azure Storage 계정 리소스를 사용하여 VI 계정을 배포하는 VI 모듈입니다.
  • VI ID에 스토리지 계정에 대한 Azure Blob Storage 데이터 소유자 권한을 부여하는 역할 권한 모듈입니다.

참고 항목

Azure 리소스를 여러 Bicep 모듈로 분리하는 것이 좋습니다. Bicep 모듈의 작동 방식에 대한 포괄적인 이해는 Bicep 모듈 - Azure Resource Manager를 참조하세요.

Bicep 파일 만들기

  1. 다음 콘텐츠를 복사하여 작업 디렉터리의 main.bicep이라는 파일에 붙여넣습니다.

    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. 누락된 main.bicep 매개 변수를 입력하여 파일을 편집합니다.

    • storageAccountName - Azure AI Video Indexer 계정에 연결하려는 스토리지 계정의 이름
    • videoIndexerAccountName - VI 계정 이름

Video AI Indexer Bicep 모듈 만들기

다음 콘텐츠를 복사하여 작업 디렉터리의 videoindexer.bicep이라는 파일에 붙여넣습니다. 파일은 시스템 할당 ID가 있는 VI 계정과 함께 스토리지 계정을 배포합니다.


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 

역할 할당 Bicep 모듈 만들기

다음 콘텐츠를 복사하여 작업 디렉터리의 role-assignment.bicep이라는 파일에 붙여넣습니다. 이 모듈은 시스템 할당 ID에 VI 계정의 스토리지 계정에 대한 Storage Blob 데이터 기여자의 역할을 부여합니다.


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

Bicep 파일 배포

  1. 터미널을 열고 Azure 구독에 로그인되었는지 확인합니다.

    az login

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

  2. 리소스 그룹을 만듭니다.

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

  3. 리소스 그룹에 템플릿을 배포합니다.

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

  4. 배포가 완료되고 Azure Portal에서 만든 리소스를 검사할 때까지 기다립니다.

Azure AI Video Indexer를 처음 사용하는 경우 다음을 참조하세요.

Bicep 배포를 처음 사용하는 경우 다음을 참조하세요.