Quando si utilizzano i metodi seguenti per arrestare e interrogare le istanze del ruolo. Quando spengo una VM tutte le altre istanze di ruolo vengono restituite con uno stato di pronto sconosciuto. Dopo circa un paio di minuti posso interrogare nuovamente e ottenere lo stato attuale. Come posso ottenere lo stato attuale in tempo reale, utilizzando le API di gestione di Azure. O si tratta di un problema con come sono configurate le VM? Essi sono configurati con la stessa posizione di archiviazione e la stessa rete virtualeLa chiusura della macchina virtuale restituisce tutti gli stati VM come sconosciuti
Il codice mostrato è stato basato fuori il modello per implementare e gestire macchine virtuali in Visual Studio 2015.
La chiamata per spegnere il VM:
var shutdownParams = new VirtualMachineShutdownParameters();
if (deallocate)//deallocate is true in this instance
shutdownParams.PostShutdownAction = PostShutdownAction.StoppedDeallocated; // Fully deallocate resources and stop billing
else
shutdownParams.PostShutdownAction = PostShutdownAction.Stopped; // Just put the machine in stopped state, keeping resources allocated
await _computeManagementClient.VirtualMachines.ShutdownAsync(_parameters.CloudServiceName, _parameters.CloudServiceName, vmName, shutdownParams);
la chiamata alla query per tutte le istanze di ruolo XXX_VirtualMachine
è una classe che contiene il nome e l'istanza di stato:
internal List<XXX_VirtualMachine> GetAllVirtualMachines()
{
List<XXX_VirtualMachine> vmList = new List<XXX_VirtualMachine>();
try
{
DeploymentGetResponse deployment;
deployment = _computeManagementClient.Deployments.GetByName(_parameters.CloudServiceName, _parameters.CloudServiceName);
for (int i = 0; i < deployment.RoleInstances.Count; i++)
{
vmList.Add(new XXX_VirtualMachine(deployment.RoleInstances[i].InstanceName, deployment.RoleInstances[i]));
}
}
catch (Exception e)
{
System.Windows.Forms.MessageBox.Show(e.Message);
}
return vmList;
}
Questa domanda mi incuriosisce, ma non ho molto tempo per esplorarlo! Potresti mettere insieme una piccola app per console che mostri ciò che stai vedendo (qualcosa che posso inserire in VS e guardare quando ho un'ora) - Non posso promettere che troverò qualcosa! ma non si sa mai –
Potrei mettere insieme un'app ma non posso concederti l'accesso alle mie macchine e al certificato di gestione di Azure. Posso creare una shell in cui fornire il nome del servizio cloud e un percorso per un certificato per verificare se si dispone di un account Azure. Le mie scuse, ma il mio team per la sicurezza personale sarebbe su di me se lo facessi. – Sorceri
Va bene, ho account e ambienti di test su cui posso farcela, non è il momento di mettere insieme il codice, speravo che qualcun altro lo scoprisse! Ma dato che non ce l'ho, gli darò un calcio! –