プログラムで Azure Stream Analytics ジョブを作成しようとしました (そして失敗しました)。私はもともとこの例に従っていました:
https://azure.microsoft.com/en-gb/documentation/articles/stream-analytics-dotnet-management-sdk/
しかし、ログインするためのダイアログが表示されます。このサーバー側を実行できるようにしたいのです。Resource Manager API を使用するには、Azure AD を使用する必要があるようです。私はこれを通して自分の道を歩んできました:
https://msdn.microsoft.com/en-us/library/azure/dn790557.aspx#bk_portal
コードは次のようになります。
var authContext = new AuthenticationContext("https://login.microsoftonline.com/{tenant id}/oauth2/token");
var clientId = "{app client id}";
var appKey = "{app key}";
var subscriptionId = "{subscription id}";
var clientCredential = new ClientCredential(clientId, appKey);
var result = authContext.AcquireToken("https://management.core.windows.net/", clientCredential);
var creds = new TokenCloudCredentials(subscriptionId, result.AccessToken);
var client = new StreamAnalyticsManagementClient(creds);
var jobCreateParameters = new JobCreateOrUpdateParameters
{
Job = new Job
{
Name = streamAnalyticsJobName,
Location = "North Europe",
Properties = new JobProperties
{
EventsOutOfOrderPolicy = EventsOutOfOrderPolicy.Adjust,
Sku = new Sku
{
Name = "Standard"
}
}
}
};
var jobCreateResponse = client.StreamingJobs.CreateOrUpdate(resourceGroupName, jobCreateParameters);
トークンを正常に取得できますが、ジョブの作成に失敗します:
AuthorizationFailed: The client 'REDACTED' with object id 'REDACTED' does not have authorization to perform action 'Microsoft.StreamAnalytics/streamingjobs/write' over scope '/subscriptions/REDACTED/resourcegroups/REDACTED/providers/Microsoft.StreamAnalytics/streamingjobs/REDACTED'
私は何か間違ったことをしていますか?アプリには、委任されたアクセス許可が設定されています。