メインコンテンツまでスキップ
バージョン: User Guides (Cloud)

Azure Blob Storage との統合

Zilliz Cloud では、Azure Blob Storage と統合して、バックアップファイルや監査ログを指定されたコンテナにエクスポートできます。

以下の図は、Zilliz Cloud および Azure Portal で必要な手順を示しています。

EFqDwDiAIhoOPXbvLBDcO7DrnJd

始める前に

  • Zilliz Cloud を Azure Blob と統合するには、プロジェクトに対する組織オーナーまたはプロジェクト管理者のアクセス権が必要です。必要な権限をお持ちでない場合は、Zilliz Cloud の管理者にお問い合わせください。

  • Azure Portal への管理アクセス権を持っていること。

ステップ 1: Zilliz Cloud で統合を開始する

1

Zilliz Cloud コンソール にログインします。

2

プロジェクトページで、左側のナビゲーションペインから統合へ移動します。

3

Azure Blob Storageセクションで、+ 統合をクリックします。

Pxw7bG0keosOCDxfVdmcCC1rnBg

4

表示されたダイアログボックスで、基本設定を入力します:

  • 統合名: この統合用の一意の名前(例:container_for_backup)。

  • 統合の説明 (オプション): この統合の説明(例:for backupfile export)。

その後、次へをクリックして続行します。

ステップ 2: Azure Portal でコンテナを作成する

1

Azure Portal にログインします。

2

検索バーにストレージアカウントと入力し、該当するオプションを選択します。

integrate-with-azure-blob-1

3

ストレージアカウントページで、既存のストレージアカウントを選択するか、+ 作成をクリックして新しいアカウントを設定します。注: ストレージアカウントは、Zilliz Cloud クラスターと同じリージョンにある必要があります。

integrate-with-azure-blob-2

4

ストレージアカウントの詳細ページで、データストレージ > コンテナへ移動し、+ コンテナをクリックします。

S3Evbdfp1o5JWnxhCkEcUZktnme

5

表示されたパネルでコンテナ名を入力します。このコンテナ名は後で Zilliz Cloud コンソールで必要になるため、控えておいてください。

6

Zilliz Cloud コンソール に戻り、Azure Blob Storage コンテナの作成ステップで設定を完了します:

  • Zilliz Cloud クラスターリージョン: Zilliz Cloud クラスターが存在するクラウドリージョンを選択します。

  • ストレージアカウント名: Azure ストレージアカウント名を入力します。

  • コンテナ名: 作成したコンテナの名前を入力します。

その後、次へをクリックして続行します。

integrate-with-azure-blob-3

ステップ 3: アプリケーションの登録と資格情報の追加

1

Azure Portal に戻り、アプリ登録を検索して選択します。

integrate-with-azure-blob-4

2

アプリケーション登録ページで、+ 新しい登録をクリックします。

integrate-with-azure-blob-5

3

アプリケーションの登録パネルで、アプリケーション名を入力し、他のフィールドはデフォルト設定のままにして、登録をクリックします。

RLaubwh94oRrLqxf8R4cd3xvnPg

4

アプリケーションの概要ページで、アプリケーション (クライアント) IDおよびディレクトリ (テナント) IDをコピーします。これらの値は後で Zilliz Cloud コンソールで必要になります。

Dgwnbb77ToK38Vx8WHdcN2ylnSh

5

Zilliz Cloud コンソール に戻り、新しいアプリケーションの登録ステップで、コピーしたアプリケーション (クライアント) IDおよびディレクトリ (テナント) IDを入力します。

また、Zilliz Cloud から提供されるクラスター発行者 URLサービス名、およびサービスアカウント名を控えておいてください。これらの値は後で Azure Portal で必要になります。

6

Azure Portal のアプリケーションページに戻ります。管理 > 証明書とシークレット > フェデレーション資格情報へ移動し、資格情報の追加をクリックします。

UGgmb9dKnoPlk9xtrFvcDl3Dnfd

7

資格情報の追加パネルで、資格情報設定を構成します:

  • フェデレーション資格情報シナリオ: Kubernetes による Azure リソースへのアクセスを選択します。

  • クラスター発行者 URL: Zilliz Cloud から提供された値を入力します。

  • ネームスペース: milvus-toolに設定します。

  • サービスアカウント名: milvus-bucketに設定します。

  • 名前: カスタム名を入力します(明確にするためにzillizを含めるなど)。

  • 対象ユーザー: デフォルト値を使用します。

その後、追加をクリックして資格情報を保存します。

integrate-with-azure-blob-7

8

Zilliz Cloud コンソール に戻り、次へをクリックして続行します。

ステップ 4: ロールの割り当てを追加する

1

Azure Portal で、アクセス制御 (IAM) > + 追加 > ロール割り当ての追加へ移動します。

integrate-with-azure-blob-6

2

職務ロールタブで、Storage Blob データ Contributorロールを選択します。

CXjcbs7q9oitdRxKzkhcrhnznh0

3

メンバータブで、登録したアプリケーションを選択してロールを割り当てます。

SbSgbe9tzo45z3xtKLicm64ingc

4

確認 + 割り当てタブで、確認 + 割り当てをクリックして確定します。

ステップ 5: 統合の検証と作成

1

Zilliz Cloud コンソール で、統合の検証をクリックし、コンテナとロール割り当ての設定が有効であることを確認します。

2

検証が成功したら、作成をクリックして統合を完了します。

これで、Azure Blob Storage が Zilliz Cloud と統合され、バックアップファイルのエクスポートが可能になりました。詳細については、バックアップファイルのエクスポート を参照してください。

プログラムによるストレージ統合の作成

Zilliz Cloud コンソールを使用する代わりに、ストレージ統合をプログラムで作成することもできます。

1

コンテナーを作成します。

詳細については、上記の Azure Portal でコンテナーを作成または Create Container API ドキュメントを参照してください。

2

認証情報を生成します。

export BASE_URL="https://api.cloud.zilliz.com"
export TOKEN="YOUR_API_KEY"

curl --request POST \
--url "${BASE_URL}/v2/storageIntegrations/authorizationMaterials" \
--header "Authorization: Bearer ${TOKEN}" \
--header "Request-Timeout: 5" \
--header "Content-Type: application/json" \
-d '{
"projectId": "proj-xxxxxxxxxxxxxxxxxxxxxx",
"regionId": "az-eastus",
"bucketName": "my-container"
}'

上記のリクエストにより、Azure Portal で権限とロールを作成するために必要な認証情報が生成されます。

レスポンス例は次のとおりです。

{
"code": 0,
"data": {
"credential": {
"clusterIssuerUrl": "https://issuer.example.com/",
"namespace": "milvus-tool",
"serviceAccountName": "milvus-bucket"
}
}
}

パラメータの詳細については、Generate Storage Integration Authorization Materialsを参照してください。

3

返された clusterIssuerUrlnamespaceserviceAccountName を使用して、アプリケーションを登録し、資格情報を追加します。

詳細については、アプリケーションを登録して資格情報を追加を参照してください。

4

取得した認証情報を検証します。

リクエストで、externalCred.accountName を Azure Portal に表示されるストレージアカウント名に、externalCred.clientIdexternalCred.tenantId をアプリケーション登録時に記録した値に設定します。

curl --request POST \
--url "${BASE_URL}/v2/storageIntegrations/validate" \
--header "Authorization: Bearer ${TOKEN}" \
--header "Request-Timeout: 5" \
--header "Content-Type: application/json" \
-d '{
"projectId": "proj-xxxxxxxxxxxxxxxxxxxxxx",
"regionId": "gcp-us-central1",
"bucketName": "my-bucket",
"externalCred": {
"accountName": "mystorageaccount",
"clientId": "00000000-0000-0000-0000-000000000000",
"tenantId": "11111111-1111-1111-1111-111111111111"
}
}'

検証が成功した場合のレスポンスは次のとおりです。

{
"code": 0,
"data": {
"success": true,
"message": ""
}
}

パラメータの詳細については、Validate Storage Integrationを参照してください。

5

ストレージ統合を作成します。

このリクエストは、description が追加される点を除き、検証リクエストとほとんど同じパラメータを使用します。

curl --request POST \
--url "${BASE_URL}/v2/storageIntegrations" \
--header "Authorization: Bearer ${TOKEN}" \
--header "Request-Timeout: 5" \
--header "Content-Type: application/json" \
-d '{
"projectId": "proj-xxxxxxxxxxxxxxxxxxxxxx",
"name": "analytics-azure",
"description": "Azure container for external tables",
"regionId": "az-eastus",
"bucketName": "my-bucket",
"externalCred": {
"accountName": "mystorageaccount",
"clientId": "00000000-0000-0000-0000-000000000000",
"tenantId": "11111111-1111-1111-1111-111111111111"
}
}'

レスポンスは次のようになります。

{
"code": 0,
"data": {
"integrationId": "integ-xxxxxxxxxxxxxxxxxxx",
"name": "analytics-azure"
}
}

パラメータの詳細については、Create Storage Integrationを参照してください。

統合の管理

統合が追加されると、必要に応じてその詳細を表示したり、統合を削除したりできます。

DN2GbaT6momqNzxZeLwc0fe2nuh

統合 ID の取得

RESTful API を使用する場合は、View Details をクリックして統合の詳細を表示し、統合 ID をコピーします。

また、次のコマンドを実行して統合 ID を取得することもできます。

export TOKEN="YOUR_API_KEY"

curl --request GET \
--url "${BASE_URL}/v2/storageIntegrations?projectId=proj-xxxxxxxxxxxxxxxxxxxxxx" \
--header "Authorization: Bearer ${TOKEN}" \
--header "Request-Timeout: 5" \
--header "Content-Type: application/json"

レスポンスは次のようになります。

{
"code": 0,
"data": {
"storageIntegrations": [
{
"integrationId": "integ-xxxxxxxxxxxxxxxxxxx",
"name": "analytics-azure",
"status": "ACTIVE",
"message": "",
"regionId": "az-eastus",
"bucketName": "my-bucket"
}
],
"count": 1,
"currentPage": 1,
"pageSize": 10
}
}

パラメータの詳細については、List Storage Integrationsを参照してください。

統合の詳細を表示

次のコマンドを使用して統合の詳細を表示できます。

export integrationId="integ-xxxxxxxxxxxxxxxxxxx"

curl --request GET \
--url "${BASE_URL}/v2/storageIntegrations/${integrationId}" \
--header "Authorization: Bearer ${TOKEN}" \
--header "Request-Timeout: 5" \
--header "Content-Type: application/json"

レスポンスは次のようになります。

{
"code": 0,
"data": {
"integrationId": "integ-xxxxxxxxxxxxxxxxxxx",
"name": "analytics-azure",
"description": "Azure container for external tables",
"status": "ACTIVE",
"message": "",
"regionId": "az-eastus",
"bucketName": "my-bucket",
"externalCred": {
"roleArn": "arn:aws:iam::123456789012:role/zilliz-bucket-role",
"externalId": "zilliz-external-AbCdEf12345678"
},
"createTime": "2024-07-30T16:49:50Z"
}
}

パラメータの詳細については、Describe Storage Integrationを参照してください。

ストレージ統合の削除

Zilliz Cloud コンソールで Remove をクリックする代わりに、次のコマンドを使用して不要なストレージ統合を削除できます。

export integrationId="integ-xxxxxxxxxxxxxxxxxxx"

curl --request DELETE \
--url "${BASE_URL}/v2/storageIntegrations/${integrationId}" \
--header "Authorization: Bearer ${TOKEN}" \
--header "Request-Timeout: 5" \
--header "Content-Type: application/json"

レスポンスは次のようになります。

{
"code": 0,
"data": {
"integrationId": "integ-xxxxxxxxxxxxxxxxxxx",
"name": "analytics-azure"
}
}

パラメータの詳細については、Delete Storage Integrationを参照してください。

トラブルシューティング

  • 検証エラー:

    統合の検証が失敗した場合、以下を確認してください:

    • Azure ストレージアカウントと Zilliz Cloud クラスターのリージョンが一致していること。

    • すべてのアプリケーション ID、テナント ID、および資格情報の詳細が正しいこと。

  • 権限の問題:

    Zilliz Cloud および Azure Portal の両方で必要な権限を持っていることを確認してください。