Configurar funções de serviço de nuvem do Azure com o Visual Studio

Observação

Este artigo se aplica aos Serviços de Nuvem do Azure (clássico), que agora foram preteridos para novos clientes e serão desativados em 31 de agosto de 2024. Os serviços existentes criados com essa tecnologia ainda têm suporte por meio dos Serviços de Nuvem do Azure (suporte estendido). Para novos desenvolvimentos, é recomendável usar um tipo de serviço mais recente projetado para sua finalidade específica, como o Serviço de Aplicativo do Azure, o Azure Functions ou os Aplicativos de Contêiner do Azure. Para obter a lista mais recente de serviços disponíveis, confira Diretório de produtos do Azure.

Um serviço de nuvem do Azure pode ter uma ou mais funções web ou de trabalho. Para cada função, você precisa definir como essa função é instalada e também configurar como ela é executada.

As informações sobre seu serviço de nuvem são armazenadas nos seguintes arquivos:

  • ServiceDefinition.csdef – o arquivo de definição de serviço define as configurações de tempo de execução de seu serviço de nuvem, incluindo as funções que são necessárias, os pontos de extremidade e o tamanho da máquina virtual. Nenhum dos dados armazenados em ServiceDefinition.csdef pode ser alterado quando a função está sendo executada.
  • ServiceConfiguration.cscfg — o arquivo de configuração de serviço define quantas instâncias de uma função são executadas e os valores das configurações definidas para uma função. Os dados armazenados em ServiceConfiguration.cscfg podem ser alterados enquanto a função está sendo executada.

Para armazenar valores diferentes para essas configurações que controlam como uma função é executada, você pode definir várias configurações de serviço. Você pode usar uma configuração de serviço diferente para cada ambiente de implantação. Por exemplo, você pode definir sua cadeia de conexão de conta de armazenamento para usar o Emulador de Armazenamento do Azure local em uma configuração de serviço local e criar outra configuração de serviço para usar o Armazenamento do Azure na nuvem.

Quando você cria um serviço de nuvem do Azure no Visual Studio, duas configurações de serviço são criadas e adicionadas automaticamente ao projeto do Azure:

  • ServiceConfiguration.Cloud.cscfg
  • ServiceConfiguration.Local.cscfg

Pré-requisitos

Configurar um serviço de nuvem do Azure

Você pode configurar um serviço de nuvem do Azure por meio do Gerenciador de Soluções no Visual Studio, conforme mostrado nas seguintes etapas:

  1. Crie ou abra um projeto de serviço de nuvem do Azure no Visual Studio.

  2. No Gerenciador de Soluções, clique com o botão direito do mouse no projeto e, no menu de contexto, selecione Propriedades.

    Solution Explorer project context menu

  3. Na página de propriedades do projeto, selecione a guia Desenvolvimento.

    Project properties page - development tab

  4. Na lista Configuração de Serviço, escolha o nome da configuração do serviço que deseja editar. (Se quiser fazer alterações em todas as configurações de serviço para essa função, selecione Todas as Configurações).

    Importante

    Se você escolher uma configuração de serviço específica, algumas propriedades ficarão desabilitadas porque elas só podem ser definidas para todas as configurações. Para editar essas propriedades, você deve escolher Todas as Configurações.

    Service Configuration list for an Azure cloud service

Alterar o número de instâncias de função

Para melhorar o desempenho do serviço de nuvem, você pode alterar o número de instâncias de uma função em execução, com base no número de usuários ou na carga esperada para uma função específica. Uma máquina virtual separada é criada para cada instância de uma função quando o serviço de nuvem é executado no Azure. Isso afeta a cobrança pela implantação desse serviço de nuvem. Para obter mais informações sobre a fatura, veja Entenda sua fatura do Microsoft Azure.

  1. Crie ou abra um projeto de serviço de nuvem do Azure no Visual Studio.

  2. Em Gerenciador de Soluções, expanda o nó do projeto. No nó Funções, clique com o botão direito do mouse na função que deseja atualizar e, no menu de contexto, selecione Propriedades.

    Solution Explorer Azure role context menu

  3. Selecione a guia Configuração.

    Configuration tab

  4. Na lista Configuração de Serviço, selecione a configuração de serviço que deseja atualizar.

    Service Configuration list 1

  5. Na caixa de texto Contagem de instâncias , digite o número de instâncias que você deseja iniciar para essa função. Cada instância é executada em uma máquina virtual separada quando você publica o serviço de nuvem no Azure.

    Updating the Instance Count

  6. Na barra de ferramentas do Visual Studio, selecione Salvar.

Gerenciar cadeias de conexão para contas de armazenamento

Você pode adicionar, remover ou modificar cadeias de conexão para suas configurações de serviço. Por exemplo, você pode querer uma cadeia de conexão local para uma configuração de serviço local que tem um valor de UseDevelopmentStorage=true. Você também pode querer definir uma configuração de serviço de nuvem que use uma conta de armazenamento no Azure.

Aviso

Quando você insere as informações de chave da conta de Armazenamento do Azure para uma cadeia de conexão de conta de armazenamento, essas informações são armazenadas localmente no arquivo de configuração de serviço. No entanto, atualmente essas informações não são armazenadas como texto criptografado.

Ao usar um valor diferente para cada configuração de serviço, você não precisa usar cadeias de conexão diferentes em seu serviço de nuvem ou modificar seu código quando publicar o serviço de nuvem no Azure. É possível usar o mesmo nome para a cadeia de conexão no seu código e o valor será diferente, com base na configuração de serviço que você selecionar quando criar seu serviço de nuvem ou quando publicá-lo.

  1. Crie ou abra um projeto de serviço de nuvem do Azure no Visual Studio.

  2. Em Gerenciador de Soluções, expanda o nó do projeto. No nó Funções, clique com o botão direito do mouse na função que deseja atualizar e, no menu de contexto, selecione Propriedades.

    Solution Explorer Azure role context menu

  3. Selecione a guia Settings (Configurações).

    Settings tab

  4. Na lista Configuração de Serviço, selecione a configuração de serviço que deseja atualizar.

    Service Configuration

  5. Para adicionar uma cadeia de conexão, selecione Adicionar Configuração.

    Add connection string

  6. Depois que a nova configuração tiver sido adicionada à lista, atualize a linha na lista com as informações necessárias.

    New connection string

    • Nome — digite o nome que deseja usar para a cadeia de conexão.
    • Tipo — selecione Cadeia de Conexão na lista suspensa.
    • Valor — você pode inserir a cadeia de conexão diretamente na célula Valor ou selecionar as reticências (...) para trabalhar na caixa de diálogo Criar Cadeia de Conexão de Armazenamento.
  7. Na caixa de diálogo Criar Cadeia de Conexão de Armazenamento, selecione uma opção para Cadeia de Conexão. Em seguida, siga as instruções para a opção selecionada:

    • Emulador de Armazenamento do Microsoft Azure – se você selecionar essa opção, as configurações restantes na caixa de diálogo serão desabilitadas, uma vez que se aplicam apenas ao Azure. Selecione OK.
    • Sua assinatura — se selecionar essa opção, use a lista suspensa para selecionar e entrar em uma conta da Microsoft ou adicionar uma conta da Microsoft. Selecione uma assinatura do Azure e a conta de armazenamento. Selecione OK.
    • Credenciais inseridas manualmente — digite o nome da conta de armazenamento e a chave primária ou secundária. Selecione uma opção para Conexão (HTTPS é recomendado na maioria dos cenários). Selecione OK.
  8. Para excluir uma cadeia de conexão, selecione a cadeia de conexão e escolha Remover Configuração.

  9. Na barra de ferramentas do Visual Studio, selecione Salvar.

Acessar uma cadeia de conexão de modo programático

As etapas a seguir mostram como acessar de modo programático uma cadeia de conexão usando C#.

  1. Adicione o seguinte usando diretrizes a um arquivo C#, no qual você vai usar a configuração:

    using Microsoft.WindowsAzure;
    using Microsoft.WindowsAzure.Storage;
    using Microsoft.WindowsAzure.ServiceRuntime;
    
  2. O código a seguir ilustra um exemplo de como acessar uma cadeia de conexão. Substitua o espaço reservado <ConnectionStringName> pelo valor apropriado.

    // Setup the connection to Azure Storage
    var storageAccount = CloudStorageAccount.Parse(RoleEnvironment.GetConfigurationSettingValue("<ConnectionStringName>"));
    

Adicionar configurações personalizadas para serem usadas em seu serviço de nuvem do Azure

Configurações personalizadas no arquivo de configuração de serviço permitem que você adicione um nome e valor para uma cadeia de caracteres para uma configuração de serviço específica. Você pode optar por usar essa configuração para configurar um recurso no seu serviço de nuvem lendo o valor da configuração e usando esse valor para controlar a lógica em seu código. Você pode alterar esses valores de configuração de serviço sem precisar recompilar o pacote de serviço ou quando o serviço de nuvem estiver em execução. Seu código pode verificar se há notificações de quando uma configuração é alterada. Para obter mais informações, consulte o evento RoleEnvironment.Changing.

Você pode adicionar, remover ou modificar configurações personalizadas para suas configurações de serviço. Talvez você queira valores diferentes para essas cadeias de caracteres para configurações de serviço diferentes.

Ao usar um valor diferente para cada configuração de serviço, você não precisa usar cadeias de caracteres diferentes em seu serviço de nuvem ou modificar seu código quando publicar o serviço de nuvem no Azure. É possível usar o mesmo nome para a cadeia de caracteres no seu código e o valor será diferente, com base na configuração de serviço que você selecionar quando criar seu serviço de nuvem ou quando publicá-lo.

  1. Crie ou abra um projeto de serviço de nuvem do Azure no Visual Studio.

  2. Em Gerenciador de Soluções, expanda o nó do projeto. No nó Funções, clique com o botão direito do mouse na função que deseja atualizar e, no menu de contexto, selecione Propriedades.

    Solution Explorer Azure role context menu

  3. Selecione a guia Settings (Configurações).

    Settings tab

  4. Na lista Configuração de Serviço, selecione a configuração de serviço que deseja atualizar.

    Service Configuration list 2

  5. Para adicionar uma configuração personalizada, selecione Adicionar Configuração.

    Add custom setting

  6. Depois que a nova configuração tiver sido adicionada à lista, atualize a linha na lista com as informações necessárias.

    New custom setting

    • Nome — insira o nome da configuração.
    • Tipo — selecione Cadeia de Caracteres na lista suspensa.
    • Valor — insira o valor da configuração. Você pode inserir o valor diretamente na célula Valor ou selecionar as reticências (...) para inserir o valor na caixa de diálogo Editar Cadeia de Caracteres.
  7. Para excluir uma configuração personalizada, selecione-a e, em seguida, selecione Remover Configuração.

  8. Na barra de ferramentas do Visual Studio, selecione Salvar.

Acessar o valor de uma configuração personalizada de modo programático

As etapas a seguir mostram como acessar de modo programático uma configuração personalizada usando C#.

  1. Adicione o seguinte usando diretrizes a um arquivo C#, no qual você vai usar a configuração:

    using Microsoft.WindowsAzure;
    using Microsoft.WindowsAzure.Storage;
    using Microsoft.WindowsAzure.ServiceRuntime;
    
  2. O código a seguir ilustra um exemplo de como acessar uma configuração personalizada. Substitua o espaço reservado <SettingName> pelo valor apropriado.

    var settingValue = RoleEnvironment.GetConfigurationSettingValue("<SettingName>");
    

Gerenciar o armazenamento local para cada instância de função

Você pode adicionar o armazenamento do sistema de arquivos local para cada instância de uma função. Os dados armazenados nesse armazenamento não podem ser acessados por outras instâncias da função para as quais os dados são armazenados, nem por outras funções.

  1. Crie ou abra um projeto de serviço de nuvem do Azure no Visual Studio.

  2. Em Gerenciador de Soluções, expanda o nó do projeto. No nó Funções, clique com o botão direito do mouse na função que deseja atualizar e, no menu de contexto, selecione Propriedades.

    Solution Explorer Azure role context menu

  3. Selecione a guia Armazenamento Local.

    Local storage tab

  4. Na lista Configuração de Serviço, assegure-se de que Todas as Configurações esteja selecionada como as configurações de armazenamento local que se aplicam a todas as configurações de serviço. Qualquer outro valor faz com que todos os campos de entrada na página sejam desabilitados.

    Service Configuration list 3

  5. Para adicionar uma entrada de armazenamento local, selecione Adicionar Armazenamento Local.

    Add local storage

  6. Depois que a nova entrada de armazenamento local tiver sido adicionada à lista, atualize a linha na lista com as informações necessárias.

    New local storage entry

    • Nome — digite o nome que deseja usar para o novo armazenamento local.
    • Tamanho (MB) — digite o tamanho em MB que você precisa para o novo armazenamento local.
    • Limpar na reciclagem da função — selecione essa opção para remover os dados desse novo armazenamento local quando a máquina virtual da função for reciclada.
  7. Para excluir uma entrada de armazenamento local, selecione a entrada e Remover Armazenamento Local.

  8. Na barra de ferramentas do Visual Studio, selecione Salvar.

Acessar o armazenamento local de modo programático

Esta seção ilustra como acessar de modo programático o armazenamento local usando C# ao gravar um arquivo de texto de teste MyLocalStorageTest.txt.

Gravar um arquivo de texto no armazenamento local

O código a seguir mostra um exemplo de como gravar um arquivo de texto no armazenamento local. Substitua o espaço reservado <LocalStorageName> pelo valor apropriado.

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

//Define the file name and path
string[] paths = { localResource.RootPath, "MyLocalStorageTest.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);
}

Localizar um arquivo gravado no armazenamento local

Para exibir o arquivo criado pelo código na seção anterior, siga estas etapas:

  1. Na área de notificação do Windows, clique com o botão direito do mouse no ícone do Azure e, no menu de contexto, selecione Mostrar Interface de Usuário do Emulador de Computação.

    Show Azure compute emulator

  2. Selecione a função web.

    Azure compute emulator

  3. No menu Emulador de Computação do Microsoft Azure, selecione Ferramentas>Abrir repositório local.

    Open local store menu item

  4. Quando a janela do Windows Explorer for aberta, digite "MyLocalStorageTest.txt" na caixa de texto Pesquisar e selecione Enter para iniciar a pesquisa.

Saiba mais sobre projetos do Azure no Visual Studio, lendo Configurando um projeto do Azure. Saiba mais sobre o esquema do serviço de nuvem lendo Referência de Esquema.