Exportar (0) Imprimir
Expandir Tudo

Classe RoleEnvironment

Atualizado: dezembro de 2013

Fornece informações sobre a configuração, os pontos de extremidade e o status de instâncias de função em execução.

Namespace: Microsoft.WindowsAzure.ServiceRuntime
Assembly: Microsoft.WindowsAzure.ServiceRuntime (em Microsoft.WindowsAzure.ServiceRuntime.dll)

[WindowsAzureHostingPermissionAttribute(SecurityAction::LinkDemand, Unrestricted=true)] 
public ref class RoleEnvironment sealed

Você usa a classe RoleEnvironment para obter definições de configuração, recursos de armazenamento local e informações de ponto de extremidade para uma instância de função especificada. A classe também fornece eventos que permitem que a instância de função reaja a alterações de configuração e receba notificações quando a instância de função está prestes a ser interrompida.

noteObservação
O Microsoft Azure 1.3 e posterior reserva para seu próprio uso as variáveis de ambiente que começam com as letras “RD”, por exemplo “RdRoleID”. Se seu aplicativo cria variáveis de ambiente que começam com “RD”, em determinadas circunstâncias, a propriedade IsAvailable retornará false, e outros métodos e propriedades da classe RoleEnvironment resultarão na mensagem de erro “os dados de descoberta de função não estão disponíveis”. Para corrigir isso, use variáveis de ambiente que não comecem com as letras “RD”.

noteObservação
A classe RoleEnvironment pode ser usada em componentes autônomos em uma VM do Azure fora de uma função do Azure. Esses componentes podem ser programas que podem ser executados, por exemplo, entrando remotamente na instância de função e iniciando o componente a partir da linha de comando. Esses processos podem ser executados com privilégios elevados para acessar a classe RoleEnvironment.

O exemplo de código a seguir mostra como obter e gravar o valor para uma definição de configuração chamada MySetting usando o método GetConfigurationSettingValue:


var settingValue = RoleEnvironment.GetConfigurationSettingValue("MySetting"); 
Trace.WriteLine("The setting value is: " + settingValue, "Information");

Para obter mais informações sobre como definir configurações, consulte Windows Azure Service Configuration Schema e Windows Azure Service Definition Schema.

O exemplo de código a seguir mostra como recuperar um recurso de armazenamento local e gravar um arquivo de texto:


// Retrieve an object that points to the local storage resource
LocalResource localResource = RoleEnvironment.GetLocalResource("localStoreTwo");

//Define the file name and path
string[] paths = { localResource.RootPath, "MyStorageTest.txt"};
String filePath = Path.Combine(paths);

using (FileStream writeStream = File.Create(filePath))
{
   Byte[] textToWrite = new UTF8Encoding(true).GetBytes("Testing Web role storage");
   writeStream.Write(textToWrite, 0, textToWrite.Length);
}

O exemplo de código a seguir mostra como recuperar informações de ponto de extremidade para a instância de função atual:


var roleInstance = RoleEnvironment.CurrentRoleInstance; 
foreach (RoleInstanceEndpoint instanceEndpoint in roleInstance.InstanceEndpoints.Values) 
{  
   Trace.WriteLine("Instance endpoint address and port: " + instanceEndpoint.IPEndpoint, "Information");
   Trace.WriteLine("Protocol for the endpoint: " + , instanceEndpoint.Protocol, "Information");
}

O exemplo de código a seguir mostra como recuperar as alterações de configuração que foram feitas em uma instância de função:


public override bool OnStart()
{
   RoleEnvironment.Changed += RoleEnvironmentChanged;
  
   return base.OnStart();
}
   
private void RoleEnvironmentChanged(object sender, RoleEnvironmentChangedEventArgs e)
{
   // Get the list of configuration changes
   var settingChanges = e.Changes.OfType<RoleEnvironmentConfigurationSettingChange>();
      
   foreach (var settingChange in settingChanges) 
   {
      var message = "Setting: " + settingChange.ConfigurationSettingName;
      Trace.WriteLine(message, "Information");
   }
}

Os eventos são gerados somente se o ponto de extremidade interno é definido para a função no arquivo ServiceDefinition.csdef. Para obter mais informações sobre como definir pontos de extremidade, consulte How to Define Internal Endpoints for a Role.


System.Object
  Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment

Qualquer membro estático público (compartilhado no Visual Basic) desse tipo é thread-safe. Não há garantia de que qualquer membro de instância seja seguro para threads.

Plataformas de desenvolvimento

Windows Vista, Windows 7 e Windows Server 2008

Plataformas de destino

Contribuições da comunidade

ADICIONAR
Mostrar:
© 2015 Microsoft