Criado como um exemplo prático, este microsserviço envia eventos para o Event Hub da Microsoft quando feito uma chamada POST no endpoint api/manager.
Macro função:
- Enviar uma mensagem para a fila do Event Hub.
Receber um estímulo via HTTP POST, enviando assim a mensagem para o Event Hub.
Configuração do Event Hub clique aui
Usando o design pattern options, as configurações são gravadas no arquivo de configuração appsettings.json.
Seguem as configurações para cada seção do arquivo de configuração:
Esse microservice usa o MySql como banco de dados.
Nesta seção você deve colocar a connectionstring que corresponde ao MySql.
{
"ConnectionStrings": {
"DefaultConnectionConfiguration": "MySql ConnectionString"
}
}
Por padrão, a globalização do microservice está em inglês.
{
"Globalization": {
"DefaultEnvironmentCulture": "en-US",
"DefaultRequestCulture": "en-US",
"SupportedCultures": [ "en-US", "pt-BR" ],
"SupportedUICultures": [ "en-US", "pt-BR" ]
}
}
O Host representa a identificação do microservice, importante para a rastreabilidade e segurança das APIs.
- ApplicationHost: endereço onde o microservice está hospedado;
- ApplicationName: nome do microservice;
- AuthorizationToken: GUID gerado para limitar o acesso ao microsserviço. Os ambientes têm tokens diferentes, portanto, para acessar as APIs, você precisará obter o token do ambiente que está acessando.
{
"Host": {
"ApplicationHost": "https://sample-microservice-device.azurewebsites.net/",
"ApplicationName": "Sample - Microservice Device",
"AuthorizationToken": "c71310fa00d949368c7e845fbdb641b6"
}
}
Todas as aplicações devem ter logs registrados no Repositório de Log. Aqui temos a seção de log, Erro.
{
"Logs": {
"Error": {
}
}
}
O log de erros é capturado automaticamente pelo host e enviado ao Repositório de Log sempre que o microservice lança uma exceção.
- ViewDetailsOnResponse: true para exibir o erro na resposta da API, caso contrário, false.
{
"Logs": {
"Error": {
"ViewDetailsOnResponse": true
}
}
}
Configurações do producer ou consumer do event hub.
As configurações para enviar objetos ao event hub.
- Name: nome que identifica o producer na injeção de dependência;
- ConnectionString: conexão do producer;
- EventHubName: nome que identifica o event hub na nuvem.
{
"EventHubs": {
"Producers": [
{
"Name": "TransactionFlow",
"ConnectionString": "Endpoint=<ENDPOINT>;SharedAccessKeyName=<SHARED_ACCESS_KEY_NAME>;SharedAccessKey=<SHARED_ACCESS_KEY>;EntityPath=<ENTITY_PATH>",
"EventHubName": "<EVENT_HUB_NAME>"
}
]
}
}
Para ver o release pipeline clique aqui.
- Para ver a documentação swagger clique aqui.