Nesta página, descrevemos como usar o recurso de orquestrador de políticas no VM Manager para criar, atualizar ou excluir recursos de políticas do SO em diferentes projetos e zonas nas pastas ou na organização.
Antes de começar
- Analise a política do SO e a atribuição da política do SO.
- Revise as cotas de configuração do SO.
- Verifique se você atende aos pré-requisitos para usar o orquestrador de políticas.
-
Configure a autenticação, caso ainda não tenha feito isso.
A autenticação verifica sua identidade para acesso a serviços e APIs do Google Cloud . Para executar
códigos ou amostras de um ambiente de desenvolvimento local, autentique-se no
Compute Engine selecionando uma das seguintes opções:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Instale a CLI do Google Cloud. Após a instalação, inicialize a CLI do Google Cloud executando o seguinte comando:
gcloud init
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.
- Set a default region and zone.
REST
Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para a CLI gcloud.
Instale a CLI do Google Cloud. Após a instalação, inicialize a CLI do Google Cloud executando o seguinte comando:
gcloud init
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.
Para mais informações, consulte Autenticar para usar REST na documentação de autenticação do Google Cloud .
Criar ou atualizar atribuições de políticas do SO em projetos e zonas
É possível criar orquestradores de políticas para aplicar políticas do SO a recursos selecionados em um projeto, uma pasta ou uma organização.
Console
Para criar um orquestrador de políticas e aplicar atribuições de políticas do SO em uma pasta, faça o seguinte:
- No cliente local, crie ou faça o download de um arquivo de política do SO. Ele precisa ser um arquivo JSON ou YAML. Para mais informações sobre como criar políticas do SO ou ver amostras de políticas do SO, consulte Políticas do SO.
No console do Google Cloud , acesse a página Políticas do SO.
Clique no Seletor de projetos na barra de ações do console do Google Cloud e selecione o projeto, a pasta ou a organização em que você quer criar o orquestrador de políticas.
Clique em Criar global.
Especifique um nome e uma descrição para o orquestrador de políticas. Consulte a Convenção de nomenclatura de recursos. O VM Manager atribui um ID exclusivo ao orquestrador de políticas. É possível editar esse ID se necessário.
Na seção Políticas do SO, faça upload do arquivo da política do SO.
Opcional: na seção Estado, selecione uma das seguintes opções para especificar o comportamento do orquestrador de políticas:
ACTIVE
: depois de criado, o orquestrador de políticas realiza ações imediatamente.STOPPED
: um orquestrador de políticas criado nesse estado não realiza ações imediatamente. Você pode editar o orquestrador de políticas depois para mudar o estado dele.
No campo Ação, selecione a ação UPSERT.
Na seção Escopo da orquestração, especifique as pastas e os projetos em que você quer implantar as políticas do SO. Insira apenas os números do projeto e da pasta nesses campos, por exemplo,
123456,7654321
.Selecione as zonas que contêm as VMs às quais você quer aplicar as políticas do SO. Como alternativa, clique em Selecionar tudo para aplicar as mudanças da política de SO aos recursos em todas as zonas.
Opcional: na seção Instâncias de VM de destino, especifique as VMs de destino a que você quer aplicar as políticas do SO.
- Selecione as famílias do SO.
É possível filtrar ainda mais as VMs especificando inclusões e exclusões.
Por exemplo, é possível selecionar todas as VMs do Ubuntu no ambiente de teste e excluir aquelas que executam o Google Kubernetes Engine. Basta especificar o seguinte:
- Família do SO:
ubuntu
- Incluir:
env:test
,env:staging
- Excluir:
goog-gke-node
- Família do SO:
Especifique um plano de lançamento para a atribuição de política do SO.
- Especifica o tamanho da onda (também conhecido como orçamento de interrupção). Por exemplo, 10%.
- Especifique o tempo de espera. Por exemplo, 15 minutes.
Clique em Criar.
gcloud
Para criar um orquestrador de políticas, siga estas etapas:
Crie ou faça o download de um recurso de atribuição de política do SO no formato JSON ou YAML. Para mais informações sobre esse arquivo e exemplos de atribuições de política, consulte Atribuições de política do SO.
Use o comando
os-config policy-orchestrators create
para criar e implantar a atribuição de política do SO no escopo especificado.
Projeto
gcloud compute os-config policy-orchestrators create ORCHESTRATOR_NAME \ --policy-type=os_policy_assignment_v1 \ --policy-file=OS_POLICY_ASSIGNMENT_YAML_FILE \ --policy-id=POLICY_ID
Substitua:
ORCHESTRATOR_NAME
: nome do orquestrador de políticas. Consulte a Convenção de nomenclatura de recursos.OS_POLICY_ASSIGNMENT_FILE
: o caminho absoluto para o arquivo de atribuição de política do SO que você criou na etapa anterior.POLICY_ID
: um ID exclusivo para o orquestrador de políticas. Se você não especificar um valor, o orquestrador de políticas vai atribuir um ID exclusivo ao recurso.
Exemplo
gcloud compute os-config policy-orchestrators create my-os-policy-orchestrator \ --policy-type=os_policy_assignment_v1 \ --policy-file=/downloads/assignment-config.yaml \ --policy-id=policy-123
Pasta
gcloud --billing-project=QUOTA_PROJECT_ID compute os-config policy-orchestrators create ORCHESTRATOR_NAME \ --folder=FOLDER_NUMBER \ --policy-type=os_policy_assignment_v1 \ --policy-file=OS_POLICY_ASSIGNMENT_YAML_FILE \ --policy-id=POLICY_ID \ --include-projects=PROJECT_NUMBERS
Substitua:
QUOTA_PROJECT_ID
: o ID do projeto da cota ou do projeto de faturamento.ORCHESTRATOR_NAME
: nome do orquestrador de políticas. Consulte a Convenção de nomenclatura de recursos.FOLDER_NUMBER
: o número da pasta em que você quer criar o orquestrador de políticas.OS_POLICY_ASSIGNMENT_FILE
: o caminho absoluto para o arquivo de atribuição de política do SO que você criou na etapa anterior.POLICY_ID
: um ID exclusivo para o orquestrador de políticas. Se você não especificar um valor, o orquestrador de políticas vai atribuir um ID exclusivo ao recurso.PROJECT_NUMBERS
: uma lista de projetos em que você quer aplicar as atribuições de política do SO. É necessário especificar os números do projeto, o ID numérico exclusivo dos projetos.
Exemplo
gcloud --billing-project=my-quota-project compute os-config policy-orchestrators create my-os-policy-orchestrator \ --folder=123456 \ --policy-type=os_policy_assignment_v1 \ --policy-file=/downloads/assignment-config.yaml \ --policy-id=policy-123 \ --include-projects=87654321,4567890
Organização
gcloud --billing-project=QUOTA_PROJECT_ID compute os-config policy-orchestrators create ORCHESTRATOR_NAME \ --organization=ORGANIZATION_NUMBER \ --policy-type=os_policy_assignment_v1 \ --policy-file=OS_POLICY_ASSIGNMENT_YAML_FILE \ --policy-id=POLICY_ID \ --include-projects=PROJECT_NUMBERS
Substitua:
QUOTA_PROJECT_ID
: o ID do projeto da cota ou do projeto de faturamento.ORCHESTRATOR_NAME
: nome do orquestrador de políticas. Consulte a Convenção de nomenclatura de recursos.FOLDER_NUMBER
: o número da pasta em que você quer criar o orquestrador de políticas.OS_POLICY_ASSIGNMENT_FILE
: o caminho absoluto para o arquivo de atribuição de política do SO que você criou na etapa anterior.POLICY_ID
: um ID exclusivo para o orquestrador de políticas. Se você não especificar um valor, o orquestrador de políticas vai atribuir um ID exclusivo ao recurso.PROJECT_NUMBERS
: uma lista de projetos em que você quer aplicar as atribuições de política do SO. É necessário especificar os números do projeto, o ID numérico exclusivo dos projetos.
Exemplo
gcloud --billing-project=my-quota-project compute os-config policy-orchestrators create my-os-policy-orchestrator \ --organization=123456 \ --policy-type=os_policy_assignment_v1 \ --policy-file=/downloads/assignment-config.yaml \ --policy-id=policy-123 \ --include-projects=87654321,4567890
REST
Para criar um orquestrador de políticas, siga estas etapas:
Crie ou faça o download de um arquivo de atribuição de política do SO. Ele precisa ser um arquivo JSON. Para mais informações sobre como criar atribuições de política do SO ou ver amostras de atribuições de política do SO, consulte Atribuição da política do SO.
Dependendo do escopo em que você está criando o orquestrador de políticas, use um dos seguintes métodos:
Projeto
Envie uma solicitação
POST
para o métodoprojects.locations.global.policyOrchestrators.create
.No corpo da solicitação, cole as especificações de atribuição da política do SO da etapa anterior.
POST https://osconfig.googleapis.com/v2/projects/PROJECT_NUMBER/locations/global/policyOrchestrators { JSON_OS_POLICY_ORCHESTRATOR }
Substitua:
PROJECT_NUMBER
: o ID numérico do projeto em que você quer criar o orquestrador de políticas.JSON_OS_POLICY_ORCHESTRATOR
: o objeto do orquestrador de políticas no formato JSON que define o escopo do orquestrador, o recurso orquestrado e o estado da orquestração. Para mais informações sobre os parâmetros e o formato, consulteResource: folders.locations.global.policyOrchestrators
.
Exemplo
Por exemplo, para criar uma atribuição de política de SO que instale um arquivo MSI do Windows transferido por download de um bucket do Cloud Storage usando o exemplo de atribuição de política de SO, conclua as seguintes etapas:
- Converter a amostra em JSON
Faça a seguinte solicitação:
POST https://osconfig.googleapis.com/v2/projects/123456/locations/global/policyOrchestrators { "action": "UPSERT", "orchestratedResource": { "osPolicyAssignmentV1Payload": { "instanceFilter": { "inventories": [ { "osShortName": "windows" } ] }, "osPolicies": [ { "id": "install-msi-policy", "mode": "ENFORCEMENT", "resourceGroups": [ { "resources": [ { "id": "install-msi", "pkg": { "desiredState": "INSTALLED", "msi": { "source": { "gcs": { "bucket": "my-bucket", "generation": "1619136883923956", "object": "my-app.msi" } } } } } ] } ] } ], "rollout": { "disruptionBudget": { "fixed": 10 }, "minWaitDuration": "300s" } } }, "orchestrationScope": { "selectors": [ { "resourceHierarchySelector": { "includedProjects": [ "projects/87654321", "projects/4567890" ] } } ] }, "state": "ACTIVE" }
Pasta
Envie uma solicitação
POST
para o métodofolders.locations.global.policyOrchestrators.create
.No corpo da solicitação, cole as especificações de atribuição da política do SO da etapa anterior.
POST https://osconfig.googleapis.com/v2/folders/FOLDER_NUMBER/locations/global/policyOrchestrators -H "x-goog-user-project: QUOTA_PROJECT_ID" { JSON_OS_POLICY_ORCHESTRATOR }
Substitua:
QUOTA_PROJECT_ID
: o ID do projeto de cota ou faturamento.FOLDER_NUMBER
: o ID numérico da pasta em que você quer criar o orquestrador de políticas.JSON_OS_POLICY_ORCHESTRATOR
: o objeto do orquestrador de políticas no formato JSON que define o escopo do orquestrador, o recurso orquestrado e o estado da orquestração. Para mais informações sobre os parâmetros e o formato, consulteResource: folders.locations.global.policyOrchestrators
.
Exemplo
Por exemplo, para criar uma atribuição de política de SO que instale um arquivo MSI do Windows transferido por download de um bucket do Cloud Storage usando o exemplo de atribuição de política de SO, conclua as seguintes etapas:
- Converter a amostra em JSON
Faça a seguinte solicitação:
POST https://osconfig.googleapis.com/v2/folders/123456/locations/global/policyOrchestrators \ -H "x-goog-user-project: my-quota-project { "action": "UPSERT", "orchestratedResource": { "osPolicyAssignmentV1Payload": { "instanceFilter": { "inventories": [ { "osShortName": "windows" } ] }, "osPolicies": [ { "id": "install-msi-policy", "mode": "ENFORCEMENT", "resourceGroups": [ { "resources": [ { "id": "install-msi", "pkg": { "desiredState": "INSTALLED", "msi": { "source": { "gcs": { "bucket": "my-bucket", "generation": "1619136883923956", "object": "my-app.msi" } } } } } ] } ] } ], "rollout": { "disruptionBudget": { "fixed": 10 }, "minWaitDuration": "300s" } } }, "orchestrationScope": { "selectors": [ { "resourceHierarchySelector": { "includedProjects": [ "projects/87654321", "projects/4567890" ] } } ] }, "state": "ACTIVE" }
Organização
Envie uma solicitação
POST
para o métodoorganizations.locations.global.policyOrchestrators.create
.No corpo da solicitação, cole as especificações de atribuição da política do SO da etapa anterior.
POST https://osconfig.googleapis.com/v2/organizations/ORGANIZATION_NUMBER/locations/global/policyOrchestrators \ -H "x-goog-user-project: QUOTA_PROJECT_ID" { JSON_OS_POLICY_ORCHESTRATOR }
Substitua:
QUOTA_PROJECT_ID
: o ID do projeto de cota ou faturamento.ORGANIZATION_NUMBER
: o ID numérico da organização em que você quer criar o orquestrador de políticas.JSON_OS_POLICY_ORCHESTRATOR
: o objeto do orquestrador de políticas no formato JSON que define o escopo do orquestrador, o recurso orquestrado e o estado da orquestração. Para mais informações sobre os parâmetros e o formato, consulteResource: organizations.locations.global.policyOrchestrators
.
Exemplo
Por exemplo, para criar uma atribuição de política de SO que instale um arquivo MSI do Windows transferido por download de um bucket do Cloud Storage usando o exemplo de atribuição de política de SO, conclua as seguintes etapas:
- Converter a amostra em JSON
Faça a seguinte solicitação:
POST https://osconfig.googleapis.com/v2/organizations/567890/locations/global/policyOrchestrators \ -H "x-goog-user-project: my-quota-project { "action": "UPSERT", "orchestratedResource": { "osPolicyAssignmentV1Payload": { "instanceFilter": { "inventories": [ { "osShortName": "windows" } ] }, "osPolicies": [ { "id": "install-msi-policy", "mode": "ENFORCEMENT", "resourceGroups": [ { "resources": [ { "id": "install-msi", "pkg": { "desiredState": "INSTALLED", "msi": { "source": { "gcs": { "bucket": "my-bucket", "generation": "1619136883923956", "object": "my-app.msi" } } } } } ] } ] } ], "rollout": { "disruptionBudget": { "fixed": 10 }, "minWaitDuration": "300s" } } }, "orchestrationScope": { "selectors": [ { "resourceHierarchySelector": { "includedProjects": [ "projects/87654321", "projects/4567890" ] } } ] }, "state": "ACTIVE" }
Excluir atribuições de política de SO de vários projetos
É possível usar o orquestrador de políticas para excluir políticas do SO de vários projetos na pasta ou organização especificando o ID exclusivo do recurso de política do SO.
Console
Para excluir políticas de SO em uma pasta, faça o seguinte:
- No cliente local, crie ou faça o download de um arquivo de política do SO. Ele precisa ser um arquivo JSON ou YAML. Para mais informações sobre como criar políticas do SO ou ver amostras de políticas do SO, consulte Políticas do SO.
No console do Google Cloud , acesse a página Políticas do SO.
Clique no Seletor de projetos na barra de ações do console do Google Cloud e selecione o projeto, a pasta ou a organização em que você quer criar o orquestrador de políticas.
Clique em Criar global.
Especifique um nome e uma descrição para o orquestrador de políticas. Consulte a Convenção de nomenclatura de recursos. O VM Manager atribui um ID exclusivo ao orquestrador de políticas. É possível editar esse ID se necessário.
Na seção Políticas do SO, selecione e faça upload do arquivo da política do SO.
Opcional: na seção Estado, selecione uma das seguintes opções para especificar o comportamento do orquestrador de políticas:
ACTIVE
: depois de criado, o orquestrador de políticas realiza ações imediatamente.STOPPED
: um orquestrador de políticas criado nesse estado não realiza ações imediatamente. Você pode editar o orquestrador de políticas depois para mudar o estado dele.
No campo Ação, selecione EXCLUIR.
Na seção Escopo da orquestração, especifique as pastas e os projetos em que você quer implantar as políticas do SO. Insira apenas os números do projeto e da pasta nesses campos, por exemplo,
123456,7654321
.Selecione as zonas que contêm as VMs às quais você quer aplicar as políticas do SO.
Opcional: na seção Instâncias de VM de destino, especifique as VMs de destino a que você quer aplicar as políticas do SO.
- Selecione as famílias do SO.
É possível filtrar ainda mais as VMs especificando inclusões e exclusões.
Por exemplo, é possível selecionar todas as VMs do Ubuntu no ambiente de teste e excluir aquelas que executam o Google Kubernetes Engine. Basta especificar o seguinte:
- Família do SO:
ubuntu
- Incluir:
env:test
,env:staging
- Excluir:
goog-gke-node
- Família do SO:
Especifique um plano de lançamento para a atribuição de política do SO.
- Especifica o tamanho da onda (também conhecido como orçamento de interrupção). Por exemplo, 10%.
- Especifique o tempo de espera. Por exemplo, 15 minutes.
Clique em Criar.
gcloud
Para excluir políticas do SO de vários projetos usando um orquestrador de políticas, use o comando
os-config policy-orchestrators create
e especifique a ação comodelete
para opolicy-id
associado à atribuição de política do SO.Projeto
gcloud compute os-config policy-orchestrators create ORCHESTRATOR_NAME \ --policy-type=os_policy_assignment_v1 \ --policy-file=OS_POLICY_ASSIGNMENT_FILE \ --policy-id=POLICY_ID \ --action=delete
Substitua:
ORCHESTRATOR_NAME
: nome do orquestrador de políticas.OS_POLICY_ASSIGNMENT_FILE
: o caminho absoluto para o arquivo de atribuição de política do SO.POLICY_ID
: o ID da política para o recurso do orquestrador de políticas do SO.
Exemplo
gcloud compute os-config policy-orchestrators create my-os-policy-orchestrator \ --policy-type=os_policy_assignment_v1 --policy-id=my-policy \ --action=delete
Pasta
gcloud --billing-project=QUOTA_PROJECT_ID compute os-config policy-orchestrators create ORCHESTRATOR_NAME \ --policy-type=os_policy_assignment_v1 \ --policy-id=POLICY_ID \ --action=delete
Substitua:
QUOTA_PROJECT_ID
: o ID do projeto de cota ou faturamento.ORCHESTRATOR_NAME
: nome do orquestrador de políticas.FOLDER_NUMBER
: o ID numérico da pasta de que você quer excluir os recursos da política do SO.POLICY_ID
: o ID da política para o recurso do orquestrador de políticas do SO.
Exemplo
gcloud --billing-project=my-quota-project compute os-config policy-orchestrators create my-os-policy-orchestrator \ --folder=123456 \ --policy-type=os_policy_assignment_v1 \ --policy-id=my-policy \ --action=delete
Organização
gcloud --billing-project=QUOTA_PROJECT_ID compute os-config policy-orchestrators create ORCHESTRATOR_NAME \ --organization=ORGANIZATION_NUMBER \ --policy-type=os_policy_assignment_v1 \ --policy-id=POLICY_ID \ --action=delete
Substitua:
QUOTA_PROJECT_ID
: o ID do projeto de cota ou faturamento.ORCHESTRATOR_NAME
: nome do orquestrador de políticas.ORGANIZATION_NUMBER
: o ID numérico da organização de que você quer excluir os recursos de política do SO.POLICY_ID
: o ID da política para o recurso do orquestrador de políticas do SO.
Exemplo
gcloud --billing-project=my-quota-project compute os-config policy-orchestrators create my-os-policy-orchestrator \ --organization=987654321 --policy-type=os_policy_assignment_v1 --policy-id=my-policy \ --action=delete
REST
Para criar um orquestrador de políticas que exclua políticas do SO de vários projetos, use um dos seguintes métodos e especifique a ação como
DELETE
:Projeto
Envie uma solicitação
POST
para o métodoprojects.locations.global.policyOrchestrators.create
.No corpo da solicitação, especifique o ID da política associada à atribuição de política do SO.
POST https://osconfig.googleapis.com/v2/projects/PROJECT_NUMBER/locations/global/policyOrchestrators { JSON_OS_POLICY_ORCHESTRATOR }
Substitua:
PROJECT_NUMBER
: o ID numérico do projeto em que você quer criar o orquestrador de políticas.JSON_OS_POLICY_ORCHESTRATOR
: o objeto do orquestrador de políticas no formato JSON que define o escopo do orquestrador, o recurso orquestrado e o estado da orquestração. Para mais informações sobre os parâmetros e o formato, consulteResource: folders.locations.global.policyOrchestrators
.
Exemplo
POST https://osconfig.googleapis.com/v2/projects/567890/locations/global/policyOrchestrators { "action": "DELETE", "orchestratedResource": { "id": "my-policy", "osPolicyAssignmentV1Payload": {} }, "orchestrationScope": { "selectors": [ { "resourceHierarchySelector": { "includedProjects": [ "projects/87654321", "projects/4567890" ] } } ] }, "state": "ACTIVE" }
Pasta
Envie uma solicitação
POST
para o métodofolders.locations.global.policyOrchestrators.create
.No corpo da solicitação, especifique o ID da política associada à atribuição de política do SO.
POST https://osconfig.googleapis.com/v2/folders/FOLDER_NUMBER/locations/global/policyOrchestrators -H "x-goog-user-project: QUOTA_PROJECT_ID" { JSON_OS_POLICY_ORCHESTRATOR }
Substitua:
QUOTA_PROJECT_ID
: o ID do projeto de cota ou faturamento.FOLDER_NUMBER
: o ID numérico da pasta de que você quer excluir os recursos da política do SO.JSON_OS_POLICY_ORCHESTRATOR
: o objeto do orquestrador de políticas no formato JSON que define o ID da política, o escopo do orquestrador, o recurso orquestrado e o estado da orquestração. Para mais informações sobre os parâmetros e o formato, consulteResource: folders.locations.global.policyOrchestrators
.
Exemplo
Por exemplo, para excluir recursos de política de SO de vários projetos, faça a seguinte solicitação:
POST https://osconfig.googleapis.com/v2/folders/567890/locations/global/policyOrchestrators -H "x-goog-user-project: my-quota-project { "action": "DELETE", "orchestratedResource": { "id": "my-policy", "osPolicyAssignmentV1Payload": {} }, "orchestrationScope": { "selectors": [ { "resourceHierarchySelector": { "includedProjects": [ "projects/87654321", "projects/4567890" ] } } ] }, "state": "ACTIVE" }
Organização
Envie uma solicitação
POST
para o métodoorganizations.locations.global.policyOrchestrators.create
.No corpo da solicitação, especifique o ID da política associada à atribuição de política do SO.
POST https://osconfig.googleapis.com/v2/organizations/ORGANIZATION_NUMBER/locations/global/policyOrchestrators -H "x-goog-user-project: QUOTA_PROJECT_ID" { JSON_OS_POLICY_ORCHESTRATOR }
Substitua:
QUOTA_PROJECT_ID
: o ID do projeto de cota ou faturamento.ORGANIZATION_NUMBER
: o ID numérico da organização de que você quer excluir os recursos de política do SO.JSON_OS_POLICY_ORCHESTRATOR
: o objeto do orquestrador de políticas no formato JSON que define o ID da política, o escopo do orquestrador, o recurso orquestrado e o estado da orquestração. Para mais informações sobre os parâmetros e o formato, consulteResource: organizations.locations.global.policyOrchestrators
.
Exemplo
Por exemplo, para excluir recursos de política de SO de vários projetos, envie a seguinte solicitação:
POST https://osconfig.googleapis.com/v2/organizations/567890/locations/global/policyOrchestrators -H "x-goog-user-project: my-quota-project { "action": "DELETE", "orchestratedResource": { "id": "my-policy", "osPolicyAssignmentV1Payload": {} }, "orchestrationScope": { "selectors": [ { "resourceHierarchySelector": { "includedProjects": [ "projects/87654321", "projects/4567890" ] } } ] }, "state": "ACTIVE" }
A seguir
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-08 UTC.
-