SlideShare uma empresa Scribd logo
Tornando as coisas maisTornando as coisas mais
simples com Azuresimples com Azure
Functions e Node.JSFunctions e Node.JS
Trilha - Node.JS
Matheus Donizete
front-end Developer
@MathDonizete
Amante de futebol
Corinthiano
JavaScript developer
Vim do Front
Um Santista que mora em
Curitiba
Aplicações em Tempo Real
IoT
Organizador #CapiConf
#AlwaysBetOnJavaScript
matheusdonizete.github.io
AgendaAgenda
1. Conceitos
1. Introdução (TL;DR)
2. Arquitetura Serverless
3. Serviços como um todo
4. Paradigma
5. Por que Node.JS?
2. Azure Functions
3. VS Code Tips
Introdução (TL;DR)Introdução (TL;DR)
Introdução Introdução 
Máquina Física
Virtualização
Cloud Computing
Container
Vamos conversar?Vamos conversar?
Motivação:Motivação:
Deixar o desenvolvedor se preocupar com aquilo que
realmente interessa, a aplicação
 
ServerlessServerless
Serverless DefiniçõesServerless Definições
Duas Caracterizações:
1. Uma SPA e um BaaS (Backend as a Service) caracterizava
uma arquitetura serverless, onde a lógica não é
processada no backend, consumindo third-party
resources (Auth0 por exemplo);
2. FaaS, a lógica continua sendo feita pelo desenvolvedor,
porém é baseada em eventos e Stateless.
ServerlessServerless
nem tudo são floresnem tudo são flores
Vantagens:
Escalabilidade
Baixo Custo
Tempo de
desenvolvimento
Foco no usuário
Baixa latência
Desvantagens:
Problemas de Gerência
Problemas de aplicações
multitenancy
Considerações de segurança
Repetição de lógica
Testes
Serverless - FaaSServerless - FaaS
Em outras palavras, oEm outras palavras, o
Backend para o FrontendBackend para o Frontend
Serverless - Um diagramaServerless - Um diagrama
ServerlessServerless
Você deixa de se preocuparVocê deixa de se preocupar
com a infra e passa a secom a infra e passa a se
preocupar compreocupar com
configuração.configuração.
Por que Node.JS?Por que Node.JS?
Por que Node.JS?Por que Node.JS?
Porque eu posso!!Porque eu posso!!
E porque entendo oE porque entendo o
que tô fazendoque tô fazendo
Azure FunctionsAzure Functions
Functions
Integração com Serviços externos
Executar Tarefas
Baseado em Eventos
CI
Pague só o que usar
Segurança
Suporte a diversas Linguagens: C#, JavaScript, Java,
PHP, Bash, Batch e mais umas aí...
ComportamentoComportamento
HTTPTrigger 
TimerTrigger
GitHub webhook
Generic webhook
CosmosDBTrigger 
BlobTrigger 
QueueTrigger
EventHubTrigger
ServiceBusQueueTrigger
ServiceBusTopicTrigger
Tipos de FunçõesTipos de Funções
Exemplo de Arquitetura Web
Com Chatbots (modinha)
Mais um Diagrama
PricingPricing
E agora: ProxiesE agora: Proxies
Recurso utilizado para alterar o funcionamento das sua
funções, podendo sobrescrever tanto o Request quanto
o Response de uma URI
Configurado utilizando o proxies.json
ProxiesProxies
Configurado utilizando o proxies.json
{
"$schema": "http://json.schemastore.org/proxies",
"proxies": {
"add-name-to-query": {
"matchCondition": {
"route": "/"
},
"backendUri": "https://yourbackend.azurewebsites.net/api/HttpTrigger",
"requestOverrides": {
"backend.request.querystring.name": "{name}"
}
}
}
}
Show me the CodeShow me the Code
Show me the Code 1Show me the Code 1
//O simples do simples / auto gerado
module.exports = function (context, req) {
if (req.query.name || (req.body && req.body.name)) {
context.res = {
// status: 200, /* Defaults to 200 */
body: "Hello " + (req.query.name || req.body.name)
};
}
else {
context.res = {
status: 400,
body: "Deu ruim"
};
}
context.done();
};
O Objeto ContextO Objeto Context
Ele éEle é O CARAO CARA da nossada nossa
aplicaçãoaplicação
É responsável por gerenciar os dados e os
"estados" da nossa função
Context - ReferencesContext - References
context.bindings - propriedade
context.done - método
context.log - método
Show me the Code 2Show me the Code 2
w/ node_modulesw/ node_modules
const { createHandler } = require('azure-function-express');
const { data } = require('./dictionary');
const express = require('express');
const app = express();
app.get('/api/:foo/:bar', (req, res) => {
res.json({
foo: req.params.foo,
bar: req.params.bar
});
});
app.get('/api/list', (req, res) => {
res.json({
status: true,
data
});
});
module.exports = createHandler(app);
Show me the Code 2Show me the Code 2
w/ node_modulesw/ node_modules
// function.json
{
"bindings": [{
"authLevel" : "anonymous",
"type" : "httpTrigger",
"direction" : "in",
"name" : "req",
"route" : "{*segments}"
}, {
"type" : "http",
"direction" : "out",
"name" : "res"
}]
}
Show me the Code 2Show me the Code 2
w/ node_modules - Steps:w/ node_modules - Steps:
1. Acessar:
https://<function_app_name>.scm.azurewebsites.net
2. Debug Console > CMD.
3. Acessar: D:homesitewwwroot
4. npm install
Show me the Code 2Show me the Code 2
w/ node_modules - Steps:w/ node_modules - Steps:
1. Acessar:
https://<function_app_name>.scm.azurewebsites.net
2. Debug Console > CMD.
3. Acessar: D:homesitewwwroot
4. npm install
MENTIRA
MENTIRA
ExemplosExemplos
VS CODEVS CODE
The Best Text Editor in the World
First of AllFirst of All
Functions v2:
npm i ­g azure­functions­core­tools ­­
unsafe­perm true
Functions v1:
npm i ­g azure­functions­core­tools@1
VS CODE - ExtensõesVS CODE - Extensões
Azure FunctionsAzure Functions
Azure Cosmos DBAzure Cosmos DB
Azure AccountAzure Account
De brinde: VS Live ShareDe brinde: VS Live Share
VS CODE TIPSVS CODE TIPS
ReferênciasReferências
https://www.martinfowler.com/articles/serverless.html
https://docs.microsoft.com/en-us/azure/cosmos-
db/serverless-computing-database
https://docs.microsoft.com/en-us/azure/azure-
functions/functions-overview
https://blogs.msdn.microsoft.com/azuredev/2017/03/14/usin
g-azure-functions-as-a-lightweight-api-gateway/
Obrigado pelaObrigado pela
atenção!!atenção!!@MathDonizete
GitHub:
MatheusDonizete

Mais conteúdo relacionado

PDF
Node.js - #5 - Process - Rodrigo Branas
PPTX
Threads tasks e o tal do thread pool
PDF
Node.js - #6 - Core Modules - net - Rodrigo Branas
PDF
Node.js - #7 - Core Modules - http - Parte 1 - Rodrigo Branas
PDF
Desenvolvendo com Node.JS - Mongoose + MongoDB + Vue.JS
PDF
Workshop Node.js + MongoDB + Mongoose
PDF
Zabbix Conference LatAm 2019 - Automação: Ganhando produtividade
PDF
Grails parte ii - plugins & rest
Node.js - #5 - Process - Rodrigo Branas
Threads tasks e o tal do thread pool
Node.js - #6 - Core Modules - net - Rodrigo Branas
Node.js - #7 - Core Modules - http - Parte 1 - Rodrigo Branas
Desenvolvendo com Node.JS - Mongoose + MongoDB + Vue.JS
Workshop Node.js + MongoDB + Mongoose
Zabbix Conference LatAm 2019 - Automação: Ganhando produtividade
Grails parte ii - plugins & rest

Mais procurados (11)

PPTX
Mecanismo de busca PHP + MongoDB
PDF
DevDay - O elo perdido: sincronizando webapps
PDF
Introdução ao MongoDB
PDF
Mecanismo de Busca com Node.js + MongoDB
PDF
Tracking.js
PPTX
Introdução ao MongoDB II
PDF
7Masters jQuery - boas práticas em JavaScriptQuery, com Bruno Rocha
PDF
Crawling - Coleta de dados na Web com PHP
PDF
Backend
PDF
Mini Curso PHP Twig - PHP Conference 2017
PDF
Php curl - Coleta de dados na web
Mecanismo de busca PHP + MongoDB
DevDay - O elo perdido: sincronizando webapps
Introdução ao MongoDB
Mecanismo de Busca com Node.js + MongoDB
Tracking.js
Introdução ao MongoDB II
7Masters jQuery - boas práticas em JavaScriptQuery, com Bruno Rocha
Crawling - Coleta de dados na Web com PHP
Backend
Mini Curso PHP Twig - PHP Conference 2017
Php curl - Coleta de dados na web
Anúncio

Semelhante a Tornando as coisas mais simples com Azure Functions e Node.JS (20)

PDF
Front end architecture
PPTX
Boas práticas na implementação de APIs REST com ASP.NET Core - Outubro-2019
PPTX
Compartilhe facilmente sua API no Azure
PPTX
Boas práticas na implementação de APIs REST com ASP.NET Core - Agosto-2019
PDF
Azure Functions e Logic Apps
PPTX
Arquitetura API em NodeJS
PPTX
Node JS - Parte 2
PPTX
ASP.NET Core APIs: Performance Tips
PPTX
ASP .NET Core MVC
PPTX
Desenvolvimento de APIs REST Multiplataforma com ASP.NET Core - Setembro-2019
PPTX
Introdução ASP.NET Core
PPTX
TDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on Azure
PPTX
Sua Startup precisa de uma WebAPI.
PPTX
Arquiteturas Serverless + Azure Functions - Semana FCI - Mackenzie - Outubro-...
PPTX
Dicas para simplificar o desenvolvimento de APIs REST em ASP.NET Core - .NET ...
PDF
Workshop Hands-On APIX 2018 - Trilha Básica
PPTX
Desenvolvimento Serverless com Azure Functions, .NET Core e VS Code - .NET SP...
PPTX
Dicas para migrar sua aplicação ASP.NET para ASP.NET Core 2.x
PPTX
Desenvolvimento de APIs REST Multiplataforma com ASP.NET Core - Julho-2019
PDF
Desenvolvimento Client-Side 2016
Front end architecture
Boas práticas na implementação de APIs REST com ASP.NET Core - Outubro-2019
Compartilhe facilmente sua API no Azure
Boas práticas na implementação de APIs REST com ASP.NET Core - Agosto-2019
Azure Functions e Logic Apps
Arquitetura API em NodeJS
Node JS - Parte 2
ASP.NET Core APIs: Performance Tips
ASP .NET Core MVC
Desenvolvimento de APIs REST Multiplataforma com ASP.NET Core - Setembro-2019
Introdução ASP.NET Core
TDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on Azure
Sua Startup precisa de uma WebAPI.
Arquiteturas Serverless + Azure Functions - Semana FCI - Mackenzie - Outubro-...
Dicas para simplificar o desenvolvimento de APIs REST em ASP.NET Core - .NET ...
Workshop Hands-On APIX 2018 - Trilha Básica
Desenvolvimento Serverless com Azure Functions, .NET Core e VS Code - .NET SP...
Dicas para migrar sua aplicação ASP.NET para ASP.NET Core 2.x
Desenvolvimento de APIs REST Multiplataforma com ASP.NET Core - Julho-2019
Desenvolvimento Client-Side 2016
Anúncio

Último (19)

PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PPTX
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
PDF
Aula04-Academia Heri- Tecnologia Geral 2025
PDF
Apple Pippin Uma breve introdução. - David Glotz
PPTX
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PDF
Processos na gestão de transportes, TM100 Col18
PDF
COBITxITIL-Entenda as diferença em uso governança TI
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PPTX
Aula 18 - Manipulacao De Arquivos python
PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
Custos e liquidação no SAP Transportation Management, TM130 Col18
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
Aula04-Academia Heri- Tecnologia Geral 2025
Apple Pippin Uma breve introdução. - David Glotz
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
Processos na gestão de transportes, TM100 Col18
COBITxITIL-Entenda as diferença em uso governança TI
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Aula 18 - Manipulacao De Arquivos python
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx

Tornando as coisas mais simples com Azure Functions e Node.JS