ID da região
O REGION_ID
é um código abreviado que o Google atribui
com base na região que você selecionou ao criar o aplicativo. O código não
corresponde a um país ou estado, ainda que alguns IDs de região sejam semelhantes
aos códigos de país e estado geralmente usados. A inclusão de
REGION_ID.r
em URLs do App Engine é opcional para
aplicativos atuais. Em breve, será necessária para todos os aplicativos novos.
Para garantir uma transição tranquila, estamos atualizando o App Engine gradativamente para usar IDs de região. Se ainda não tivermos atualizado seu projeto do Google Cloud, você não verá um ID da região para o app. Como o ID é opcional para os apps atuais, não é necessário atualizar os URLs ou fazer outras alterações quando o ID da região está disponível para eles.
Saiba mais sobre IDs de região.
A API App Identity permite que um aplicativo descubra seu próprio ID, também chamado de ID do projeto. Com esse ID, um aplicativo do App Engine pode confirmar a própria identidade para outros aplicativos do App Engine e APIs do Google, assim como para aplicativos e serviços de terceiros. Também é possível usar o ID do aplicativo para gerar um URL ou endereço de e-mail ou para tomar uma decisão de ambiente de execução.
Como conseguir o ID do projeto
O ID do projeto pode ser encontrado usando o método app_identity.get_application_id()
.
O ambiente WSGI ou CGI expõe alguns detalhes da implementação que são gerenciados pela API.
Como saber o nome do host do aplicativo
Por padrão, os aplicativos do App Engine são exibidos a partir de URLs no formato
https://PROJECT_ID.REGION_ID.r.appspot.com
, em que o ID do projeto faz parte do nome do host.
Se um aplicativo é disponibilizado de um domínio personalizado, talvez seja necessário recuperar todo o componente do nome do host. Para isso, use o método app_identity.get_default_version_hostname()
.
Como confirmar a identidade para outros apps do App Engine
Se você quiser determinar a identidade do aplicativo do App Engine que está fazendo uma
solicitação para o aplicativo do App Engine, use o cabeçalho de solicitação
X-Appengine-Inbound-Appid
. Esse cabeçalho é adicionado à solicitação pelo serviço URLFetch
e não pode ser modificado pelo usuário. Por isso, indica com segurança
o ID do projeto do aplicativo solicitante, se houver um.
Requisitos:
-
Somente as chamadas feitas para o domínio
appspot.com
do aplicativo conterão o cabeçalhoX-Appengine-Inbound-Appid
. Chamadas para domínios personalizados não contêm cabeçalho. -
Suas solicitações precisam ser definidas para não seguir redirecionamentos.
Defina o parâmetro
urlfetch.fetch()
follow_redirects
comoFalse
.
No gerenciador do aplicativo, é possível verificar o ID recebido lendo o cabeçalho X-Appengine-Inbound-Appid
e comparando-o a uma lista de IDs com permissão para fazer solicitações. Exemplo:
Como confirmar a identidade das APIs do Google
As APIs do Google usam o protocolo OAuth 2.0 para autenticação e autorização. A
API App Identity pode criar tokens OAuth usados para confirmar que a
origem de uma solicitação é o próprio aplicativo. O método get_access_token()
retorna um token de acesso para um escopo ou uma lista de escopos. Esse token pode ser
configurado nos cabeçalhos HTTP de uma chamada para identificar o aplicativo que fez a chamada.
A identidade do aplicativo é representada pelo nome da conta de serviço, que costuma ser applicationid@appspot.gserviceaccount.com. Para obter o valor exato, use o método get_service_account_name()
.
Para conceder acesso ao aplicativo nos serviços que oferecem ACLs, basta conceder acesso à esta conta.
Como afirmar a identidade para serviços de terceiros
O token gerado por get_access_token()
só funciona nos serviços do Google. No entanto, é possível usar a tecnologia de assinatura subjacente para confirmar a identidade do seu aplicativo a outros serviços. O método sign_blob()
assina bytes usando uma chave privada exclusiva do seu aplicativo, e o método get_public_certificates()
retornará certificados que podem ser usados para validar a assinatura.
Como encontrar o nome padrão do bucket do Cloud Storage
Cada aplicativo pode ter um bucket padrão do Cloud Storage, que inclui 5 GB de armazenamento gratuito e uma cota gratuita para operações de E/S.
Para encontrar o nome do bucket padrão, use a API App Identity. Chame google.appengine.api.app_identity.app_identity.get_default_gcs_bucket_name.