Power Platform – Limites de chamadas à API por usuário


Olá pessoal,

[ATUALIZADO EM 10/10/2019]

Neste post vou tentar desmitificar algumas dúvidas que surgiram com o anuncio dos novos limites de chamadas à API baseados no tipo de licença dos usuários que irá entrar em vigor com o Release de Outubro (2019).

Então vamos lá…

 

O que são estes novos limites?

O novos limites de requisições de acordo com a(s) licença(s) de cada usuário, fazem parte no novo modelo de precificação que entrará em vigor em 1 de Outubro de 2019 para novos clientes/organizações e em 1 de Outubro de 2020 para existentes clientes/organizações.

A ideia principal segue o mesmo princípio dos limites de chamadas à plataforma (onde eu já falei neste post), que é de prevenir o uso abusivo das APIs, prejudicando os “seus vizinhos” nos servidores Microsoft. Porém, os limites em relação ao licenciamento de cada usuário, possuem um aspecto à mais, o financeiro que deve ser considerado. Vou falar mais sobre isso à seguir.

 

Os limites em números

Basicamente cada tipo de licença possibilita ao usuário um número máximo de requisições no período de 24 horas. Eu comecei a traduzir a listagem de licenças versus quantidade de requisições (pois não temos ainda uma página em Português), porém, devido a termos muitos termos referentes ao licenciamento, achei melhor não traduzir o que pode gerar dúvidas. Assim eu agrupei a informação oficial com algumas traduções e explicações:

 

Tipos de Licenças

Número limite de requisições à API em 24 horas

Dynamics 365 Enterprise applications – Dynamics 365 for Sales Enterprise, Dynamics 365 for Customer Service Enterprise, Dynamics 365 for Field Service, Dynamics 365 for Project Service Automation, Dynamics 365 for Retail, Dynamics 365 for Talent 20.000
Dynamics 365 Professional – Dynamics 365 for Sales Professional, Dynamics 365 for Customer Service Professional 10.000
Dynamics 365 Team Member 5.000
PowerApps per user plan 5.000
Microsoft Flow per user plan 5.000
Licenças Office (que incluem PowerApps/Microsoft Flow) 2.000
Application users / Non-interactive users / Administrative users Por esses usuários não precisarem de licença (são de graça) e por essência interagirem com os serviços da plataforma os limites são aplicados de forma diferentes dos demais. Os limites são baseados nas licenças que a tenant possui:

– Caso a tenant possuia ao menos uma (1) subscrição Dynamics 365 Enterprise. O limites destes tipos de usuários será de 100.000 chamadas em 24 horas

– Caso a tenant possuia ao menos uma (1) subscrição Dynamics 365 Professional. O limites destes tipos de usuários será de 50.000 chamadas em 24 horas

– Caso a tenant possuia ao menos uma (1) subscrição Microsoft PowerApps ou Flow. O limites destes tipos de usuários será de 25.000 chamadas em 24 horas

Sendo necessário, podemos adicionar o add-on PowerApps e Microsoft Flow para aumentar a capacidade de requisições

Para usuários que estão utilizando apps e flows e não possuem licença por usuário, irão ter o direto de fazer 1.000 chamadas por usuário (PowerApps per app plan) e 15.000 chamadas por flow (Microsoft Flow per flow plan).

Caso o usuário possua licenças de diferentes linhas de produtos, os limites serão somados. Por exemplo Dynamics 365 for Sales Enterprise (20.000) e PowerApps per app plan (1.000), toatalizando 21.000 requisições possível em 24 horas.

Caso o usuário possua licenças do mesmo produto, por exemplo Dynamics 365 for Customer Service Enterprise como a licença base e Dynamics 365 for Sales Enterprise como licença anexa. Será mantido o número de requisições da licença base, no caso 20.000.

PowerApps e Microsoft Flow add-on de aumento capacidade

Além de ser o caminho para usuários de PowerApps, Flow e para usuários não licenciados/usuários de aplicação. Temos que observar este add-on como um possível solucionador de problemas no caso de realmente termos a necessidade de um ou mais usuários precisarem fazer mais requisições do que sua atual licença permite.

Pois com o add-on podemos ganhar 10,000 extras requisições em 24 horas. E mais, o add-on pode ser adicionado quantas vezes forem precisas, por exemplo 3 add-ons adicionados em um usuário que possui Dynamics 365 for Sales Enterprise, resultaria em 50.000 requisições em 24 horas.

 

Diferença entre Limites de chamadas da API da plataforma X Limites de chamadas da API por licenciamento do usuário

Primeiramente não podemos esquecer que estes novos limites são baseados na licenças dos usuários e não em relação aos limites que a própria plataforma possui, onde detalhei no meu último post.

Para não fica nenhuma dúvida, os limites da plataforma (API request limit) existem muito mais para impedir que alguma organização faça uma grande quantidade de requisições em um curto espaço de tempo. Assim, a ideia é proteger a plataforma, pois geralmente o excesso de requisições atrapalha os “demais vizinhos/organizações” que estão no mesmo conjunto de servidores que você. Deste modo, execeções serão lançadas caso, o mesmo usuário em menos de 5 minutos faça mais do que 4.000 requisições.

limites de chamadas de acordo com o tipo de licença do usuário, como eu tenha dito anteriormente, embora tenha o mesmo conceito de minimizar os impactos de muitas chamadas à plataforma. Seu propósito é mais voltado para uma nova forma de cobrança que a Microsoft está embarcando (no meio das minhas pesquisas para este post, verifiquei que a Salesforce já pratica a cobrança de forma similar).

Outra diferenças entre os tipos de limites é de o limite por usuário, considera usuário e licença(s), determinando um limite de X requisições em um período de 24 horas. Já os limites da plataforma, consideram usuário, organização, com o limite de 5.000 requisições dentro de uma janela de 5 minutos.

Veja então que ambos limites trabalham em conjunto! Cada um com uma forma de limite, mas funcionam juntos! Indo para um modelo prático, teríamos algo como esta imagem:

 

Mas o que é considerado uma requisição na Power Platform?

Toda operação ou manipulação de registros na plataforma será considerada como uma requisição. Assim, requisições como o CRUD (criar, atualizar, recuperar e excluir) um registro serão contabilizadas.

Vale lembrar que o conceito de requisição é bem extrapolado, quando digo que toda operação é considerada, entenda-se como “tudo é contabilizado”, inclusive demais operações como atribuir e compartilhar, utilizar o CDS através de conectores como PowerApps e Flow, chamadas de plug-ins, workflows, javascript, entre outros. Tudo será contabilizado!

Porém temos três boas notícias no meio disso:

1 – Chamadas à camada de metadados (schema) não é contabilizada. Assim, ao requisitar metadados na abertura de um formulário por exemplo, só serão contabilizados as chamadas à dados. Da mesma forma, para logins e logouts de usuários, não serão contabilizados.

Quer saber quantas chamadas são contabilizadas na abertura de um formulário nativo que não possui nenhuma modificação? Scott Durow fez um excelente post à respeito disso, vale a pena conferir!

2 – Chamadas em batch (ExecuteMultiple) mesmo possuindo vários registros só contarão como apenas uma única chamada. Assim, vale muito a pena pensar nisso, ao fazer requisições que envolvem grande quantidade de registros.

3 – Requisições Múltiplas (RetrieveMultilpe) mesmo retornando mais do que um registro contam apenas como uma única chamada. Só serão contabilizadas mais chamadas, caso a consulta retorne paginação.

Por exemplo, o resultado da consulta foi superior à 5.000 registros (atual limite de registros retornados em uma única chamada), digamos que 12.000 registros devem ser retornados nesta consulta. Serão contabilizadas 3 requisições (1 – primeiros 5.000 registros, 2 – outros 5.000 registros e 3 – restantes 2.000 registros).


Bom, toda a informação deste post é bem recente, algumas coisas ainda podem mudar no decorrer do release de Outubro, ainda precisamos de:

  • Ferramentas de monitoramento, principalmente vindo da própria Microsoft, para sabermos o quanto cada usuário está consumindo, se algum usuário está próximo de atingir o limite de requisições, etc
    • [10/10/2019] – A Microsoft irá disponibilizar em breve uma ferramenta para monitoramento de chamadas através do Administrador da Power Platform (fonte)
  • Mais informações sobre o que acontecerá no caso de um usuário atingir o limite, ele será impedido de continuar a utilizar o sistemas? será comprado um valor  adicional por conta do excesso? Entre outras…
    • [10/10/2019] – O admin será notificado e poderemos solicitar mais requisições através de PowerApps e Microsoft Flow capacity add-in (fonte). As integrações não será paralizadas caso o limite seja atingido, nos casos da quantidade excedente seja razoável/racional (fonte)

Porém o mais importante neste momento é ter conhecimento do que está por vir, e ter isso em mente, ajudando a lhe direcionar melhor principalmente em novos projetos e os rumos à seguir.

Vamos aguardar os novos capítulos, vou fazer meu melhor para mante-los atualizados!

[]’s,

Tiago

Um comentário em “Power Platform – Limites de chamadas à API por usuário

Deixe um comentário

Este site utiliza o Akismet para reduzir spam. Saiba como seus dados em comentários são processados.