Я хочу выполнить вызовы на основе групп ресурсов. Например: https://msdn.microsoft.com/en-us/library/azure/mt163572.aspxСуществует ли C# sdk/wrapper для API API управления ресурсами Azure?
Библиотеки управления Azure, похоже, не обладают этой возможностью (если только я чего-то не хватает). Существует ли какая-либо SDK или клиентская оболочка, способная совершить такой вызов?
EDIT: Gaurav указал мне на то, что мне нужно. Собираюсь делать людей прочными и расширять то, что я сделал, чтобы помочь очистить грязные мутные воды, которые являются API управления ресурсами Azure.
В диспетчере пакетов вашего приложения сделать: Install-Package Microsoft.Azure.Management.Resources -Pre Затем Microsoft.IdentityModel.Clients Install-Package Microsoft.Azure.Management.Compute -Pre Затем Install-Package .ActiveDirectory -Pre
Следуйте за этим блогом для получения заголовок авторизации/маркер: https://msdn.microsoft.com/en-us/library/azure/dn722415.aspx
Затем вызовите новый API, как так (обратите внимание на небольшие изменения имени):
class Program
{
static void Main(string[] args)
{
var token = GetAuthorizationHeader();
var credential = new Microsoft.Rest.TokenCredentials(token);
using (var client = new ComputeManagementClient(credential) { SubscriptionId = ConfigurationManager.AppSettings["subscriptionId"] })
{
var vms = client.VirtualMachines.ListAll();
}
}
private static string GetAuthorizationHeader()
{
AuthenticationResult result = null;
var context = new AuthenticationContext("https://login.windows.net/" + ConfigurationManager.AppSettings["tenantId"]);
string clientId = ConfigurationManager.AppSettings["clientId"];
string clientSecret = ConfigurationManager.AppSettings["clientSecret"];
ClientCredential clientCred = new ClientCredential(clientId, clientSecret);
var thread = new Thread(() =>
{
result = context.AcquireToken(
"https://management.core.windows.net/",
clientCred);
});
thread.SetApartmentState(ApartmentState.STA);
thread.Name = "AquireTokenThread";
thread.Start();
thread.Join();
if (result == null)
{
throw new InvalidOperationException("Failed to obtain the JWT token");
}
string token = result.AccessToken;
return token;
}
}
Лично я всегда откатывал свои собственные, как только у вас есть принцип обслуживания, есть, возможно, десять строк кода для его выполнения и получения ответа. Есть ли у .net sdk эти функции? –
Он делает. Я использую System WebRequest для выполнения своих вызовов прямо сейчас. Он работает, но у sdk есть явно определенные объекты для создания запросов и ответов, которые развиваются намного быстрее и чище. – user2326106