使用本机C#API管理我的Azure云服务?

使用本机C#API管理我的Azure云服务?,c#,api,rest,azure,C#,Api,Rest,Azure,我想以编程方式管理我的Azure云服务 我知道RESTAPI,但我想知道它是否是一个本地C#API,就像Azure存储一样可用 REST API-托管服务上的操作: 或者我需要像下面的帖子中描述的那样自己包装RESTAPI吗 Azure-无法以编程方式执行VIP交换: 谢谢 编辑: 这个建议对我帮助很大 您可以重用ServiceManagement项目并编写自己的客户端(而不是CSManage) 使用ServiceManagementHelper设置通道以执行命令 例如: public

我想以编程方式管理我的Azure云服务

我知道RESTAPI,但我想知道它是否是一个本地C#API,就像Azure存储一样可用

REST API-托管服务上的操作:

或者我需要像下面的帖子中描述的那样自己包装RESTAPI吗

Azure-无法以编程方式执行VIP交换:

谢谢


编辑:

这个建议对我帮助很大

您可以重用ServiceManagement项目并编写自己的客户端(而不是CSManage)

使用ServiceManagementHelper设置通道以执行命令

例如:

    public static string SubscriptionId { get; set; }
    public static string CertificateThumbprint { get; set; }

    public static X509Certificate2 Certificate { get; set; }

    private void button1_Click(object sender, EventArgs e)
    {
        SubscriptionId = ConfigurationManager.AppSettings["SubscriptionId"];
        CertificateThumbprint = ConfigurationManager.AppSettings["CertificateThumbprint"];

        X509Store certificateStore = new X509Store(StoreName.My, StoreLocation.CurrentUser);
        certificateStore.Open(OpenFlags.ReadOnly);
        X509Certificate2Collection certs = certificateStore.Certificates.Find(X509FindType.FindByThumbprint, CertificateThumbprint, false);
        if (certs.Count != 1)
        {
            MessageBox.Show("Client certificate cannot be found. Please check the config file. ");
            return;
        }
        Certificate = certs[0];

        // List Hosted Services
        var channel = ServiceManagementHelper.CreateServiceManagementChannel("WindowsAzureEndPoint", Certificate);
        var lhs = channel.ListHostedServices(SubscriptionId);
        foreach (HostedService hs in lhs)
        {
            MessageBox.Show(hs.ServiceName);
        }
    }

是的,有一个用于C#和.NET的WindowsAzure API


您可以找到他们的Github页面和文档。

我有一个非常类似的需求,不幸的是,没有包装器允许您这样做,另一个答案中提到的包装器只支持table/blob/queue

然而,有一个整洁的解决方案称为csmanage,它是一个命令提示符应用程序,在后台使用RESTAPI,可以让您在Azure上管理几乎任何东西;您可以查看源代码,了解它是如何完成的,以及如何自己实现它

警告:掌握应用程序的流程是一项相当艰巨的任务,但一旦开始,它就会变得更容易

提示:看一看第104行的
CSManageCommand.cs
,这是神奇的开始,他们正在使用WCF与API通信,您可以在
app.config
中看到

如果希望使用某些已知命令,可以看到它们在以下类中显示:


您还可以查看。有一个NuGet软件包可用

截至2013年10月,有一组C#库包装了WindowsAzure服务管理RESTAPI

它在nuget中以包名提供

这些博客文章提供了一些概述,文档可以在上找到


如问题所述,这些库允许您管理服务(创建部署、扩展部署、执行vip交换等),而不是与blob/表存储交互。

您可以通过其commandlet API管理虚拟机,也可以使用Azure CLI工具(在节点中编写)管理虚拟机。这就是我用的。谢谢,看起来csmanage就是我需要的。现在我要做的就是理解代码…:-)是的,我将此用于Azure存储,但它缺少所有其他内容。同样,您必须查看基于节点的CLI或commandlets API或其他内容才能完成此操作。您知道Azure Fluent Management Library的源代码是否在某处可用吗?我不确定它是否与nuget软件包一起最新,但是你可以在找到来源。