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.

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. 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":"display_name",
        "description":"organization_description",
        "runtimeType":"runtime_type",
        "analyticsRegion":"analytics_region"
      }' \
      "https://apigee.googleapis.com/v1/organizations?parent=projects/project_ID"

    Em que:

    • (Obrigatório) org_name é o ID programático que você quer para sua organização ativada para o híbrido. O ID da organização precisa corresponder ao ID do projeto do Google Cloud que você criou na Etapa 2: criar um projeto do Google Cloud. Por exemplo, hybrid-42.
    • (Obrigatório) runtime_type é 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.
    • (Obrigatório) analytics_region é a região principal para o armazenamento de dados de análise. Escolha uma destas opções:
      asia-northeast1 australia-southeast1 us-west1
      us-central1 us-east1 europe-west1
      europe-west2

      Fornecemos essa opção para que você possa escolher uma região geograficamente próxima ou se sua organização tiver outros requisitos de armazenamento.

    • (Obrigatório) project_ID é o projeto do Google Cloud que você quer vincular à 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.
    • (Opcional) display_name é o nome fácil de usar da sua organização. Esse valor não precisa ser exclusivo e pode incluir espaços e caracteres especiais. Por exemplo, "Minha organização híbrida".
    • (Opcional) organization_description são informações sobre a organização que você quer usar como um lembrete da finalidade dela. Por exemplo, "Minha primeira organização".

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

    {
      "name": "organizations/organization_ID/operations/long_running_operation_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.apigee.v1.OperationMetadata",
        "operationType": "INSERT",
        "targetResourceName": "organizations/organization_ID",
        "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 autoridade (descrito posteriormente).
    • organization_ID é 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.

  3. É 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 fazer isso, use a API Operations, como no exemplo a seguir:
    curl -H "Authorization: Bearer $TOKEN" \
      "https://apigee.googleapis.com/v1/organizations/organization_ID/operations/long_running_operation_ID"

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

    FINISHED

    Quando a organização foi provisionada, o estado da operação de longa duração é FINISHED, como mostra o exemplo a seguir:

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

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

    Parabéns! Você criou uma nova organização e ela está pronta para ser usada. Prossiga para a Etapa 5: adicionar um ambiente.

    IN_PROGRESS

    Se a Apigee ainda estiver criando a organização, a Apigee responderá com um status IN_PROGRESS, como mostra o exemplo a seguir:

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

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

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": "type.googleapis.com/google.rpc.DebugInfo",
        "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ê pode 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íbrido. 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 da gcloud está inválido 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 no procedimento acima.
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_organization_ID 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.

Receber informações da organização

Você pode conseguir uma lista de todas as organizações a que sua conta tem acesso ou ver detalhes sobre uma organização específica pelo ID. Para executar essas ações, use a API Organizations.

Listar organizações

Para ter uma lista de todas as organizações:

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 habilitadas para o sistema híbrido que você pode acessar no formato JSON.

O exemplo a seguir mostra uma resposta com uma única organização, "my-org-42":

{
  "organizations": [
    {
      "organization": "my-org-42",
      "projectIds": [
        "my-project"
      ]
    }
  ]
}

Veja os detalhes

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/organization_ID

O exemplo a seguir recebe detalhes sobre a organização "my-org-42":

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

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 "my-org-42":

{
  "name": "my-org-42",
  "createdAt": "1572550611",
  "lastModifiedAt": "1572550611",
  "environments": [
    "my-environment"
  ],
  "analyticsRegion": "us-east1"
}
1 2 3 4 (A SEGUIR) Etapa 5: adicionar um ambiente