.NET 用 Azure Purview Share クライアント ライブラリ - バージョン 1.0.0-beta.3

Microsoft Purview データ共有を使用すると、組織内と組織全体の両方で、Azure Data Lake Storage Gen2および Azure Storage アカウントからデータをインプレースで共有できます。

データ プロバイダーは、Microsoft Purview データ共有を使用して、データを重複することなく他のユーザーやパートナー (データ コンシューマーと呼ばれます) と直接共有しながら、Microsoft Purview 内から共有アクティビティを一元的に管理できます。

データ コンシューマーの場合、Microsoft Purview データ共有はプロバイダーが共有するデータにほぼリアルタイムでアクセスできます。

Microsoft Purview データ共有によって提供される主な機能は次のとおりです。

  • 組織内で、または組織外のパートナーや顧客と (同じ Azure テナント内または異なる Azure テナント間で) データを共有する。
  • データの重複なしに、ADLS Gen2 または BLOB ストレージのデータをインプレースで共有する。
  • 複数の受信者とデータを共有する。
  • ほぼリアルタイムで共有データにアクセスする。
  • ADLSGen2 または Blob Storage アカウントごとに、共有関係を管理し、データの共有元と共有元を追跡します。
  • いつでも共有アクセスを終了します。
  • Microsoft Purview ガバナンス ポータルから、または REST API を使用した柔軟なエクスペリエンス。

この製品の詳細については、次のリソースを参照してください。

ソースコード | パッケージ (NuGet) | 製品ドキュメント

作業の開始

パッケージをインストールする

NuGet を使用して .NET 用 Microsoft Purview Share クライアント ライブラリをインストールします。

dotnet add package Azure.Analytics.Purview.Sharing --prerelease

前提条件

クライアントを認証する

Azure Active Directory の使用

この例では、 DefaultAzureCredential を使用して Azure Active Directory 経由で認証する方法を示します。 ただし、 Azure.Identity によって提供される資格情報はすべて受け入れられます。 その他の資格情報の詳細については、 Azure.Identity のドキュメントを参照してください。

資格情報を選択して構成したら、 のインスタンスを SentSharesClient作成できます。

主要な概念

データ プロバイダー: データ プロバイダーとは、データ ソースを選択して共有を作成し、共有するファイルとフォルダー、および共有するユーザーを選択する個人です。 その後、Microsoft Purview から各データ コンシューマーに招待が送信されます。

データ コンシューマー: データ コンシューマーは、共有データへのアクセスに使用する独自の Azure サブスクリプションでターゲット ストレージ アカウントを指定して、招待を受け入れる個人です。

プロトコル メソッド

.NET 用 Purview Share クライアント ライブラリによって公開される操作では 、プロトコル メソッドを 使用して、基になる REST 操作を公開します。 プロトコル メソッドを使用する Azure SDK クライアントの使用方法の詳細については、 こちらのドキュメントを参照してください

スレッド セーフ

すべてのクライアント インスタンス メソッドがスレッド セーフであり、相互に独立していることを保証します (ガイドライン)。 これにより、スレッド間であっても、クライアント インスタンスの再利用に関する推奨事項が常に安全になります。

その他の概念

クライアント オプション | 応答 | へのアクセス実行時間の長い操作 | エラーの | 処理診断 | あざける | クライアントの有効期間

##Examples

データ プロバイダーの例

次のコード例は、データ プロバイダーが Microsoft Azure Java SDK for Purview Sharing を使用して共有アクティビティを管理する方法を示しています。

送信済み共有クライアントを作成する

var credential = new DefaultAzureCredential();
var endPoint = new Uri("https://my-account-name.purview.azure.com/share");
var sentShareClient = new SentSharesClient(endPoint, credential);

送信済み共有を作成する

var credential = new DefaultAzureCredential();
var endPoint = new Uri("https://my-account-name.purview.azure.com/share");
var sentShareClient = new SentSharesClient(endPoint, credential);

var data = new
{
    shareKind = "InPlace",
    properties = new
    {
        artifact = new
        {
            storeKind = "AdlsGen2Account",
            storeReference = new
            {
                referenceName = "/subscriptions/subscriptionId/resourceGroups/resourceGroup/providers/Microsoft.Storage/storageAccounts/sharerStorageAccount",
                type = "ArmResourceReference"
            },
            properties = new
            {
                paths = new[]
               {
                    new
                    {
                        containerName = "containerName",
                        senderPath = "senderPath",
                        receiverPath = "receiverPath"
                    }
                }
            }
        },
        displayName = "displayName",
        description = "description",
    }
};

Operation<BinaryData> createResponse = await sentShareClient.CreateOrReplaceSentShareAsync(WaitUntil.Completed, "sentShareId", RequestContent.Create(data));

送信済み共有を取得する

送信された共有を作成した後、データ プロバイダーはそれを取得できます。

var credential = new DefaultAzureCredential();
var endPoint = new Uri("https://my-account-name.purview.azure.com/share");
var sentShareClient = new SentSharesClient(endPoint, credential);

Response response = await sentShareClient.GetSentShareAsync("sentShareId");

送信済み共有を一覧表示する

データ プロバイダーは、作成した送信済み共有の一覧を取得することもできます。

var credential = new DefaultAzureCredential();
var endPoint = new Uri("https://my-account-name.purview.azure.com/share");
var sentShareClient = new SentSharesClient(endPoint, credential);

List<BinaryData> response = await sentShareClient.GetAllSentSharesAsync("referenceName").ToEnumerableAsync();

ユーザーへの共有の招待を作成する

送信された共有を作成した後、データ プロバイダーは、共有データを表示できるコンシューマーに招待を拡張できます。 この例では、電子メール アドレスを指定することで、招待状を個人に拡張します。

var credential = new DefaultAzureCredential();
var endPoint = new Uri("https://my-account-name.purview.azure.com/share");
var sentShareClient = new SentSharesClient(endPoint, credential);

var data = new
{
    invitationKind = "User",
    properties = new
    {
        TargetEmail = "receiver@microsoft.com",
        Notify = true,
    }
};

Response response = await sentShareClient.CreateSentShareInvitationAsync("sentShareId", "sentShareInvitationId", RequestContent.Create(data));

サービスへの共有の招待を作成する

データ プロバイダーは、サービスのテナント ID とオブジェクト ID を指定することで、サービスまたはアプリケーションへの招待を拡張することもできます。 サービスへの招待の送信に使用されるオブジェクト ID は、(アプリケーション登録ではなく) エンタープライズ アプリケーションに関連付けられているオブジェクト ID である必要があります

var credential = new DefaultAzureCredential();
var endPoint = new Uri("https://my-account-name.purview.azure.com/share");
var sentShareClient = new SentSharesClient(endPoint, credential);

var data = new
{
    invitationKind = "Service",
    properties = new
    {
        TargetActiveDirectoryId = "targetActiveDirectoryId",
        TargetObjectId = "targetObjectId",
    }
};

Response response = await sentShareClient.CreateSentShareInvitationAsync("sentShareId", "sentShareInvitationId", RequestContent.Create(data));

送信された共有の招待を取得する

送信された共有の招待を作成した後、データ プロバイダーはそれを取得できます。

var credential = new DefaultAzureCredential();
var endPoint = new Uri("https://my-account-name.purview.azure.com/share");
var sentShareClient = new SentSharesClient(endPoint, credential);

Response response = await sentShareClient.GetSentShareInvitationAsync("sentShareId", "sentShareInvitationId");

送信された共有の招待を一覧表示する

データ プロバイダーは、作成した送信済みの共有の招待の一覧を取得することもできます。

var credential = new DefaultAzureCredential();
var endPoint = new Uri("https://my-account-name.purview.azure.com/share");
var sentShareClient = new SentSharesClient(endPoint, credential);

List<BinaryData> sentShareInvitations = await sentShareClient.GetAllSentShareInvitationsAsync("sentShareId").ToEnumerableAsync();

送信された共有の招待を削除する

データ プロバイダーは、作成した送信済みの共有の招待の一覧を取得することもできます。

var credential = new DefaultAzureCredential();
var endPoint = new Uri("https://my-account-name.purview.azure.com/share");
var sentShareClient = new SentSharesClient(endPoint, credential);

Operation operation = await sentShareClient.DeleteSentShareInvitationAsync(WaitUntil.Completed, "sentShareId", "sentShareInvitationId");

送信された共有を削除する

送信された共有は、データ プロバイダーによって削除され、すべてのデータ コンシューマーとのデータの共有を停止できます。

var credential = new DefaultAzureCredential();
var endPoint = new Uri("https://my-account-name.purview.azure.com/share");
var sentShareClient = new SentSharesClient(endPoint, credential);

Operation operation = await sentShareClient.DeleteSentShareAsync(WaitUntil.Completed, "sentShareId");

データ コンシューマーの例

次のコード例は、データ コンシューマーが Microsoft Azure Java SDK for Purview Sharing を使用して共有アクティビティを管理する方法を示しています。

受信共有クライアントを作成する

var credential = new DefaultAzureCredential();
var endPoint = new Uri("https://my-account-name.purview.azure.com/share");
var receivedSharesClient = new ReceivedSharesClient(endPoint, credential);

デタッチされた受信共有を一覧表示する

共有されているデータの表示を開始するには、データ コンシューマーが最初に、デタッチされた受信共有の一覧を取得する必要があります。 このリスト内で、アタッチするデタッチされた受信共有を識別できます。

var credential = new DefaultAzureCredential();
var endPoint = new Uri("https://my-account-name.purview.azure.com/share");
var receivedSharesClient = new ReceivedSharesClient(endPoint, credential);

List<BinaryData> createResponse = await receivedSharesClient.GetAllDetachedReceivedSharesAsync().ToEnumerableAsync();

受信した共有をアタッチする

データ コンシューマーは、受信した共有を特定したら、受信した共有を共有データにアクセスできる場所にアタッチできます。 受信した共有が既にアタッチされている場合は、指定された新しい場所で共有データにアクセスできるようになります。

var credential = new DefaultAzureCredential();
var endPoint = new Uri("https://my-account-name.purview.azure.com/share");
var receivedSharesClient = new ReceivedSharesClient(endPoint, credential);

var data = new
{
    shareKind = "InPlace",
    properties = new
    {
        sink = new
        {
            storeKind = "AdlsGen2Account",
            storeReference = new
            {
                referenceName = "/subscriptions/suscriptionId/resourceGroups/resourceGroup/providers/Microsoft.Storage/storageAccounts/receiverStorageAccount",

                type = "ArmResourceReference"
            },
            properties = new
            {
                containerName = "containerName",
                folder = "folder",
                mountPath = "mountPath",
            }
        },
        displayName = "displayName",
    }
};

Operation<BinaryData> createResponse = await receivedSharesClient.CreateOrReplaceReceivedShareAsync(WaitUntil.Completed, "receivedShareId", RequestContent.Create(data));

受信した共有を取得する

データ コンシューマーは、受信した個々の共有を取得できます。

var credential = new DefaultAzureCredential();
var endPoint = new Uri("https://my-account-name.purview.azure.com/share");
var receivedSharesClient = new ReceivedSharesClient(endPoint, credential);

Response operation = await receivedSharesClient.GetReceivedShareAsync("receivedShareId");

添付された受信共有を一覧表示する

データ コンシューマーは、添付された受信共有の一覧を取得することもできます。

var credential = new DefaultAzureCredential();
var endPoint = new Uri("https://my-account-name.purview.azure.com/share");
var receivedSharesClient = new ReceivedSharesClient(endPoint, credential);

List<BinaryData> createResponse = await receivedSharesClient.GetAllAttachedReceivedSharesAsync("referenceName").ToEnumerableAsync();

受信した共有を削除する

データ コンシューマーは、添付された受信共有の一覧を取得することもできます。

var credential = new DefaultAzureCredential();
var endPoint = new Uri("https://my-account-name.purview.azure.com/share");
var receivedSharesClient = new ReceivedSharesClient(endPoint, credential);

Operation operation = await receivedSharesClient.DeleteReceivedShareAsync(WaitUntil.Completed, "receivedShareId");

リソースの共有の例

次のコード例は、Microsoft Azure Java SDK for Purview Sharing を使用して共有リソースを表示する方法を示しています。 共有リソースは、プロバイダーがデータを共有する基になるリソース、またはコンシューマーが共有するデータをアタッチする宛先です。

共有リソースを一覧表示する

共有リソースの一覧を取得して、共有アクティビティが行われたアカウント内のすべてのリソースを表示できます。

var credential = new DefaultAzureCredential();
var endPoint = new Uri("https://my-account-name.purview.azure.com/share");
var shareResourcesClient = new ShareResourcesClient(endPoint, credential);

List<BinaryData> createResponse = await shareResourcesClient.GetAllShareResourcesAsync().ToEnumerableAsync();

トラブルシューティング

コンソール ログの設定

ログを表示する最も簡単な方法は、コンソールログを有効にすることです。 コンソールにメッセージを出力する Azure SDK ログ リスナーを作成するには、AzureEventSourceListener.CreateConsoleLogger メソッドを使用します。

// Setup a listener to monitor logged events.
using AzureEventSourceListener listener = AzureEventSourceListener.CreateConsoleLogger();

その他のログメカニズムの詳細については、 こちらを参照してください

次のステップ

このクライアント SDK では 、プロトコル メソッドを使用した操作が公開されています。プロトコル メソッドを使用する SDK クライアントの使用方法の詳細については、 ドキュメントを参照してください

共同作成

このライブラリのビルド、テスト、および投稿の詳細については、 CONTRIBUTING.md を参照してください。

このプロジェクトでは、共同作成と提案を歓迎しています。 ほとんどの共同作成では、共同作成者使用許諾契約書 (CLA) にご同意いただき、ご自身の共同作成内容を使用する権利を Microsoft に供与する権利をお持ちであり、かつ実際に供与することを宣言していただく必要があります。 詳細については、「 cla.microsoft.com」を参照してください。

pull request を送信すると、CLA を提供して PR (ラベル、コメントなど) を適宜装飾する必要があるかどうかを CLA ボットが自動的に決定します。 ボットによって提供される手順にそのまま従ってください。 この操作は、Microsoft の CLA を使用するすべてのリポジトリについて、1 回だけ行う必要があります。

このプロジェクトでは、Microsoft オープン ソースの倫理規定を採用しています。 詳しくは、「Code of Conduct FAQ (倫理規定についてよくある質問)」を参照するか、opencode@microsoft.com 宛てに質問またはコメントをお送りください。

インプレッション数