Nesta etapa, você cria uma organização da Apigee.
Para criar uma nova organização e provisioná-la:
-
Na linha de comando, receba as credenciais de autenticação de
gcloud
usando o comando a seguir:Linux / MacOS
export 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.
Windows
for /f "tokens=*" %a in ('gcloud auth print-access-token') do set TOKEN=%a
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.
-
Na Etapa 1, você criou a variável de ambiente
PROJECT_ID
. Adicione as variáveis de ambiente a seguir. Selecione a guia correspondente ao tipo de organização necessário: Sem residência de dados ou com Residência de dados:Sem residência de dados
Linux / MacOS
export ORG_NAME=$PROJECT_ID
export ANALYTICS_REGION="ANALYTICS_REGION"
export RUNTIMETYPE=HYBRID
Windows
set ORG_NAME=$PROJECT_ID
set ANALYTICS_REGION="ANALYTICS_REGION"
set RUNTIMETYPE=HYBRID
Em que:
ORG_NAME
(obrigatório): esse valor precisa corresponder aPROJECT_ID
.ANALYTICS_REGION
(obrigatório): a região principal para armazenamento de dados de análise. Para conferir uma lista de regiões disponíveis do Apigee API Analytics, consulte os locais da Apigee.-
RUNTIMETYPE
(obrigatório): precisa ser definido comoHYBRID
.
Residência dos dados
Linux / MacOS
export ORG_NAME=$PROJECT_ID
export ANALYTICS_REGION="ANALYTICS_REGION"
export RUNTIMETYPE=HYBRID
export CONTROL_PLANE_LOCATION="YOUR_CONTROL_PLANE_LOCATION"
export CONSUMER_DATA_REGION="YOUR_CONSUMER_DATA_REGION"
export BILLING_TYPE="SUBSCRIPTION"
Windows
set ORG_NAME=$PROJECT_ID
set ANALYTICS_REGION="ANALYTICS_REGION"
set RUNTIMETYPE=HYBRID
set CONTROL_PLANE_LOCATION="YOUR_CONTROL_PLANE_LOCATION"
set CONSUMER_DATA_REGION="YOUR_CONSUMER_DATA_REGION"
set BILLING_TYPE="SUBSCRIPTION"
Em que:
ORG_NAME
: esse valor precisa corresponder aPROJECT_ID
.ANALYTICS_REGION
: a região principal para armazenamento de dados de análise. Para conferir uma lista de regiões disponíveis do Apigee API Analytics, consulte os locais da Apigee.-
RUNTIMETYPE
: precisa ser definido comoHYBRID
. CONTROL_PLANE_LOCATION
: o local onde o conteúdo principal do cliente, como pacotes de proxy, é armazenado. Para uma lista, consulte Regiões disponíveis do plano de controle da API Apigee.CONSUMER_DATA_REGION
: uma sub-região da região do plano de controle. É preciso especificarCONTROL_PLANE_LOCATION
eCONSUMER_DATA_REGION
. Para ver uma lista de regiões de dados do consumidor disponíveis, consulte Locais da Apigee.BILLING_TYPE
: precisa ser definido como"SUBSCRIPTION"
. Este é o tipo de faturamento da sua organização da Apigee híbrida. Consulte Direitos de assinatura para mais informações.
Exemplo:
export ORG_NAME=$PROJECT_ID
export ANALYTICS_REGION="us-west1"
export RUNTIMETYPE=HYBRID
export CONSUMER_DATA_REGION="us-west1"
export CONTROL_PLANE_LOCATION="us"
export BILLING_TYPE="SUBSCRIPTION"
- Chame a seguinte API da Apigee para criar a organização:
Sem residência de dados
curl -H "Authorization: Bearer $TOKEN" -X POST -H "content-type:application/json" \ -d '{ "name":"'"$ORG_NAME"'", "runtimeType":"'"$RUNTIMETYPE"'", "analyticsRegion":"'"$ANALYTICS_REGION"'" }' \ "https://apigee.googleapis.com/v1/organizations?parent=projects/$PROJECT_ID"
Residência dos dados
curl -H "Authorization: Bearer $TOKEN" -X POST -H "content-type:application/json" \ -d '{ "name":"'"$ORG_NAME"'", "billingType":"'"$BILLING_TYPE"'", "runtimeType":"'"$RUNTIMETYPE"'", "apiConsumerDataLocation":"'"$CONSUMER_DATA_REGION"'", "analyticsRegion":"'"$ANALYTICS_REGION"'" }' \ "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations?parent=projects/$PROJECT_ID"
Em uma solicitação de criação bem-sucedida, a API das organizações responde 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.
- 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
- É possível verificar o status da operação de longa duração em que o ID foi retornado pela
solicitação de criação. Para isso, use a API de operações. Por exemplo:
Sem residência de dados
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
. 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
. 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", "description": "", "createdAt": "1626237148461", "lastModifiedAt": "1626237149384", "properties": { "property": [ { "name": "features.hybrid.enabled", "value": "true" }, { "name": "features.mart.connect.enabled", "value": "true" } ] }, "analyticsRegion": "ANALYTICS_REGION", "runtimeType": "HYBRID", "subscriptionType": "TRIAL", "state": "ACTIVE", "billingType": "EVALUATION", "expiresAt": "1631421073171", "addonsConfig": { "advancedApiOpsConfig": {}, "integrationConfig": {}, "monetizationConfig": {} } } }
Residência dos dados
curl -H "Authorization: Bearer $TOKEN" \ "https://$CONTROL_PLANE_LOCATION-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
. 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
. 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", "description": "", "createdAt": "1626237148461", "lastModifiedAt": "1626237149384", "properties": { "property": [ { "name": "features.hybrid.enabled", "value": "true" }, { "name": "features.mart.connect.enabled", "value": "true" } ] }, "analyticsRegion": "ANALYTICS_REGION", "runtimeType": "HYBRID", "subscriptionType": "TRIAL", "state": "ACTIVE", "billingType": "SUBSCRIPTION", "apiConsumerDataLocation": "CONSUMER_DATA_REGION", "expiresAt": "1631421073171", "addonsConfig": { "advancedApiOpsConfig": {}, "integrationConfig": {}, "monetizationConfig": {} } } }
- É possível usar a API das organizações da Apigee para recuperar informações sobre uma organização após
a criação.
Exemplo:
Sem residência de dados
curl -H "Authorization: Bearer $TOKEN" \ "https://apigee.googleapis.com/v1/organizations/$ORG_NAME"
A resposta à sua solicitação contém detalhes sobre a organização especificada no formato JSON.
{ "name": "apigee-example", "createdAt": "1626237148461", "lastModifiedAt": "1626237149384", "properties": { "property": [ { "name": "features.hybrid.enabled", "value": "true" }, { "name": "features.mart.connect.enabled", "value": "true" } ] }, "analyticsRegion": "us-west1", "runtimeType": "HYBRID", "subscriptionType": "PAID", "projectId": "apigee-example", "state": "ACTIVE", "billingType": "SUBSCRIPTION", "expiresAt": "1631421073171", "addonsConfig": { "advancedApiOpsConfig": {}, "integrationConfig": {}, "monetizationConfig": {} } }
Residência dos dados
curl -H "Authorization: Bearer $TOKEN" \ "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$ORG_NAME"
A resposta à sua solicitação contém detalhes sobre a organização especificada no formato JSON.
{ "name": "apigee-example", "createdAt": "1626237148461", "lastModifiedAt": "1626237149384", "properties": { "property": [ { "name": "features.hybrid.enabled", "value": "true" }, { "name": "features.mart.connect.enabled", "value": "true" } ] }, "analyticsRegion": "us-west1", "runtimeType": "HYBRID", "subscriptionType": "PAID", "projectId": "apigee-example", "state": "ACTIVE", "billingType": "SUBSCRIPTION", "expiresAt": "1631421073171", "addonsConfig": { "advancedApiOpsConfig": {}, "integrationConfig": {}, "monetizationConfig": {} } }
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" } ] } }
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. |
400 |
'global' violates constraint in constraints/gcp.resourceLocations
on the resource projects/PROJECT_ID, Control Plane Region |
Você tentou criar uma organização que não tem direito a uma assinatura PAID. As organizações da Apigee híbrida do tipo EVAL não oferecem suporte à Residência de dados. |
400 |
runtimeType HYBRID is not supported for PAYG_V2, use CLOUD instead: invalid argument |
Você tentou criar uma organização em um projeto com um direito de acesso de pagamento por utilização (PAYG, na sigla em inglês). Entre em contato com o representante da sua conta do Google Cloud para tirar dúvidas sobre os direitos da organização. |
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 para a API Operations a fim de verificar o status da operação de longa duração, conforme descrito na etapa 5. |
403 |
Permission denied on resource project organizations/PROJECT_ID/deployedIngressConfig |
Você tentou criar uma organização, mas ela não tem os direitos corretos. Entre em contato com o representante da sua conta do Google Cloud para tirar dúvidas sobre os direitos da organização. |
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. |
Próxima etapa
Acesse a Etapa 3: Criar um grupo de ambiente.