Microsoft 검색에서 스토리지 컨테이너 관리

스토리지 컨테이너는 Azure Blob Storage 계정 또는 Azure NetApp Files 볼륨에 대한 참조를 만드는 검색 리소스입니다. 스토리지 컨테이너를 사용하면 검색 작업 영역에서 데이터 수집, 도구 출력 및 에이전트 데이터 액세스를 사용할 수 있습니다. 각 스토리지 컨테이너는 계정 내의 특정 Blob 경로를 가리키는 여러 스토리지 자산을 보유할 수 있습니다.

사전 요구 사항

스토리지 컨테이너를 만들기 전에 다음을 확인합니다.

  • 동일한 구독 또는 액세스 가능한 구독에서 Blob Storage를 사용하도록 설정된 Azure Storage 계정이 있습니다.
  • 작업 영역의 UAMI(사용자 할당 관리 ID) 에는 대상 스토리지 계정에 대한 Storage Blob 데이터 기여자 역할이 있습니다. 이 설정을 통해 작업 영역은 워크로드를 대신하여 Blob을 읽고 쓰는 작업을 수행할 수 있습니다.
  • 작업 영역을 포함하는 리소스 그룹에 기여자 또는 소유자 역할이 있습니다.

작업 영역 ID에 Storage Blob 데이터 기여자 할당

az role assignment create \
  --assignee-object-id "{uamiPrincipalId}" \
  --assignee-principal-type ServicePrincipal \
  --role "Storage Blob Data Contributor" \
  --scope "/subscriptions/{subscriptionId}/resourceGroups/{storageResourceGroupName}/providers/Microsoft.Storage/storageAccounts/{storageAccountName}"

스토리지 컨테이너 만들기

스토리지 컨테이너는 스토리지 백 엔드를 가리키고 스토리지 종류를 지정합니다. 검색은 AzureStorageBlob(Azure Blob Storage) 및 AzureNetAppFiles(Azure NetApp Files 볼륨)를 지원합니다.

az rest --method PUT \
  --uri "https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/storageContainers/{containerName}?api-version=2026-02-01-preview" \
  --body '{
    "location": "{location}",
    "properties": {
      "storageStore": {
        "kind": "AzureStorageBlob",
        "storageAccountId": "/subscriptions/{subscriptionId}/resourceGroups/{storageResourceGroupName}/providers/Microsoft.Storage/storageAccounts/{storageAccountName}"
      }
    }
  }'

다음 자리 표시자를 바꿉니다.

Placeholder 설명
{subscriptionId} Azure 구독 ID
{resourceGroupName} 스토리지 컨테이너에 대한 리소스 그룹
{containerName} 스토리지 컨테이너의 이름(영숫자 및 하이픈)
{location} Azure 지역(예: swedencentral)
{storageResourceGroupName} 스토리지 계정을 포함하는 리소스 그룹
{storageAccountName} 대상 Azure Storage 계정의 이름

스토리지 컨테이너 나열

리소스 그룹의 모든 스토리지 컨테이너를 검색합니다.

az rest --method GET \
  --uri "https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/storageContainers?api-version=2026-02-01-preview" \
  --query "value[].{name:name, kind:properties.storageStore.kind, storageAccount:properties.storageStore.storageAccountId, state:properties.provisioningState}" \
  -o table

스토리지 컨테이너 가져오기

특정 스토리지 컨테이너에 대한 세부 정보를 검색합니다.

az rest --method GET \
  --uri "https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/storageContainers/{containerName}?api-version=2026-02-01-preview"

스토리지 자산 관리

스토리지 자산은 스토리지 컨테이너의 자식 리소스입니다. 각 자산은 스토리지 계정 내의 특정 Blob 경로(폴더 또는 파일 접두사)를 가리키며 세분화된 데이터 조직을 사용하도록 설정합니다.

스토리지 자산 만들기

az rest --method PUT \
  --uri "https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/storageContainers/{containerName}/storageAssets/{assetName}?api-version=2026-02-01-preview" \
  --body '{
    "location": "{location}",
    "properties": {
      "path": "datasets/experiment-001/"
    }
  }'

{assetName} 자산에 대한 설명이 포함된 이름으로 바꾸고{location} Azure 지역으로 바꾸고(부모 컨테이너와 일치해야 합니다) path 스토리지 계정 내의 Blob 경로로 설정합니다.

스토리지 자산 나열

az rest --method GET \
  --uri "https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/storageContainers/{containerName}/storageAssets?api-version=2026-02-01-preview" \
  --query "value[].{name:name, path:properties.path, state:properties.provisioningState}" \
  -o table

스토리지 자산 가져오기

az rest --method GET \
  --uri "https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/storageContainers/{containerName}/storageAssets/{assetName}?api-version=2026-02-01-preview"

스토리지 자산 삭제

az rest --method DELETE \
  --uri "https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/storageContainers/{containerName}/storageAssets/{assetName}?api-version=2026-02-01-preview"

중요합니다

스토리지 자산을 삭제하면 검색 참조만 제거됩니다. Azure Storage 계정의 기본 Blob 데이터는 영향을 받지 않습니다.

스토리지 컨테이너 삭제

스토리지 컨테이너를 삭제하기 전에 먼저 스토리지 컨테이너 내의 모든 스토리지 자산을 삭제합니다.

# Step 1: Delete all storage assets in the container
az rest --method DELETE \
  --uri "https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/storageContainers/{containerName}/storageAssets/{assetName}?api-version=2026-02-01-preview"

# Step 2: Delete the storage container
az rest --method DELETE \
  --uri "https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/storageContainers/{containerName}?api-version=2026-02-01-preview"

중요합니다

스토리지 컨테이너를 삭제하면 검색 참조만 제거됩니다. 기본 Azure Storage 계정 및 해당 데이터는 영향을 받지 않습니다.

리소스 계층 구조

스토리지 컨테이너는 프로젝트를 통해 작업 영역에서 참조하는 리소스 그룹의 최상위 리소스입니다.

  • 리소스 그룹에는 각각 다른 스토리지 백 엔드를 가리키는 여러 스토리지 컨테이너가 있을 수 있습니다.
  • 스토리지 컨테이너에는 각각 다른 Blob 경로를 가리키는 여러 스토리지 자산이 있을 수 있습니다.
  • 스토리지 자산은 작업 영역 내의 프로젝트, 에이전트 및 도구에서 사용됩니다.

Troubleshooting

스토리지 계정을 찾을 수 없음

오류: The resource '.../storageAccounts/{name}' was not found.

수정: 요청 본문의 storageAccountId ID가 기존 스토리지 계정에 대한 유효한 ARM 리소스 ID인지 확인합니다. 스토리지 컨테이너를 만들기 전에 스토리지 계정이 있어야 합니다.

Blob 작업에 대해 사용 권한이 거부됨

오류: AuthorizationPermissionMismatch 또는 This request is not authorized to perform this operation.

수정: 작업 영역의 UAMI에 대상 스토리지 계정에 대한 Storage Blob 데이터 기여자 역할이 있는지 확인합니다. 필수 조건을 참조하세요.

스토리지 컨테이너가 프로비저닝 중에 멈춰 있음

수정: 먼저 작업 영역의 프로비저닝 상태를 확인합니다. 작업 영역이 Succeeded 상태가 아니면 스토리지 컨테이너를 만들기 전에 작업 영역의 문제를 해결하십시오. 동일한 본문으로 스토리지 컨테이너를 다시 PUT하여 프로비저닝을 다시 시도할 수도 있습니다.

다음 단계