Desenvolvimento

17 mai, 2018

Executando arquivos .exe no Azure utilizando Azure Functions

Publicidade

Introdução

Às vezes temos um Job ou uma Console Application que são executadas todo o dia, toda hora ou a cada minuto para efetuar uma determinada ação. Entretanto, como o advento Cloud, como faríamos se precisássemos migrar isso para o Azure e fosse inviável reescrever todo o código do Job/Console Application? Como poderíamos aproveitar o código já escrito de maneira simples e rápida? Se este é o seu cenário, esse artigo é pra você!

Aplicação Console Application

Primeiramente vamos criar uma aplicação Console Application para gerarmos um arquivo executável (.exe), pois é ele que vamos executar de dentro do Azure. No Visual Studio 2017 (ou qualquer IDE da sua preferência) vamos criar um projeto do tipo Console Application (File > New Project > Console App), conforme nos mostra a figura abaixo:

Figura 01

Agora vamos criar um código bem simples que exibirá duas mensagens na tela.

using System;

namespace AzureFunctionsApp
{
    class Imasters
    {
        public static void BemVindo()
        {
            Console.WriteLine("Bem-vindo ao Portal iMasters.");
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            Imasters.BemVindo();
            Console.WriteLine("O tema desse artigo é de como executar um .exe através de uma Azure Function.");
        }
    }
}

Feito isso, vamos colocar em modo de Release para gerar um arquivo menor e clicaremos com o botão direito sobre a nossa solution e depois em build (caso esteja utilizando o Visual Studio 2017 e goste de teclas de atalho, utilize Ctrl + Shift + B), conforme nos mostra a figura 02:

Figura 02

Se tudo correu bem, vamos localizar o executável do nosso projeto clicando sobre a solution com o botão direito e em seguida selecionando a opção “Open File in Folder Explorer”, conforme nos mostra a figura abaixo:

Figura 03

Agora que já temos o nosso programa, vamos para a segunda parte.

Microsoft Azure

Primeiramente, caso ainda não tenha uma subscription no Azure, será necessário criar uma (caso queira um passo a passo, clique aqui). Já com a nossa subscription em mãos, vamos acessar o Portal do Azure através do link: https://portal.azure.com e efetuar o nosso login.

Feito isso, vamos clicar em “Create Resource” e em seguida em “Serverless Function App”, conforme a figura abaixo:

Figura 04

Agora vamos preencher os dados necessários conforme nos mostra a figura 5 e em seguida clicar em “Create”.

Figura 05

Assim que finalizar a criação do nosso recurso, vamos abri-lo para criamos a nossa Azure Function clicando no símbolo de adição (+) ao lado de “Functions”, e em seguida vamos clicar na opção “Create your own Custom Function”.

Feito isso, vamos habilitar o Suporte para Linguagens Experimentais, depois vamos selecionar Powershell e por último, Timer Trigger, conforme nos mostra a figura 6:

Figura 06

Em seguida, vamos dar um nome para nossa Function e alteraremos nosso tempo de execução de 5 minutos para 1 minuto. e depois vamos clicar em “Create”, conforme nos mostra a figura abaixo:

Figura 07

Assim que Function for criada, vamos clicar em “Upload” e subir o executável (.exe) da nossa Aplicação Console Application. Em seguida, digitaremos o seguinte código:

& “D:\home\site\wwwroot\TimerTriggerImasters\AzureFunctionsApp.exe”

Onde D:\home\site\wwwroot\ indica o diretório padrão, TimerTriggerImasters indica o nome da nossa Function e por fim, AzureFunctionsApp.exe é o executável da nossa aplicação Console Application.

Tudo isso pode ser visto na figura 8, abaixo:

Figura 08

Clicando em “>Run”, vamos obter as mensagens que criamos na nossa aplicação Console Application, conforme a figura abaixo:

Figura 09

E assim encerramos mais um artigo. Espero que tenham gostado e até a próxima!

Obrigado.