Skip to content

An example of how to use the Azure Devops Tracker NuGet with Azure Function.

Notifications You must be signed in to change notification settings

typinghard/azure-devops-tracker-function

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Azure DevOps Tracker Function

Nesse repositório temos uma Azure Function que utiliza o Nuget que também pode ser encontrado no Azure DevOps Tracker para mostrar um exemplo prático de utilização do mesmo.

O objetivo é demonstrar a utilização do ADT através de uma Azure Function e, além disso, mostrar os passos necessários para a criação dessa Azure Function no Portal Azure. Para mais informações mais detalhadas e específicas sobre o Azure DevOps Tracker, consulte a nossa Wiki.

Etapa 1

Configuração da Azure Function

Diferente de uma startup de um projeto MVC ou API, requer que a startup herde de uma FunctionsStartup.

 public class Startup : FunctionsStartup
    {
        public override void Configure(IFunctionsHostBuilder builder)
        {
            builder.Services.AddScoped<ServiceToInject>();
            builder.Services.AddScoped<AzureDevopsTrackerService>(); 
            builder.Services.AddAzureDevopsTracker(new DataBaseConfig("[YOUR_CONNECTION_STRING]"));
        }
    }

Novamente, diferente de um projeto MVC ou API, dentro da controller ao invés de injetar a interface será injetado a classe concreta.

    public class WorkItemFunctionsController
    {
        private readonly AzureDevopsTrackerService _azureDevopsTrackerService;

        public WorkItemFunctionsController(
            AzureDevopsTrackerService azureDevopsTrackerService)
        {
            _azureDevopsTrackerService = azureDevopsTrackerService;
        }

        [FunctionName("workitem")]
        public async Task<IActionResult> Create(
            [HttpTrigger(AuthorizationLevel.Function, "post", Route = null)] HttpRequest req,
            ILogger log)
        {

            try
            {
                var workItemDTO = JsonConvert.DeserializeObject<CreateWorkItemDTO>(req.GetBody());
                await _azureDevopsTrackerService.Create(workItemDTO);
            }
            catch (Exception ex)
            {
                return new OkObjectResult(ex.Message);
            }

            return new OkObjectResult(HttpStatusCode.OK);
        }

        [FunctionName("workitem-update")]
        public async Task<IActionResult> Update(
            [HttpTrigger(AuthorizationLevel.Function, "post", Route = null)] HttpRequest req,
            ILogger log)
        {
            try
            {
                var workItemDTO = JsonConvert.DeserializeObject<UpdatedWorkItemDTO>(req.GetBody());
                await _azureDevopsTrackerService.Update(workItemDTO);
            }
            catch (Exception ex)
            {
                return new OkObjectResult(ex.Message);
            }

            return new OkObjectResult(HttpStatusCode.OK);
        }
    }

Como resultado final, os endpoints ficarão da seguinte forma

Endpoints Azure Functions

Etapa 2

Criação da Azure Function no Portal Azure

Passo 1

Crie um recurso do tipo Function App com as configurações que desejar.

Passo 2

Passo 2:

Suba a Azure Function para o DevOps. Você pode ver um exemplo de como fazer isso pelo Azure DevOps em typinghard.azure-devops-tracker-function e o exemplo do yalm.

Passo 3:

Após isso, as Functions poderão ser visualizadas no Azure Portal. No exemplo abaixo, estão as Functions criadas nesse repositório.

Passo 3

Passo 4:

Configurar no Azure DevOps as URLs, procedimento que também pode ser visto na Wiki na seção Configurando o DevOps

About

An example of how to use the Azure Devops Tracker NuGet with Azure Function.

Topics

Resources

Stars

Watchers

Forks

Languages