I would like to manage my Azure Cloud Services programmatically.
I am aware of the REST API but I am wondering if the is a native C# API available just like there is with Azure Storage.
REST API – Operations on Hosted Services: http://msdn.microsoft.com/en-us/library/windowsazure/ee460812.aspx
Or do I need to wrap the REST API myself as described in the post below?
Azure – Cannot programmatically perform VIP Swap: Azure – Cannot programmatically perform VIP Swap
Thanks.
Edit:
The CSManage suggestion helped me a lot.
You can reuse the ServiceManagement project and write your own client (instead of CSManage).
Use the ServiceManagementHelper to setup a channel to execute the commands.
Example:
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);
}
}
I’ve had a very similar requirement and unfortunately there is no wrapper that lets you do this, the one mentioned in the other answer only has table/blob/queue support.
However there is a neat solution called csmanage, it’s a command prompt application that uses the REST API under the hood lets you manage pretty much anything on Azure; you can view the source and see how it’s done and how to implement it yourself.
Link to CSManage on MSDN
Word of warning: it’s quite a task to grasp the flow of the application but once you get going, it gets easier.
Hint: Have a look at
CSManageCommand.cson line 104 is where the magic starts to happen, they’re using WCF to communicate with the API which you can see inapp.config.If you’re looking to use certain known command you can see they’re presented in the following classes: