Este documento descreve como melhorar a fiabilidade das instâncias de máquinas virtuais (VM) através da criação e aplicação de políticas de posicionamento disperso. Para saber mais sobre as políticas de posicionamento, incluindo as respetivas restrições e preços, consulte a vista geral das políticas de posicionamento.
Uma política de posicionamento disperso especifica que as suas VMs devem ser distribuídas por diferentes domínios de disponibilidade. Esta distribuição ajuda a mitigar as interrupções específicas da localização, como erros de hardware, e é útil quando executa cargas de trabalho distribuídas e replicadas em grande escala, como o Hadoop Distributed File System (HDFS), o Cassandra ou o Kafka.
Antes de começar
-
Se ainda não o tiver feito, configure a autenticação.
A autenticação valida a sua identidade para aceder a Trusted Cloud by S3NS serviços e APIs. Para executar código ou exemplos a partir de um ambiente de desenvolvimento local, pode autenticar-se no Compute Engine selecionando uma das seguintes opções:
Select the tab for how you plan to use the samples on this page:
gcloud
-
Instale a CLI Google Cloud e, em seguida, inicie sessão na CLI gcloud com a sua identidade federada. Depois de iniciar sessão, inicialize a CLI gcloud executando o seguinte comando:
gcloud init
- Set a default region and zone.
REST
Para usar os exemplos da API REST nesta página num ambiente de desenvolvimento local, usa as credenciais que fornece à CLI gcloud.
Instale a CLI Google Cloud e, em seguida, inicie sessão na CLI gcloud com a sua identidade federada. Depois de iniciar sessão, inicialize a CLI gcloud executando o seguinte comando:
gcloud init
Para mais informações, consulte o artigo Autenticar para usar REST na Trusted Cloud documentação de autenticação.
Funções necessárias
Para receber as autorizações de que precisa para criar e aplicar uma política de posicionamento disperso a VMs, peça ao seu administrador que lhe conceda a função de IAM Administrador de instâncias do Compute (v1) (
roles/compute.instanceAdmin.v1
) no seu projeto. Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.Esta função predefinida contém as autorizações necessárias para criar e aplicar uma política de posicionamento disperso a VMs. Para ver as autorizações exatas que são necessárias, expanda a secção Autorizações necessárias:
Autorizações necessárias
São necessárias as seguintes autorizações para criar e aplicar uma política de posicionamento disperso a VMs:
-
Para criar políticas de posicionamento:
compute.resourcePolicies.create
no projeto -
Para aplicar uma política de posicionamento a VMs existentes:
compute.instances.addResourcePolicies
no projeto -
Para criar VMs:
compute.instances.create
no projeto- Para usar uma imagem personalizada para criar a VM:
compute.images.useReadOnly
na imagem - Para usar um instantâneo para criar a VM:
compute.snapshots.useReadOnly
no instantâneo - Para usar um modelo de instância para criar a VM:
compute.instanceTemplates.useReadOnly
no modelo de instância - Para atribuir uma rede antiga à VM:
compute.networks.use
no projeto - Para especificar um endereço IP estático para a VM:
compute.addresses.use
no projeto - Para atribuir um endereço IP externo à VM quando usar uma rede antiga:
compute.networks.useExternalIp
no projeto - Para especificar uma sub-rede para a VM:
compute.subnetworks.use
no projeto ou na sub-rede escolhida - Para atribuir um endereço IP externo à VM quando usar uma rede VPC:
compute.subnetworks.useExternalIp
no projeto ou na sub-rede escolhida - Para definir os metadados da instância de VM para a VM:
compute.instances.setMetadata
no projeto - Para definir etiquetas para a VM:
compute.instances.setTags
na VM - Para definir etiquetas para a VM:
compute.instances.setLabels
na VM - Para definir uma conta de serviço para a VM usar:
compute.instances.setServiceAccount
na VM - Para criar um novo disco para a VM:
compute.disks.create
no projeto - Para anexar um disco existente no modo de leitura ou leitura/escrita:
compute.disks.use
no disco - Para anexar um disco existente no modo de leitura:
compute.disks.useReadOnly
no disco
-
Para criar um modelo de instância:
compute.instanceTemplates.create
no projeto -
Para criar um grupo de instâncias geridas (MIG):
compute.instanceGroupManagers.create
no projeto
Também pode conseguir estas autorizações com funções personalizadas ou outras funções predefinidas.
Crie uma política de posicionamento de propagação
A menos que queira testar a aplicação da política de posicionamento disperso às suas VMs,a Google Trusted Cloud by S3NS recomenda a criação de políticas de posicionamento disperso com dois ou mais domínios de disponibilidade. Isto mitiga o risco de todas as VMs serem afetadas por um único erro de hardware. Para mais informações, consulte o artigo Acerca das políticas de posicionamento de dispersão.
Para criar uma política de posicionamento de propagação, selecione uma das seguintes opções:
gcloud
Para criar uma política de posicionamento disperso, use o comando
gcloud compute resource-policies create group-placement
com a flag--availability-domain-count
.gcloud compute resource-policies create group-placement POLICY_NAME \ --availability-domain-count=DOMAIN_COUNT \ --region=REGION
Substitua o seguinte:
POLICY_NAME
: o nome da política de posicionamento de propagação.DOMAIN_COUNT
: o número distinto de domínios de disponibilidade para colocar as suas VMs. O valor tem de estar entre1
e8
.REGION
: a região na qual criar a política de posicionamento.
REST
Para criar uma política de posicionamento de propagação, faça um pedido
POST
ao métodoresourcePolicies.insert
. No corpo do pedido, inclua o campoavailabilityDomainCount
.POST https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies { "name": "POLICY_NAME", "groupPlacementPolicy": { "availabilityDomainCount": DOMAIN_COUNT } }
Substitua o seguinte:
PROJECT_ID
: o ID do projeto no qual criar a política de posicionamento.REGION
: a região na qual criar a política de posicionamento.POLICY_NAME
: o nome da política de posicionamento de propagação.DOMAIN_COUNT
: o número distinto de domínios de disponibilidade para colocar as suas VMs. O valor tem de estar entre1
e8
.
Aplique uma política de posicionamento de dispersão
Pode aplicar uma política de posicionamento disperso a uma VM ou a um MIG existente ou quando criar VMs, modelos de instâncias ou MIGs.
Para aplicar uma política de posicionamento disperso a um recurso do Compute Engine, selecione um dos seguintes métodos:
- Aplique a política a uma VM existente.
- Aplique a política durante a criação de uma VM.
- Aplique a política ao criar um modelo de instância.
- Aplique a política a VMs num MIG.
Depois de aplicar uma política de posicionamento disperso a uma VM, pode verificar o domínio de disponibilidade no qual a VM está localizada vendo os detalhes da VM e verificando o valor do campo
availabilityDomain
.Aplique a política a uma VM existente
Antes de aplicar uma política de posicionamento disperso a uma MV existente, considere o seguinte:
Se a sua política de posicionamento disperso especificar vários domínios de disponibilidade, pode aplicar a política a uma VM sem parar a VM. No entanto, a VM pode ter de ser realocada para um domínio de disponibilidade diferente. Durante este processo, o Compute Engine para ou migra em direto a VM com base na respetiva política de manutenção do anfitrião.
A VM e a política de posicionamento de propagação têm de estar localizadas na mesma região. Por exemplo, se a política de posicionamento estiver localizada na região
us-central1
, a VM tem de estar localizada numa zona emus-central1
. Se precisar de migrar uma VM para outra região, consulte o artigo Mova uma VM entre zonas ou regiões.
Se quiser especificar o domínio de disponibilidade no qual colocar a VM, aplique a política de posicionamento à VM atualizando as respetivas propriedades. Quando atualizar as propriedades da VM, certifique-se de que inclui os campos
resourcePolicies
escheduling.availabilityDomain
.Para aplicar uma política de posicionamento disperso a uma VM existente, selecione uma das seguintes opções:
gcloud
Para aplicar uma política de posicionamento disperso a uma VM existente, use o comando
gcloud compute instances add-resource-policies
.gcloud compute instances add-resource-policies VM_NAME \ --resource-policies=POLICY_NAME \ --zone=ZONE
Substitua o seguinte:
VM_NAME
: o nome de uma VM existente.POLICY_NAME
: o nome de uma política de posicionamento de propagação existente.ZONE
: a zona onde a VM está localizada.
REST
Para aplicar uma política de posicionamento disperso a uma VM existente, faça um pedido
POST
ao métodoinstances.addResourcePolicies
.POST https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/addResourcePolicies { "resourcePolicies": [ "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME" ] }
Substitua o seguinte:
PROJECT_ID
: o ID do projeto onde se encontram a política de posicionamento de propagação e a VM.ZONE
: a zona onde a VM está localizada.VM_NAME
: o nome de uma VM existente.REGION
: a região onde se encontra a política de posicionamento de spreads.POLICY_NAME
: o nome de uma política de posicionamento de propagação existente.
Aplique a política ao criar uma VM
Só pode criar uma VM que especifique uma política de posicionamento disperso na mesma região que a política de posicionamento.
Para criar uma VM que especifique uma política de posicionamento disperso, selecione uma das seguintes opções:
gcloud
Para criar uma VM que especifique uma política de posicionamento disperso, use o comando
gcloud compute instances create
com a flag--resource-policies
.gcloud compute instances create VM_NAME \ --machine-type=MACHINE_TYPE \ --resource-policies=POLICY_NAME \ --zone=ZONE
Substitua o seguinte:
VM_NAME
: o nome da VM a criar.MACHINE_TYPE
: o tipo de máquina para a VM.POLICY_NAME
: o nome de uma política de posicionamento de propagação existente.ZONE
: a zona na qual criar a VM.
Opcionalmente, para especificar o domínio de disponibilidade no qual criar a VM, inclua o sinalizador
--availability-domain
.gcloud compute instances create VM_NAME \ --availability-domain=DOMAIN_NUMBER \ --machine-type=MACHINE_TYPE \ --resource-policies=POLICY_NAME \ --zone=ZONE
Substitua
DOMAIN_NUMBER
pelo número do domínio de disponibilidade no qual quer colocar a sua VM. O valor tem de estar entre1
e o número de domínios especificados na política de posicionamento de propagação. Para validar o número de domínios numa política de posicionamento disperso, veja os detalhes da política de posicionamento.REST
Para criar uma VM que especifique uma política de posicionamento disperso, faça um
POST
pedido ao métodoinstances.insert
. No corpo do pedido, inclua o camporesourcePolicies
.POST https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { "name": "VM_NAME", "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE", "disks": [ { "boot": true, "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE" } } ], "networkInterfaces": [ { "network": "global/networks/default" } ], "resourcePolicies": [ "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME" ] }
Substitua o seguinte:
PROJECT_ID
: o ID do projeto onde se encontra a política de posicionamento de propagação.ZONE
: a zona onde criar a VM e onde se encontra o tipo de máquina. Só pode especificar uma zona na região da política de posicionamento de propagação.VM_NAME
: o nome da VM a criar.MACHINE_TYPE
: o tipo de máquina para a VM.IMAGE_PROJECT
: o projeto de imagem que contém a imagem, por exemplo,debian-cloud
. Para mais informações sobre os projetos de imagens suportados, consulte o artigo Imagens públicas.IMAGE
: especifique uma das seguintes opções:Uma versão específica da imagem do SO, por exemplo,
debian-12-bookworm-v20240617
.Uma família de imagens, que tem de estar formatada como
family/IMAGE_FAMILY
. Isto especifica a imagem do SO não descontinuada mais recente. Por exemplo, se especificarfamily/debian-12
, é usada a versão mais recente na família de imagens do Debian 12. Para mais informações sobre a utilização de famílias de imagens, consulte o artigo Práticas recomendadas para famílias de imagens.
REGION
: a região onde se encontra a política de posicionamento de spreads.POLICY_NAME
: o nome de uma política de posicionamento de propagação existente.
Opcionalmente, para especificar o domínio de disponibilidade no qual criar a VM, inclua o campo
availabilityDomain
no corpo do pedido.POST https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { "name": "VM_NAME", "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE", "disks": [ { "boot": true, "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE" } } ], "networkInterfaces": [ { "network": "global/networks/default" } ], "resourcePolicies": [ "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME" ], "scheduling": { "availabilityDomain": DOMAIN_NUMBER } }
Substitua
DOMAIN_NUMBER
pelo número do domínio de disponibilidade no qual quer colocar a sua VM. O valor tem de estar entre1
e o número de domínios especificados na política de posicionamento de propagação. Para validar o número de domínios numa política de posicionamento disperso, veja os detalhes da política de posicionamento.Para mais informações sobre as opções de configuração para criar uma VM, consulte o artigo Crie e inicie uma instância de VM.
Aplique a política durante a criação de um modelo de instância
Antes de criar um modelo de instância que especifique uma política de posicionamento disperso, certifique-se do seguinte:
Se quiser criar um modelo de instância regional, crie o modelo na mesma região que a política de posicionamento disperso. Caso contrário, a criação do modelo de instância falha.
Quando cria um modelo de instância, pode especificar opcionalmente o domínio de disponibilidade no qual criar VMs. Evite criar todas as VMs num único domínio. Caso contrário, não mitiga o risco de um único erro de hardware afetar todas as suas VMs.
Depois de criar um modelo de instância que especifique uma política de posicionamento disperso, pode usar o modelo para fazer o seguinte:
Para criar um modelo de instância que especifique uma política de posicionamento disperso, selecione uma das seguintes opções:
gcloud
Para criar um modelo de instância que especifique uma política de posicionamento disperso, use o comando
gcloud compute instance-templates create
com a flag--resource-policies
.Por exemplo, para criar um modelo de instância global que especifique uma política de posicionamento de propagação, execute o seguinte comando:
gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \ --machine-type=MACHINE_TYPE \ --resource-policies=POLICY_NAME
Substitua o seguinte:
INSTANCE_TEMPLATE_NAME
: o nome do modelo de instância.MACHINE_TYPE
: o tipo de máquina para as VMs criadas com o modelo de instância.POLICY_NAME
: o nome de uma política de posicionamento de propagação existente.
Opcionalmente, para especificar o domínio de disponibilidade no qual criar as VMs, inclua o sinalizador
--availability-domain
.gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \ --availability-domain=DOMAIN_NUMBER \ --machine-type=MACHINE_TYPE \ --resource-policies=POLICY_NAME
Substitua
DOMAIN_NUMBER
pelo número do domínio de disponibilidade no qual quer criar as suas VMs. O valor tem de estar compreendido entre1
e o número de domínios especificados na política de posicionamento. Para validar o número de domínios numa política de posicionamento disperso, veja os detalhes da política de posicionamento.REST
Para criar um modelo de instância que especifique uma política de posicionamento de propagação, faça um pedido
POST
a um dos seguintes métodos:Para criar um modelo de instância global:
instanceTemplates.insert
method.Para criar um modelo de instância regional:
regionInstanceTemplates.insert
method.
No corpo do pedido, especifique o campo
resourcePolicies
.Por exemplo, para criar um modelo de instância global que especifique uma política de posicionamento de dispersão, faça um pedido
POST
da seguinte forma:POST https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/global/instanceTemplates { "name": "INSTANCE_TEMPLATE_NAME", "properties": { "disks": [ { "boot": true, "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE" } } ], "machineType": "MACHINE_TYPE", "networkInterfaces": [ { "network": "global/networks/default" } ], "resourcePolicies": [ "POLICY_NAME" ] } }
Substitua o seguinte:
PROJECT_ID
: o ID do projeto onde se encontra a política de posicionamento de propagação.INSTANCE_TEMPLATE_NAME
: o nome do modelo de instância.IMAGE_PROJECT
: o projeto de imagem que contém a imagem, por exemplo,debian-cloud
. Para mais informações sobre os projetos de imagens suportados, consulte o artigo Imagens públicas.IMAGE
: especifique uma das seguintes opções:Uma versão específica da imagem do SO, por exemplo,
debian-12-bookworm-v20240617
.Uma família de imagens, que tem de estar formatada como
family/IMAGE_FAMILY
. Isto especifica a imagem do SO não descontinuada mais recente. Por exemplo, se especificarfamily/debian-12
, é usada a versão mais recente na família de imagens do Debian 12. Para mais informações sobre a utilização de famílias de imagens, consulte o artigo Práticas recomendadas para famílias de imagens.
MACHINE_TYPE
: o tipo de máquina para as VMs criadas com o modelo de instância.POLICY_NAME
: o nome de uma política de posicionamento de propagação existente.
Opcionalmente, para especificar o domínio de disponibilidade no qual criar as VMs, inclua o campo
availabilityDomain
no corpo do pedido.POST https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/global/instanceTemplates { "name": "INSTANCE_TEMPLATE_NAME", "properties": { "disks": [ { "boot": true, "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE" } } ], "machineType": "MACHINE_TYPE", "networkInterfaces": [ { "network": "global/networks/default" } ], "resourcePolicies": [ "POLICY_NAME" ], "scheduling": { "availabilityDomain": DOMAIN_NUMBER } } }
Substitua
DOMAIN_NUMBER
pelo número do domínio de disponibilidade no qual quer criar as suas VMs. O valor tem de estar compreendido entre1
e o número de domínios especificados na política de posicionamento. Para validar o número de domínios numa política de posicionamento disperso, veja os detalhes da política de posicionamento.Para mais informações sobre as opções de configuração para criar um modelo de instância, consulte o artigo Crie modelos de instâncias.
Aplique a política a VMs num MIG
Depois de criar um modelo de instância que especifique uma política de posicionamento disperso, pode usar o modelo para fazer o seguinte:
Aplique a política durante a criação de um MIG
Só pode criar VMs que especifiquem uma política de posicionamento disperso se as VMs estiverem localizadas na mesma região que a política de posicionamento.
Para criar um MIG com um modelo de instância que especifique uma política de posicionamento disperso, selecione uma das seguintes opções:
gcloud
Para criar um MIG com um modelo de instância que especifique uma política de posicionamento disperso, use o comando
gcloud compute instance-groups managed create
.Por exemplo, para criar um MIG zonal com um modelo de instância global que especifica uma política de posicionamento disperso, execute o seguinte comando:
gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \ --size=SIZE \ --template=INSTANCE_TEMPLATE_NAME \ --zone=ZONE
Substitua o seguinte:
INSTANCE_GROUP_NAME
: o nome do MIG a criar.SIZE
: o tamanho do MIG.INSTANCE_TEMPLATE_NAME
: o nome de um modelo de instância global existente que especifica uma política de posicionamento de dispersão.ZONE
: a zona na qual criar o MIG, que tem de estar na região onde se encontra a política de posicionamento disperso.
REST
Para criar um MIG com um modelo de instância que especifique uma política de posicionamento distribuído, faça um pedido
POST
a um dos seguintes métodos:Para criar um GIG zonal:
instanceGroupManagers.insert
método.Para criar um GIG regional:
regionInstanceGroupManagers.insert
método.
Por exemplo, para criar um MIG zonal com um modelo de instância global que especifica uma política de posicionamento disperso, faça um pedido
POST
da seguinte forma:POST https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers { "name": "INSTANCE_GROUP_NAME", "targetSize": SIZE, "versions": [ { "instanceTemplate": "global/instanceTemplates/INSTANCE_TEMPLATE_NAME" } ] }
Substitua o seguinte:
PROJECT_ID
: o ID do projeto onde se encontra a política de posicionamento de propagação e o modelo de instância que especifica a política de posicionamento.ZONE
: a zona na qual criar o MIG, que tem de estar na região onde se encontra a política de posicionamento disperso.INSTANCE_GROUP_NAME
: o nome do MIG a criar.SIZE
: o tamanho do MIG.INSTANCE_TEMPLATE_NAME
: o nome de um modelo de instância global existente que especifica uma política de posicionamento de dispersão.
Para mais informações sobre as opções de configuração para criar MIGs, consulte o artigo Cenários básicos para criar MIGs.
Aplique a política a um MIG existente
Só pode aplicar uma política de posicionamento disperso a um GIG existente se o GIG estiver localizado na mesma região que a política de posicionamento ou, no caso de GIGs zonais, numa zona dentro da mesma região que a política de posicionamento.
Para atualizar um MIG de modo a usar um modelo de instância que especifique uma política de posicionamento disperso, selecione uma das seguintes opções:
gcloud
Para atualizar um MIG de modo a usar um modelo de instância que especifica uma política de posicionamento de dispersão, use o comando
gcloud compute instance-groups managed rolling-action start-update
.Por exemplo, para atualizar um MIG zonal de modo a usar um modelo de instância que especifica uma política de posicionamento disperso e substituir as VMs existentes do MIG por novas VMs que especificam as propriedades do modelo, execute o seguinte comando:
gcloud compute instance-groups managed rolling-action start-update INSTANCE_GROUP_NAME \ --version=template=INSTANCE_TEMPLATE_NAME \ --zone=ZONE
Substitua o seguinte:
INSTANCE_GROUP_NAME
: o nome de um MIG existente.INSTANCE_TEMPLATE_NAME
: o nome de um modelo de instância global existente que especifica uma política de posicionamento de dispersão.ZONE
: a zona onde o MIG está localizado. Só pode aplicar a política de posicionamento disperso a um MIG localizado na mesma região que a política de posicionamento.
REST
Para atualizar um GIG de modo a usar um modelo de instância que especifique uma política de posicionamento de dispersão e aplicar automaticamente as propriedades do modelo e da política de posicionamento às VMs existentes no GIG, faça um pedido
PATCH
a um dos seguintes métodos:Para atualizar um MIG zonal:
instanceGroupManagers.insert
método.Para atualizar um método MIG:
regionInstanceGroupManagers.insert
regional.
Por exemplo, para atualizar um MIG zonal de modo a usar um modelo de instância global que especifica uma política de posicionamento disperso e substituir as VMs existentes do MIG por novas VMs que especificam as propriedades do modelo, faça o seguinte pedido
PATCH
:PATCH https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/INSTANCE_GROUP_NAME { "instanceTemplate": "global/instanceTemplates/INSTANCE_TEMPLATE_NAME" }
Substitua o seguinte:
PROJECT_ID
: o ID do projeto que usou para criar um MIG existente, a política de posicionamento disperso e o modelo de instância que especifica a política de posicionamento disperso.ZONE
: a zona onde o MIG está localizado. Só pode aplicar a política de posicionamento disperso a um MIG localizado na mesma região que a política de posicionamento.INSTANCE_GROUP_NAME
: o nome de um MIG existente.INSTANCE_TEMPLATE_NAME
: o nome de um modelo de instância global existente que especifica uma política de posicionamento de dispersão.
Para mais informações sobre as opções de configuração para atualizar as VMs num MIG, consulte Atualize e aplique novas configurações a VMs num MIG.
O que se segue?
Saiba como ver políticas de posicionamento.
Saiba como substituir, remover ou eliminar políticas de posicionamento.
Saiba como fazer o seguinte com uma VM que especifica uma política de posicionamento:
Saiba mais sobre o processo de migração em direto durante eventos de manutenção.
Exceto em caso de indicação contrária, o conteúdo desta página é licenciado de acordo com a Licença de atribuição 4.0 do Creative Commons, e as amostras de código são licenciadas de acordo com a Licença Apache 2.0. Para mais detalhes, consulte as políticas do site do Google Developers. Java é uma marca registrada da Oracle e/ou afiliadas.
Última atualização 2025-09-30 UTC.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-09-30 UTC."],[],[],null,[]] -