Etapa 4: criar uma organização

Você criou uma conta e um projeto do Google Cloud e ativou as APIs. Agora você pode criar sua organização.

Pré-requisito

Para criar uma organização, é necessário atender a uma das seguintes condições:

  • ter uma conta de avaliação. As contas de avaliação expiram após 60 dias. Nesse momento, a organização será excluída.
  • Ter uma conta paga

Se nenhuma delas for verdadeira, será preciso entrar em contato com a equipe de vendas da Apigee antes de continuar.

Permissões necessárias

O criador da organização precisa ter pelo menos o papel Administrador da organização da Apigee. Se você for o proprietário do projeto, terá permissão automática para criar uma organização. No entanto, se você delegar a criação da organização a um proprietário que não seja de projeto, esse usuário precisará receber o papel de administrador da organização do Apigee em seu projeto. Para informações sobre a concessão de papéis, consulte Como conceder, alterar e revogar o acesso a recursos.

Para criar uma nova organização e provisioná-la:

  1. Na linha de comando, receba as credenciais de autenticação de gcloud. Veja o exemplo a seguir:

    TOKEN=$(gcloud auth print-access-token)

    Para verificar se o token foi preenchido, use echo, como mostra o exemplo a seguir:

    echo $TOKEN

    Isso exibirá seu token como uma string codificada.

    Para mais informações, consulte a visão geral da ferramenta de linha de comando gcloud.

  2. Crie as seguintes variáveis de ambiente para os elementos da organização. Eles serão usados no comando para criar a organização.
    • PROJECT_ID (Required) é o projeto do Google Cloud que você quer vincular à sua nova organização com acesso híbrido. Este é o ID que o Google gerou para você na Etapa 2: criar um projeto do Google Cloud.
      export PROJECT_ID=your_project_id

      Nome do ID do projeto com ponto final

    • ORG_NAME (Obrigatório) é o ID programático que você quer para sua organização ativada para o híbrido.
      export ORG_NAME=$PROJECT_ID
    • ORG_DISPLAY_NAME (Opcional) é o nome fácil de usar da organização. Esse valor não precisa ser exclusivo e pode incluir espaços e caracteres especiais. Por exemplo, "Minha organização híbrida".
      ORG_DISPLAY_NAME="friendly_name"

      O conteúdo do nome da variável que contém espaços precisa ser colocado entre aspas duplas. Por exemplo: "Minha organização"

    • ORGANIZATION_DESCRIPTION (Opcional) são informações sobre a organização que você quer usar como um lembrete da finalidade dela. Por exemplo, "Minha primeira organização".
      ORGANIZATION_DESCRIPTION="description_text"
    • ANALYTICS_REGION (Obrigatório) é a região principal para o armazenamento de dados de análise.
      export ANALYTICS_REGION=analytics_region

      Em que analytics_region é um dos seguintes:

      asia-northeast1 asia-south1 australia-southeast1
      us-central1 us-east1 us-west1
      europe-west2 europe-west1

      Escolha uma região geograficamente próxima ou que atenda aos requisitos de armazenamento da sua organização.

    • RUNTIMETYPE (Obrigatório) é o tipo de ambiente de execução da organização da Apigee, em que HYBRID é o ambiente de execução híbrido da Apigee gerenciado pelo usuário.
      export RUNTIMETYPE=HYBRID
  3. Envie uma solicitação POST autenticada para a API Create Organizations.

    No exemplo a seguir, mostramos a estrutura de solicitação que cria uma organização:

    curl -H "Authorization: Bearer $TOKEN" -X POST -H "content-type:application/json" \
      -d '{
        "name":"'"$ORG_NAME"'",
        "displayName":"'"$ORG_DISPLAY_NAME"'",
        "description":"'"$ORGANIZATION_DESCRIPTION"'",
        "runtimeType":"'"$RUNTIMETYPE"'",
        "analyticsRegion":"'"$ANALYTICS_REGION"'"
      }' \
      "https://apigee.googleapis.com/v1/organizations?parent=projects/$PROJECT_ID"

    Em uma solicitação de criação bem-sucedida, a API Organizations precisa responder com uma mensagem semelhante a esta:

    {
      "name": "organizations/org_name/operations/long_running_operation_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.apigee.v1.OperationMetadata",
        "operationType": "INSERT",
        "targetResourceName": "organizations/org_name",
        "state": "IN_PROGRESS"
      }
    }

    Em que:

    • long_running_operation_ID é o UUID de uma operação assíncrona e de longa duração. É possível usar esse ID para verificar o status da solicitação de criação da organização (descrito na etapa 5).
    • org_name é o ID da sua nova organização que está sendo criada.

    Como a propriedade state na resposta indica que a Apigee começou a criar a nova organização, o estado dela é IN_PROGRESS. Esse processo pode levar vários minutos.

    Se você receber um erro, consulte Como solucionar problemas na criação da organização.

  4. Salve o ID da operação de longa duração em uma variável de ambiente. Ele será útil para tarefas de gerenciamento futuras.

    Sintaxe

    export LONG_RUNNING_OPERATION_ID=long_running_operation_ID

    Exemplo

    export LONG_RUNNING_OPERATION_ID=6abc8a72-46de-f9da-bcfe-70d9ab347e4f
  5. É possível verificar o status da operação de longa duração com o ID que a Apigee retornou na solicitação de criação inicial. Para isso, use a API de operações. Por exemplo:
    curl -H "Authorization: Bearer $TOKEN" \
      "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/operations/$LONG_RUNNING_OPERATION_ID"

    Os exemplos a seguir mostram possíveis respostas a essa solicitação:

    IN_PROGRESS

    Se a Apigee ainda estiver criando a organização, ela responderá com um status IN_PROGRESS. Por exemplo:

    {
        "name": "organizations/org_name/operations/long_running_operation_ID",
        "metadata": {
          "@type": "type.googleapis.com/google.cloud.apigee.v1.OperationMetadata",
          "operationType": "INSERT",
          "targetResourceName": "organizations/org_name",
          "state": "IN_PROGRESS"
        }
      }

    Aguarde um pouco mais antes de tentar verificar se o processo de criação foi concluído.

    FINISHED

    Quando a organização foi provisionada, o estado da operação de longa duração era FINISHED. Por exemplo:

    {
      "name": "organizations/org_name/operations/long_running_operation_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.apigee.v1.OperationMetadata",
        "operationType": "INSERT",
        "targetResourceName": "organizations/org_name",
        "state": "FINISHED"
      },
      "done": true,
      "response": {
        "@type": "type.googleapis.com/google.cloud.apigee.v1.Organization",
        "name": "org_name",
        "displayName": "display_name",
        "description": "description",
        "createdAt": "1600817805771",
        "lastModifiedAt": "1600817805771",
        "properties": {
          "property": [
            {
              "name": "features.hybrid.enabled",
              "value": "true"
            },
            {
              "name": "features.mart.connect.enabled",
              "value": "true"
            }
          ]
        },
        "analyticsRegion": "us-central1",
        "runtimeType": "HYBRID",
        "subscriptionType": "TRIAL"
      }
    }

    Se você não tiver inserido uma descrição, esse campo não aparecerá na resposta.

Visualizar os detalhes da organização

É possível visualizar os detalhes dos metadados da organização que você criou usando uma API da Apigee. Também é possível usar uma API para listar todas as organizações a que sua conta do Google Cloud tem acesso. Para executar essas ações, use a API Organizations.

Antes de testar as APIs, atualize o token de autorização:

TOKEN=$(gcloud auth print-access-token)

Acessar detalhes da organização

Para ver detalhes sobre uma única organização:

Envie uma solicitação GET (sem corpo) para o seguinte endpoint da API Get Organizations:

https://apigee.googleapis.com/v1/organizations/org_name

O exemplo a seguir mostra detalhes sobre a organização hybrid-example:

curl -H "Authorization: Bearer $TOKEN" \
  "https://apigee.googleapis.com/v1/organizations/hybrid-example"

A resposta à sua solicitação contém detalhes sobre a organização especificada no formato JSON.

O exemplo a seguir mostra uma resposta com detalhes sobre a organização hybrid-example:

{
  "name": "organizations/org_name/operations/long_running_operation_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.apigee.v1.OperationMetadata",
    "operationType": "INSERT",
    "targetResourceName": "org_name",
    "state": "FINISHED"
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.apigee.v1.Organization",
    "name": "org_name",
    "displayName": "display_name",
    "description": "description",
    "createdAt": "1600817805771",
    "lastModifiedAt": "1600817805771",
    "properties": {
      "property": [
        {
          "name": "features.hybrid.enabled",
          "value": "true"
        },
        {
          "name": "features.mart.connect.enabled",
          "value": "true"
        }
      ]
    },
    "analyticsRegion": "us-central1",
    "runtimeType": "HYBRID",
    "subscriptionType": "TRIAL"
  }
}

Listar organizações

Para ver uma lista de todas as organizações às quais sua conta do Google Cloud tem acesso:

Envie uma solicitação GET (sem corpo) para o seguinte endpoint da API List Organizations:

https://apigee.googleapis.com/v1/organizations

Exemplo:

curl -H "Authorization: Bearer $TOKEN" "https://apigee.googleapis.com/v1/organizations"

A resposta à solicitação contém uma matriz de todas as organizações ativadas por híbridas que você pode acessar no formato JSON.

O exemplo a seguir mostra uma resposta com uma única organização, hybrid-example:

{
  "organizations": [
    {
      "organization": "hybrid-example",
      "projectIds": [
        "hybrid-example"
      ]
    }
  ]
}

Como solucionar problemas na criação da organização

Ao criar uma organização com a API Create Organizations, você talvez receba uma resposta de erro. As respostas têm a seguinte aparência:

{
  "error": {
    "code": HTTP_error_code,
    "message": "short_error_message",
    "status": "high_level_error_type",
    "details": [
      {
        "@type": "specific_error_type",
        "detail": "expanded_error_description"
      }
    ]
  }
}

O exemplo a seguir mostra uma resposta a um erro comum. O ID da organização contém caracteres ilegais (caracteres maiúsculos não são permitidos nos IDs da organização):

{
  "error": {
    "code": 400,
    "message": "invalid Organization ID \"MY-ORG\": \"MY-ORG\" is an invalid Organization ID",
    "status": "INVALID_ARGUMENT",
    "details": [
      {
        "@type": "",
        "detail": "[ORIGINAL ERROR] generic::invalid_argument: invalid Organization ID \"MY-ORG\":
          \"My-ORG\" is an invalid Organization ID [google.rpc.error_details_ext]
          { message: \"invalid Organization ID \\\"MY-ORG\\\": \\\"MY-ORG\\\" is an invalid
          Organization ID\" }"
      }
    ]
  }
}

Nesse caso, você tem a opção de renomear a organização com letras minúsculas e reenviar sua solicitação.

A tabela a seguir lista os erros que você pode receber e as possíveis resoluções ao tentar criar uma nova organização:

Código de erro HTTP Erro HTTP Descrição
400 Invalid JSON payload received A estrutura dos dados na solicitação contém um erro de sintaxe ou o caminho para o endpoint está incorreto.
400 Invalid organization ID O ID da organização solicitado não pode conter letras maiúsculas ou quaisquer caracteres especiais diferentes de hífens. Ele precisa conter apenas letras minúsculas, números e/ou hífens. Ele pode ter até um máximo de 32 caracteres.
400 Unsupported analytics region Você não especificou o valor de analyticsRegion no corpo da solicitação ou o valor especificado não é uma das opções válidas.
400 Does not have an Apigee entitlement Seu projeto do Google Cloud (criado na Etapa 2: criar um projeto do Google Cloud) ainda não foi ativado como híbrida. Isso pode indicar um problema com seu faturamento ou algum outro erro relacionado à sua conta do Google Cloud. Para mais informações, entre em contato com a equipe de vendas da Apigee.
401 Request had invalid authentication credentials Seu token de autenticação gcloud está incorreto ou desatualizado ou não foi incluído na solicitação. Gere um novo token e reenvie o endereço.
403 Permission denied on resource project project_ID Você pode ter enviado uma solicitação que continha um caminho ou ID de projeto incorreto.
403 Unable to retrieve project information A organização ainda não foi criada ou provisionada. É possível emitir uma solicitação à API Operations para verificar o status da operação de longa duração, conforme descrito na etapa 5.
409 Organization already exists Você tentou criar mais de uma organização para o projeto do Google Cloud. Você só pode criar uma organização por projeto.
409 Org proposed_org_name already exists Você tentou criar uma organização que tem o mesmo ID que uma que já existe. Os IDs de organização precisam ser exclusivos em todos os clientes híbridos. Reenviar com um novo ID da organização proposto. Por exemplo, anexe um valor numérico ao final do ID anterior que você tentou.
1 2 3 4 (NEXT) Etapa 5: configurar o DNS 6