O Google Cloud usa cotas para restringir a quantidade de um determinado recurso compartilhado do Google Cloud que você pode usar. Cada cota representa um recurso contável específico, como chamadas de API para um determinado serviço, o número de bytes enviados para um serviço específico ou o número de conexões de streaming usadas simultaneamente pelo projeto.
Muitos serviços também têm limites que não estão relacionados ao sistema de cotas. Essas são restrições fixas, como tamanhos máximos de mensagem ou o número de recursos do Pub/Sub que podem ser criados em um projeto, que não podem ser aumentadas ou diminuídas.
Ver e gerenciar cotas
Em um determinado projeto, é possível usar o painel de cotas do IAM e administrador para visualizar as cotas e o uso atuais. Também é possível usar esse painel para:
- reduzir os limites de cota;
- iniciar um processo para solicitar limites de cota mais altos.
Para ver mais informações sobre monitoramento e alerta relacionados o uso de cotas, consulte a Visão geral do Monitoring.
Atribuição de uso de cota
Para a capacidade do assinante push, o uso da cota é cobrado no projeto que contém a assinatura push. Esse é o projeto que aparece no nome da assinatura.
Para todas as outras cotas, o uso é cobrado do projeto associado às credenciais especificadas na solicitação. O uso da cota não é cobrado no projeto que contém o recurso solicitado.
Por exemplo: se uma conta de serviço no projeto A envia uma solicitação para
publicar em um tópico no projeto B, a cota é cobrada no projeto A.
Em alguns casos, talvez você queira que o uso da cota seja cobrado de outro
projeto. É possível usar o parâmetro do sistema X-Goog-User-Project
para
mudar o projeto para atribuição de cota. Para mais informações sobre X-Goog-User-Project
,
consulte Parâmetros do sistema.
É possível usar CLI gcloud para definir o projeto de atribuição de cota
para uma solicitação específica. A CLI gcloud envia
o cabeçalho de solicitação X-Goog-User-Project
.
É necessário ter o papel roles/serviceusage.serviceUsageConsumer
ou um papel personalizado com a permissão serviceusage.services.use
no projeto
que você vai usar para a atribuição de cota.
O exemplo a seguir mostra como receber uma lista de assinaturas no projeto RESOURCE_PROJECT enquanto cobra a cota de operações do administrador no projeto QUOTA_PROJECT. Execute o comando a seguir no terminal da Google Cloud CLI:
gcloud pubsub subscriptions list --project=
RESOURCE_PROJECT --billing-project=
QUOTA_PROJECT
Substitua QUOTA_PROJECT
pelo ID do projeto do Google Cloud em que você quer cobrar a cota.
No Pub/Sub, o projeto faturado é sempre aquele que contém o recurso. Só é possível mudar o projeto para atribuição de cota.
Cotas do Pub/Sub
As cotas listadas na tabela a seguir podem ser visualizadas e editadas por projeto no painel de cotas de APIs e serviços.
As cotas regionais são divididas em três tipos:
- Regiões grandes:
europe-west1
,europe-west4
,us-central1
,us-east1
,us-east4
,us-west1
,us-west2
- Regiões médias:
asia-east1
,asia-northeast1
,asia-southeast1
,europe-west2
,europe-west3
- Regiões pequenas: todas as outras
As cotas de entrega exatamente uma vez são específicas da região. Confira os detalhes de cada região na tabela a seguir.
Cota | Limite de cota padrão | Descrição |
---|---|---|
Capacidade do editor por região |
|
O uso da cota é baseado no tamanho das
É possível incluir várias mensagens em uma única solicitação de publicação, e não há cobrança de cota extra por mensagem. |
Capacidade do assinante pull por região |
|
O uso da cota é baseado no tamanho das
|
Capacidade de reconhecimento por região |
|
O uso da cota é baseado no tamanho das solicitações
|
Capacidade de inscrições por push por região |
|
Para solicitações de entrega push feitas para o endpoint push, o uso da cota é baseado no tamanho das |
Taxa de transferência de assinaturas do BigQuery por região |
|
Para solicitações feitas ao BigQuery,
o uso da cota é baseado no tamanho das |
Capacidade de assinaturas do Cloud Storage por região |
|
Para solicitações feitas ao Cloud Storage,
o uso da cota é baseado no tamanho das |
Capacidade de assinante de StreamingPull por região |
|
O uso da cota é baseado no tamanho das
As bibliotecas de cliente usam operações StreamingPull sempre que possível. |
Número de conexões StreamingPull abertas por região |
|
O número de conexões StreamingPull abertas a qualquer momento. Consulte StreamingPull. |
Operações de administrador | 6.000 por minuto (100 operações/s) |
Cada operação de administrador como GetTopicRequest cobra uma unidade dessa cota.
|
Número de mensagens consumidas de assinaturas com envio exatamente uma vez ativado por região |
|
O uso da cota é baseado no número de
|
Número de mensagens confirmadas ou com prazo estendido ao usar assinaturas com a entrega exatamente uma vez ativada por região |
|
O uso da cota é baseado no número de IDs de confirmação em solicitações
|
Unidades de cota de capacidade
O uso da cota de capacidade é medido em unidades de 1 KB. 1 KB é igual a 1.000 bytes. Por exemplo, em uma PublishRequest
com 105
mensagens de 50 bytes cada, o tamanho dos dados do usuário será 105 * 50 bytes = 5250 bytes
. Portanto, o uso da cota será max(1kB, ceil(5250 bytes/1000)) = 6kB
.
Limites de recurso
Recurso | Limites |
---|---|
Projeto |
10.000 tópicos 10.000 assinaturas anexadas e desanexadas 5.000 snapshots 10.000 esquemas |
Tópico |
10.000 assinaturas anexadas 5.000 snapshots anexados Se a retenção de mensagens de tópico estiver configurada, as mensagens publicadas em um tópico poderão ser retidas em arquivos permanentes. por até 31 dias a partir do momento da publicação. |
Assinatura |
Por padrão, retém mensagens não confirmadas
no armazenamento permanente por sete
dias a partir do momento da publicação. Não há limite no
número de mensagens retidas. Se os assinantes não usarem uma assinatura, ela expirará. O período de expiração padrão é de 31 dias. |
Esquema | Tamanho do esquema (campo definition ): 300 KBRevisões por esquema: 20 |
Solicitação de publicação | 10 MB (tamanho total) 1.000 mensagens |
Message | Tamanho da mensagem (campo data ): 10 MBAtributos por mensagem: 100 Tamanho da chave do atributo: 256 bytes Tamanho do valor do atributo: 1.024 bytes |
Streams de StreamingPull | 10 MBps por stream aberto |
Resposta de pull unária |
Número máximo de mensagens na resposta de pull: 1.000 Tamanho máximo da resposta de pull: 10 MB |
Mensagens Pull/StreamingPull | O serviço pode impor limites ao total de mensagens StreamingPull pendentes por conexão. Caso você se depare com esses limites, aumente a taxa em que as mensagens são confirmadas e o número de conexões utilizadas. |
Solicitações de Acknowledge e ModifyAckDeadline |
512 KB (tamanho total) |
Chaves de ordenação | Se as mensagens tiverem chaves de ordenação, a capacidade máxima do editor será de 1 MBps por chave. |
Objetos de bucket do Cloud Storage | Ao usar tópicos de importação do Cloud Storage, o limite para o número de objetos em um bucket é de 50 milhões. |
Usar uma conta de serviço para cotas maiores
Se você usar a ferramenta Google Cloud CLI com uma conta de usuário normal (ou seja, uma conta que não é de serviço), as operações do Pub/Sub serão limitadas a uma taxa adequada a operações manuais. As taxas acima desse limite resultam no erro RESOURCE_EXHAUSTED. Para solucionar o problema, verifique se você está usando as credenciais da conta de serviço. Se você quer usar credenciais da CLI gcloud para automação, ative uma conta de serviço nas suas operações do Pub/Sub.
Usar endpoints de local para encaminhar solicitações
Se você tiver mais cotas em regiões específicas, poderá encaminhar solicitações para essas regiões usando endpoints de localização do Pub/Sub. Quando você publica mensagens em um endpoint global, o serviço do Pub/Sub pode encaminhar o tráfego para uma região que não tem cota suficiente.
Incompatibilidades de cotas
Incompatibilidades de cotas acontecem quando as mensagens publicadas ou recebidas têm menos de 1.000 bytes. Por exemplo:
Se você publicar 10 mensagens de 500 bytes em solicitações separadas, o uso da cota do editor será de 10.000 bytes. Isso ocorre porque as mensagens com menos de 1.000 bytes são automaticamente arredondadas para o próximo incremento de 1.000 bytes.
Se você receber essas 10 mensagens em uma única resposta pull, o uso da cota do assinante poderá ser de apenas 5 KB, já que o tamanho real de cada mensagem é combinado para determinar a cota geral.
O inverso também é verdadeiro. O uso da cota do assinante poderá ser maior que o da cota do editor se você publicar várias mensagens em uma única solicitação de publicação ou receber as mensagens em solicitações push separadas.