以下のドキュメントを使用して、Azure Functions に移植する予定のコンソール アプリでこれを実行しようとしています。https://docs.microsoft.com/en-us/azure/data-lake-store/data-lake-store-get-started-net-sdk
以下のコードは、私が立ち往生している場所です
コードスニップ
// Service principal / appplication authentication with client secret / key
// Use the client ID of an existing AAD "Web App" application.
SynchronizationContext.SetSynchronizationContext(new SynchronizationContext());
var domain = "<AAD-directory-domain>";
var webApp_clientId = "<AAD-application-clientid>";
var clientSecret = "<AAD-application-client-secret>";
var clientCredential = new ClientCredential(webApp_clientId, clientSecret);
var creds = await ApplicationTokenProvider.LoginSilentAsync(domain, clientCredential);
私の実装
SynchronizationContext.SetSynchronizationContext(new SynchronizationContext());
var domain = "https://microsoft.onmicrosoft.com";
var webApp_clientId = "<my-client-id>";
var clientSecret = "<my-client-secret>";
var clientCredential = new ClientCredential(webApp_clientId, clientSecret);
var creds = await ApplicationTokenProvider.LoginSilentAsync(domain, clientCredential);
SynchronizationContext.SetSynchronizationContext(new SynchronizationContext());
_adlsClient = new DataLakeStoreAccountManagementClient(creds) { SubscriptionId = _subId };
_adlsFileSystemClient = new DataLakeStoreFileSystemManagementClient(creds);
await _adlsFileSystemClient.FileSystem.MkdirsAsync("<name-of-my-dlstore>", "tempdir");
また、Azure Data Lake インスタンスの指定したフォルダーにアプリのアクセス許可を付与するようにしました。
また、このディレクトリ内のすべての子フォルダーに同じレベルまたはアクセス許可を与えるようにしました。
ファイル パスに割り当てられたアクセス許可
実装を実行すると、以下のエラーが発生します。何かアドバイスはありますか?System.AggregateException: '1 つ以上のエラーが発生しました。'
内部例外 1
AdalServiceException: AADSTS90002: 要求されたテナント識別子 'https:' が無効です。
トレース ID: d1718b0a-0533-4708-a311-4e1622840100
相関 ID: a1544df2-692e-43d2-8acf-25a847956fb6
タイムスタンプ: 2017-03-29 01:30:18Z
内部例外 2
WebException: リモート サーバーがエラーを返しました: (400) Bad Request。
ソリューション の一部として、ルート フォルダーに読み取り、書き込み、実行のアクセス許可を付与する必要があります (これは、これらのアクセス許可を付与する 1 つのフォルダーに細分化されます)。そのサブフォルダーとそのすべての子供/子供に対するこれらのアクセス許可を削除するオプションを選択していることを確認してください。