Locais do Cloud Functions

O Cloud Functions é regional. Isso significa que a infraestrutura que executa a função do Cloud está em uma determinada região e é gerenciada pelo Google para estar disponível de modo redundante em todas as zonas dessa região.

Ao selecionar em qual região o Cloud Functions será executado, os principais fatores a serem considerados são a latência e a disponibilidade. Geralmente, é possível selecionar a região mais próxima aos usuários do Cloud Functions, mas você também deve considerar a localização dos outros produtos e serviços do Google Cloud que seu aplicativo usa. O uso de serviços em vários locais pode afetar a latência e o preço do seu aplicativo.

As regiões disponíveis para o Cloud Functions estão listadas abaixo. As diferentes versões do Cloud Functions têm disponibilidade regional diferente. Consulte a coluna "Versões de produtos compatíveis" nas tabelas.

Preços do nível 1

O Cloud Functions está disponível nas seguintes regiões com os preços da Camada 1:

Região Local Versões compatíveis do produto Emissões de CO2
asia-east1 Taiwan 1a geração, 2a geração
asia-east2 Hong Kong 1ª geração
asia-northeast1 Tóquio 1a geração, 2a geração
asia-northeast2 Osaka 1a geração, 2a geração
europe-north1 Finlândia 2ª geração Ícone de folha Baixo CO2
europe-southwest1 Madri Segunda geração
europe-west1 Bélgica 1a geração, 2a geração Ícone de folha Baixo CO2
europe-west2 Londres 1ª geração
europe-west4 Países Baixos Segunda geração
europe-west8 Milão Segunda geração
europe-west9 Paris Segunda geração Ícone de folha Baixo CO2
me-west1 Tel Aviv Segunda geração
us-central1 Iowa 1a geração, 2a geração Ícone de folha CO2 baixo
us-east1 Carolina do Sul 1a geração, 2a geração
us-east4 Norte da Virgínia 1a geração, 2a geração
us-east5 Columbus Segunda geração
us-south1 Dallas Segunda geração
us-west1 Oregon 1a geração, 2a geração Ícone de folha Baixo CO2

Preços do nível 2

O Cloud Functions está disponível nas seguintes regiões com os preços do Nível 2:

Região Local Versões compatíveis do produto Emissões de CO2
asia-east2 Hong Kong 2ª geração
asia-northeast3 Seul 1a geração, 2a geração
asia-southeast1 Singapura 1a geração, 2a geração
asia-southeast2 Jacarta 1a geração, 2a geração
asia-south1 Mumbai 1a geração, 2a geração
asia-south2 Déli, Índia 2ª geração
australia-southeast1 Sydney 1a geração, 2a geração
australia-southeast2 Melbourne 2ª geração
europe-central2 Varsóvia 1a geração, 2a geração
europe-west2 Londres 2ª geração
europe-west3 Frankfurt 1a geração, 2a geração Ícone de folha Baixo CO2
europe-west6 Zurique 1a geração, 2a geração Ícone de folha Baixo CO2
europe-west10 Berlim Segunda geração
europe-west12 Turim Segunda geração
me-central1 Doha Segunda geração
me-central2 Damã Segunda geração
northamerica-northeast1 Montreal 1a geração, 2a geração Ícone de folha Baixo CO2
northamerica-northeast2 Toronto 2ª geração Ícone de folha Baixo CO2
southamerica-east1 São Paulo 1a geração, 2a geração Ícone de folha Baixo CO2
southamerica-west1 Santiago, Chile 2ª geração
us-west2 Los Angeles 1a geração, 2a geração
us-west3 Salt Lake City 1a geração, 2a geração
us-west4 Las Vegas 1a geração, 2a geração

Como selecionar a região

É possível selecionar uma região para a função durante a implantação.

gcloud

Se você estiver usando a CLI do Google Cloud, poderá especificar a região usando a sinalização --region.

gcloud functions deploy FUNCTION_NAME --region=REGION ...

Em que REGION é uma das regiões listadas acima.

Console

Se estiver usando o console do Google Cloud, é possível selecionar a região ao criar e implantar uma função.

  1. No Console do Google Cloud, acesse a página de visão geral do Cloud Functions.

    Acesse a página de visão geral do Cloud Functions

    Verifique se o projeto para que você ativou o Cloud Functions está selecionado.

  2. Clique em Criar função.

  3. No campo Região, selecione uma região.

É possível implantar funções em diferentes regiões dentro de um projeto, mas depois que a região tiver sido selecionada para uma função, ela não poderá ser alterada.

É necessário que as funções em uma determinada região em um determinado projeto tenham nomes exclusivos (diferenciando maiúsculas), mas as funções entre regiões ou entre projetos podem compartilhar o mesmo nome.

Como definir uma região padrão

É possível definir uma região padrão usando a CLI do Google Cloud da seguinte maneira:

gcloud config set functions/region REGION

Exemplo:

gcloud config set functions/region europe-west1

Residência dos dados

O Cloud Functions oferece uma garantia de residência de dados no escopo de execução da função (Conformidade de escopo A: execução da função), em que uma determinada função fornece residência de dados para a invocação/execução da função.

Essa conformidade se aplica a funções HTTP e funções orientadas a eventos. Para funções orientadas a eventos, o Cloud Functions é compatível com residência de dados desde o momento em que o produto upstream (produto acionador) entrega o evento ao Cloud Functions. Portanto, é importante garantir que o produto upstream (como o Cloud Storage ou o Pub/Sub) seja compatível com a residência de dados.

Práticas recomendadas para alterar a região

Se você precisar alterar uma região em que uma função será implantada, siga as recomendações abaixo.

Funções HTTP

Para funções HTTP, recomendamos reimplantar a função HTTP na região de destino (ela pode ter o mesmo nome) e, em seguida, alterar a função original para redirecionar a solicitação HTTP para a nova função. Se os clientes da função HTTP derem suporte a redirecionamentos, bastará alterar a função original para retornar um status de redirecionamento HTTP (301) com o URL da nova função. Se os clientes não lidarem bem com redirecionamentos, é possível fazer proxy da solicitação da função original para a nova função iniciando uma nova solicitação da função original para a nova. O passo final é garantir que todos os clientes estejam chamando a nova função.

Funções baseadas em eventos

As funções orientadas a eventos adotam uma semântica de entrega de evento de pelo menos uma vez. Isso significa que, em algumas circunstâncias, elas podem receber eventos duplicados e, portanto, precisam sempre ser implantadas para serem idempotentes. Se sua função já for idempotente, é possível simplesmente reimplantar a função na nova região com o mesmo gatilho de evento e remover a função antiga depois de verificar se a nova função está recebendo tráfego corretamente. Durante essa transição, ambas as funções receberão eventos.

Caso a função não esteja idempotente, ou a idempotência não se estenda além da região, recomendamos implementar a idempotência antes de mover a função.