Esta página se aplica à Apigee, mas não à Apigee híbrida.
Confira a documentação da
Apigee Edge.
Neste documento, descrevemos como instalar e configurar a Apigee a partir da linha de comando com peering de VPC. Essas etapas se aplicam aos modelos de preços de assinatura e pagamento por uso para organizações pagas com ou sem a residência de dados ativada.
Resumo das etapas
As etapas de provisionamento são as seguintes:
- Etapa 1: definir as variáveis de ambiente:
configure o
gcloud
e defina as variáveis de ambiente. A Google Cloud CLI gerencia a autenticação, a configuração local, o fluxo de trabalho do desenvolvedor e as interações com as APIs do Google Cloud. - Etapa 2: ativar APIs: a Apigee requer a ativação de várias APIs do Google Cloud.
- Etapa 3: criar a identidade de serviço da Apigee: esta conta de serviço é usada pelas bibliotecas de cliente do Google Cloud. para autenticar com as APIs do Google Cloud.
- Etapa 4: configurar a rede de serviços: a rede de serviços automatiza a configuração de conectividade particular (usando peering de rede VPC) entre sua rede e a Apigee.
- Etapa 5: criar uma organização: uma organização da Apigee (às vezes chamada de organização) é o contêiner de nível superior da Apigee. Ela inclui todos os ambientes e grupos de ambientes, usuários, proxies de API e recursos relacionados.
- Etapa 6: criar uma instância de ambiente de execução: uma instância ou ambiente de execução é o local em que seu projeto e os serviços relacionados são armazenados. Ela fornece o endpoint voltado ao usuário para seus serviços.
- Etapa 7: criar um ambiente: um proxy de API precisa ser implantado em um ambiente e adicionado a um grupo de ambientes antes que as APIs expostas fiquem acessíveis pela rede.
- Etapa 8: configurar o roteamento: permita o acesso externo ou apenas acesso interno à API.
- Etapa 9: implantar um proxy de amostra: teste o provisionamento implantando e chamando um proxy de API.
Etapa 1: definir variáveis de ambiente
Configure gcloud
e defina variáveis de ambiente para uso em etapas posteriores:
- Verifique se você cumpre os requisitos de configuração listados em Antes de começar.
- É preciso ter o SDK do Cloud instalado. Se você precisar instalá-lo, consulte Como instalar o SDK Cloud.
- Inicialize o SDK Cloud, conforme descrito em Como inicializar a gcloud CLI ou garanta que o projeto do Google Cloud criado em Pré-requisitos é o projeto padrão para
gcloud
. - Defina as variáveis de ambiente a seguir no terminal de comando.
Selecione a guia que corresponde ao tipo de organização de que você precisa: Sem residência de dados ou com Residência de dados:
AUTH="$(gcloud auth print-access-token)"
PROJECT_ID="
YOUR_PROJECT_ID "PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)")
RUNTIME_LOCATION="
YOUR_RUNTIME_LOCATION "ANALYTICS_REGION="
YOUR_ANALYTICS_REGION "BILLING_TYPE="
YOUR_BILLING_TYPE "Em que:
-
AUTH define o cabeçalho
Authentication
com um token do portador. Você usará esse cabeçalho ao chamar as APIs Apigee. O token expira após um certo tempo. Quando isso acontecer, basta gerar o token novamente usando o mesmo comando. Saiba mais na página de referência do comando print-access-token. - PROJECT_ID é o ID do projeto do Cloud que você criou como parte dos Pré-requisitos.
- PROJECT_NUMBER é o número do projeto do Cloud que você criou como parte dos Pré-requisitos.
-
RUNTIME_LOCATION é o local físico em que a instância da Apigee que você criará está localizada. Para conferir uma lista de locais disponíveis para o ambiente de execução, consulte Locais da Apigee.
-
ANALYTICS_REGION é o local físico em que os dados de análise da Apigee são armazenados. Para ver uma lista de regiões disponíveis do Apigee API Analytics, consulte Locais da Apigee.
RUNTIME_LOCATION e ANALYTICS_REGION podem ser a mesma região, mas não precisam ser os mesmos.
-
BILLING_TYPE é o tipo de faturamento da organização criada. Os valores válidos são:
PAYG
para organizações com Pay-as-you-go.SUBSCRIPTION
para organizações com assinatura.
AUTH="$(gcloud auth print-access-token)"
PROJECT_ID="
YOUR_PROJECT_ID "PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)")
RUNTIME_LOCATION="
YOUR_RUNTIME_LOCATION "CONTROL_PLANE_LOCATION="
YOUR_CONTROL_PLANE_LOCATION "CONSUMER_DATA_REGION="
YOUR_CONSUMER_DATA_REGION "BILLING_TYPE="
YOUR_BILLING_TYPE "Em que:
-
AUTH define o cabeçalho
Authentication
com um token do portador. Você usará esse cabeçalho ao chamar as APIs Apigee. O token expira após um certo tempo. Quando isso acontecer, basta gerar o token novamente usando o mesmo comando. Saiba mais na página de referência do comando print-access-token. - PROJECT_ID é o ID do projeto do Cloud que você criou como parte dos Pré-requisitos.
- PROJECT_NUMBER é o número do projeto do Cloud que você criou como parte dos Pré-requisitos.
-
RUNTIME_LOCATION é o local físico em que a instância da Apigee que você criará está localizada. Para conferir uma lista de locais disponíveis para o ambiente de execução, consulte Locais da Apigee.
O local do ambiente de execução precisa estar no local do plano de controle. - CONTROL_PLANE_LOCATION é o local físico em que os dados do plano de controle da Apigee serão armazenados. Para ver uma lista de locais disponíveis do plano de controle, consulte Locais da Apigee.
- CONSUMER_DATA_REGION é uma sub-região da região do plano de controle. Você precisa especificar CONTROL_PLANE_LOCATION e CONSUMER_DATA_REGION. Para ver uma lista de regiões de dados do consumidor disponíveis, consulte Locais da Apigee.
-
BILLING_TYPE é o tipo de faturamento da organização criada. Os valores válidos são:
PAYG
para organizações com Pay-as-you-go.SUBSCRIPTION
para organizações com assinatura.
-
AUTH define o cabeçalho
- (Opcional) Verifique seu trabalho incluindo os valores que você acabou de definir. Quando quiser
usar uma variável nos comandos, coloque o cifrão
($) antes do nome dela.
echo $AUTH
echo $PROJECT_ID
echo $PROJECT_NUMBER
echo $RUNTIME_LOCATION
echo $ANALYTICS_REGION
echo $BILLING_TYPE
As respostas aos comandos
echo
precisam ser semelhantes a estas:YOUR_TOKEN my-cloud-project 1234567890 us-west1 us-west1 SUBSCRIPTIONecho $AUTH
echo $PROJECT_ID
echo $PROJECT_NUMBER
echo $RUNTIME_LOCATION
echo $CONTROL_PLANE_LOCATION
echo $CONSUMER_DATA_REGION
echo $BILLING_TYPE
As respostas aos comandos
echo
precisam ser semelhantes a estas:YOUR_TOKEN my-cloud-project 1234567890 us-west1 us us-west1 SUBSCRIPTION
Etapa 2: ativar as APIs
Permissões exigidas para a tarefa
É possível conceder ao provisionador da Apigee um papel predefinido que inclua as permissões necessárias para realizar essa tarefa ou conceder permissões mais refinadas a fim de fornecer o privilégio mínimo necessário. Consulte Papéis predefinidos e Permissões de ativação de API.
-
A Apigee requer a ativação de várias APIs do Google Cloud. Ative as APIs executando o seguinte comando
services enable
:gcloud services enable apigee.googleapis.com \ servicenetworking.googleapis.com \ compute.googleapis.com \ cloudkms.googleapis.com --project=$PROJECT_ID
(Opcional) Para verificar seu trabalho, use o comando
services list
para mostrar todas as APIs ativadas:gcloud services list
A resposta mostra todos os serviços ativados, incluindo as APIs que você acabou de ativar.
Etapa 3: criar a identidade do serviço da Apigee
-
Crie a identidade do serviço da Apigee:
gcloud beta services identity create --service=apigee.googleapis.com \ --project=$PROJECT_ID
Verifique se o agente foi criado com sucesso. A resposta precisa mostrar o nome do agente no seguinte formato:
service-PROJECT_NUMBER@gcp-sa-apigee.iam.gserviceaccount.com
. por exemplo:Service identity created: service-1234567890@gcp-sa-apigee.iam.gserviceaccount.com
Etapa 4: configurar a rede de serviços
Nesta etapa, você aloca um par de intervalos de endereços IP (um intervalo CIDR /22 e /28) para a Apigee e executa o peering de VPC entre sua rede e a rede da Apigee. Cada instância da Apigee requer um intervalo CIDR não sobreposto de /22 e /28. O endereço do ambiente de execução da Apigee recebe endereços IP desse intervalo CIDR. Como resultado, é importante que o intervalo seja reservado para a Apigee e não usado por outros aplicativos na rede VPC do cliente. Para mais informações e considerações importantes, consulte Noções básicas sobre intervalos de peering.
Observe que você está criando um intervalo de IP de rede suficiente para uma instância da Apigee. Se você planeja criar outras instâncias da Apigee, repita essa etapa para cada uma. Os intervalos não podem ser compartilhados entre instâncias. Consulte também Como expandir a Apigee para várias regiões.
Permissões exigidas para a tarefa
É possível conceder ao provisionador da Apigee um papel predefinido que inclua as permissões necessárias para realizar essa tarefa ou conceder permissões mais refinadas a fim de fornecer o privilégio mínimo necessário. Consulte Papéis predefinidos e Permissões de rede de serviços.
- Crie estas variáveis de ambiente:
RANGE_NAME=
YOUR_RANGE_NAME NETWORK_NAME=
YOUR_NETWORK_NAME Em que:
- RANGE_NAME é o nome do intervalo de endereços IP que você está criando.
Você dá o nome que quiser a ele. Por exemplo:
google-svcs
- NETWORK_NAME é o nome do recurso de rede em que os endereços precisam ser reservados.
O Google cria uma rede padrão (chamada
default
) para cada novo projeto, para que você possa usar isso. No entanto, o Google não recomenda usar a rede padrão para qualquer finalidade que não seja teste.
- RANGE_NAME é o nome do intervalo de endereços IP que você está criando.
Você dá o nome que quiser a ele. Por exemplo:
- Crie um intervalo de IP de rede com um comprimento CIDR de /22:
gcloud compute addresses create $RANGE_NAME \ --global \ --prefix-length=22 \ --description="Peering range for Apigee services" \ --network=$NETWORK_NAME \ --purpose=VPC_PEERING \ --addresses=
OPTIONAL_ADDRESSES \ --project=$PROJECT_IDEm que
--addresses
permite especificar um intervalo de endereços. Por exemplo, para alocar o bloco CIDR192.168.0.0/22
, especifique192.168.0.0
como endereço e22
como tamanho de prefixo. Consulte também Como criar uma alocação de IP.Se você não fornecer o parâmetro
--addresses
, a gcloud selecionará um intervalo de endereços disponível.Em caso de sucesso,
gcloud
responderá com o seguinte:Created [https://www.googleapis.com/compute/v1/projects/
PROJECT_NAME /global/addresses/google-svcs].Depois que você criar um intervalo de endereços IP, os endereços serão associados ao projeto até que você os libere.
- Verifique se o intervalo de IPs da rede foi criado com um comprimento CIDR de /22:
gcloud compute addresses list --global --project=$PROJECT_ID
gcloud compute addresses describe $RANGE_NAME --global --project=$PROJECT_ID
- Crie um intervalo de IP de rede com um comprimento CIDR de /28. Esse intervalo é obrigatório e é usado pela Apigee para solução de problemas e não pode ser personalizado ou alterado.
gcloud compute addresses create google-managed-services-support-1 \ --global \ --prefix-length=28 \ --description="Peering range for supporting Apigee services" \ --network=$NETWORK_NAME \ --purpose=VPC_PEERING \ --addresses=
OPTIONAL_ADDRESSES \ --project=$PROJECT_IDEm que
--addresses
permite especificar um intervalo de endereços. Por exemplo, para alocar o bloco CIDR192.168.0.0/28
, especifique192.168.0.0
como endereço e28
como tamanho de prefixo. Consulte também Como criar uma alocação de IP.Se você não fornecer o parâmetro
--addresses
, a gcloud selecionará um intervalo de endereços disponível. - Verifique se o intervalo de IPs da rede foi criado com um comprimento CIDR de /28:
gcloud compute addresses list --global --project=$PROJECT_ID
gcloud compute addresses describe google-managed-services-support-1 --global \ --project=$PROJECT_ID
- Conecte os serviços à VPC usando o seguinte comando:
gcloud services vpc-peerings connect \ --service=servicenetworking.googleapis.com \ --network=$NETWORK_NAME \ --ranges=$RANGE_NAME,google-managed-services-support-1 \ --project=$PROJECT_ID
Essa operação pode levar vários minutos para ser concluída. Em caso de sucesso,
gcloud
responde com o seguinte, em que OPERATION_ID é o UUID da LRO.Operation "operations/
OPERATION_ID " finished successfully. - Após alguns minutos, verifique se o peering de VPC foi bem-sucedido:
gcloud services vpc-peerings list \ --network=$NETWORK_NAME \ --service=servicenetworking.googleapis.com \ --project=$PROJECT_ID
A Apigee cria uma conexão entre sua VPC e os serviços do Google. Especificamente, a Apigee conecta seu projeto à API Service Networking usando o peering de VPC. A Apigee também associa os endereços IP ao seu projeto.
Etapa 5: criar uma organização
Permissões exigidas para a tarefa
É possível conceder ao provisionador da Apigee um papel predefinido que inclui as permissões necessárias para concluir essa tarefa ou conceder permissões mais refinadas para fornecer o privilégio mínimo necessário. Veja estes tópicos:
Antes de criar uma organização, crie um keyring e uma chave de criptografia de banco de dados de ambiente de execução (consulte a etapa 1) e, se estiver usando a residência de dados, os keyrings e as chaves de criptografia do plano de controle (consulte a etapa 2). Essas chaves do Cloud KMS criptografam dados que são armazenados e replicados nos locais do plano de controle e do ambiente de execução. A Apigee usa essas entidades para criptografar dados de aplicativos, como KVMs, cache e chaves secretas do cliente, que são armazenados no banco de dados. Para mais informações, consulte Sobre as chaves de criptografia da Apigee.
-
Crie um keyring e uma chave de criptografia do banco de dados do ambiente de execução.
-
Defina uma variável de ambiente para o local do keyring e da chave de criptografia do banco de dados do ambiente de execução. Isso ajuda a garantir a consistência quando na criação e facilita o acompanhamento na documentação.
O valor é o local físico em que o keyring e a chave de criptografia do banco de dados são armazenados.
Configurações de região única, em que você tem apenas uma instância em uma região: escolha entre os locais regionais do KMS.
Exemplo:
RUNTIMEDBKEY_LOCATION="us-west1"
O valor pode ser o mesmo que $RUNTIME_LOCATION (também uma região), mas não precisa ser. No entanto, isso poderá resultar em uma melhoria no desempenho.
Configurações multirregionais: escolha entre os locais multirregionais compatíveis (como
us
oueurope
) ou locais birregionais.Exemplo:
RUNTIMEDBKEY_LOCATION="us"
Se você tiver uma configuração multirregional nos EUA, recomendamos usar
us
como seu local, se possível. Do contrário, usenam4
. - Defina variáveis de ambiente para keyrings e nomes de chaves de bancos de dados.
O nome do keyring precisa ser exclusivo para sua organização. Se você criar uma segunda ou uma região subsequente, o nome não poderá ser igual ao de outros keyrings.
RUNTIMEDB_KEY_RING_NAME=
YOUR_DB_KEY_RING_NAME RUNTIMEDB_KEY_NAME=
YOUR_DB_KEY_NAME - (Opcional) Verifique seu trabalho incluindo os valores que você acabou de definir. Quando quiser usar uma variável nos comandos, lembre-se de colocar o cifrão ($) antes do nome dela.
echo $RUNTIMEDBKEY_LOCATION
echo $RUNTIMEDB_KEY_RING_NAME
echo $RUNTIMEDB_KEY_NAME
- Crie um novo keyring:
gcloud kms keyrings create $RUNTIMEDB_KEY_RING_NAME \ --location $RUNTIMEDBKEY_LOCATION --project $PROJECT_ID
O local da chave de criptografia do banco de dados da Apigee é compatível com todos os locais do Cloud KMS compatíveis com o Cloud HSM e o Cloud EKM.
Crie uma chave
gcloud kms keys create $RUNTIMEDB_KEY_NAME \ --keyring $RUNTIMEDB_KEY_RING_NAME \ --location $RUNTIMEDBKEY_LOCATION \ --purpose "encryption" \ --project $PROJECT_ID
Esse comando cria a chave e a adiciona ao keyring.
Consiga o ID da chave:
gcloud kms keys list \ --location=$RUNTIMEDBKEY_LOCATION \ --keyring=$RUNTIMEDB_KEY_RING_NAME \ --project=$PROJECT_ID
O ID da chave tem a seguinte sintaxe (semelhante a um caminho de arquivo):
projects/
PROJECT_ID /locations/RUNTIMEDBKEY_LOCATION /keyRings/RUNTIMEDB_KEY_RING_NAME /cryptoKeys/RUNTIMEDB_KEY_NAME Coloque o ID da chave em uma variável de ambiente. Você vai usar essa variável em um comando futuro:
RUNTIMEDB_KEY_ID=
YOUR_RUNTIMEDB_KEY_ID Conceda acesso ao agente de serviço da Apigee para usar a nova chave:
gcloud kms keys add-iam-policy-binding $RUNTIMEDB_KEY_NAME \ --location $RUNTIMEDBKEY_LOCATION \ --keyring $RUNTIMEDB_KEY_RING_NAME \ --member serviceAccount:service-$PROJECT_NUMBER@gcp-sa-apigee.iam.gserviceaccount.com \ --role roles/cloudkms.cryptoKeyEncrypterDecrypter \ --project $PROJECT_ID
Esse comando vincula a chave ao agente de serviços da Apigee.
Após a conclusão dessa solicitação,
gcloud
responde com algo semelhante ao seguinte:Updated IAM policy for key [runtime]. bindings: - members: - serviceAccount:service-1234567890@gcp-sa-apigee.iam.gserviceaccount.com role: roles/cloudkms.cryptoKeyEncrypterDecrypter etag: BwWqgEuCuwk= version: 1
Se você receber um erro como este:
INVALID_ARGUMENT: Role roles/cloudkms.cryptokms.cryptoKeyEncrypterDecrypter is not supported for this resource.
Verifique se você usou o número do projeto e não o nome do projeto no endereço de e-mail da conta de serviço.
-
- Se você estiver usando a residência de dados, crie um keyring e uma chave de criptografia de plano de controle. Se você não estiver usando a residência de dados, avance para a etapa 3.
- Defina uma variável de ambiente para o local do keyring e da chave de criptografia do banco de dados do plano de controle:
CONTROL_PLANE_LOCATION=
YOUR_CONTROL_PLANE_LOCATION CONSUMER_DATA_REGION=
YOUR_CONSUMER_DATA_REGION Em que:
- CONTROL_PLANE_LOCATION é o local físico em que os dados do plano de controle da Apigee serão armazenados. Para ver uma lista de locais disponíveis do plano de controle, consulte Locais da Apigee.
- CONSUMER_DATA_REGION é uma sub-região da região do plano de controle. Você precisa especificar CONTROL_PLANE_LOCATION e CONSUMER_DATA_REGION. Para ver uma lista de regiões de dados do consumidor disponíveis, consulte Locais da Apigee.
Defina variáveis de ambiente para os nomes de chaves e keyrings do banco de dados do plano de controle.
O nome do keyring precisa ser exclusivo para sua organização.
CONTROL_PLANE_KEY_RING_NAME=
YOUR_CONTROL_PLANE_KEY_RING_NAME CONTROL_PLANE_KEY_NAME=
YOUR_CONTROL_PLANE_KEY_NAME CONSUMER_DATA_KEY_RING_NAME=
YOUR_CONSUMER_DATA_KEY_RING_NAME CONSUMER_DATA_KEY_NAME=
YOUR_CONSUMER_DATA_REGION_KEY_NAME Em que:
- CONTROL_PLANE_KEY_RING_NAME é o nome do keyring que você usará para identificar seu keyring de criptografia do plano de controle.
- CONTROL_PLANE_KEY_NAME é o nome da chave que você usará para identificar sua chave de criptografia do plano de controle.
- CONSUMER_DATA_KEY_RING_NAME é o nome do keyring que você usará para identificar seu keyring de criptografia da região de dados do consumidor.
- CONSUMER_DATA_KEY_NAME é o nome da chave que você usará para identificar sua chave de criptografia da região de dados do consumidor.
- Crie um novo keyring:
gcloud kms keyrings create $CONTROL_PLANE_KEY_RING_NAME \ --location $CONTROL_PLANE_LOCATION \ --project $PROJECT_ID
gcloud kms keyrings create $CONSUMER_DATA_KEY_RING_NAME \ --location $CONSUMER_DATA_REGION \ --project $PROJECT_ID
- Crie uma chave
gcloud kms keys create $CONTROL_PLANE_KEY_NAME \ --keyring $CONTROL_PLANE_KEY_RING_NAME \ --location $CONTROL_PLANE_LOCATION \ --purpose "encryption" \ --project $PROJECT_ID
gcloud kms keys create $CONSUMER_DATA_KEY_NAME \ --keyring $CONSUMER_DATA_KEY_RING_NAME \ --location $CONSUMER_DATA_REGION \ --purpose "encryption" \ --project $PROJECT_ID
Esse comando cria a chave e a adiciona ao keyring.
Consiga o ID da chave:
gcloud kms keys list \ --location=$CONTROL_PLANE_LOCATION \ --keyring=$CONTROL_PLANE_KEY_RING_NAME \ --project=$PROJECT_ID
gcloud kms keys list \ --location=$CONSUMER_DATA_REGION \ --keyring=$CONSUMER_DATA_KEY_RING_NAME \ --project=$PROJECT_ID
O ID da chave tem a seguinte sintaxe (semelhante a um caminho de arquivo):
projects/
PROJECT_ID /locations/CONTROL_PLANE_LOCATION /keyRings/CONTROL_PLANE_KEY_RING_NAME /cryptoKeys/CONTROL_PLANE_KEY_NAME projects/
PROJECT_ID /locations/CONSUMER_DATA_REGION /keyRings/CONSUMER_DATA_KEY_RING_NAME /cryptoKeys/CONSUMER_DATA_KEY_NAME - Coloque o ID da chave em uma variável de ambiente. Você vai usar essa variável em um comando futuro:
CONTROL_PLANE_KEY_ID=
YOUR_CONTROL_PLANE_KEY_ID CONSUMER_DATA_KEY_ID=
YOUR_CONSUMER_DATA_KEY_ID - Conceda acesso ao agente de serviço da Apigee para usar a nova chave:
gcloud kms keys add-iam-policy-binding $CONTROL_PLANE_KEY_NAME \ --location $CONTROL_PLANE_LOCATION \ --keyring $CONTROL_PLANE_KEY_RING_NAME \ --member "serviceAccount:service-$PROJECT_NUMBER@gcp-sa-apigee.iam.gserviceaccount.com" \ --role roles/cloudkms.cryptoKeyEncrypterDecrypter \ --project $PROJECT_ID
gcloud kms keys add-iam-policy-binding $CONSUMER_DATA_KEY_NAME \ --location $CONSUMER_DATA_REGION \ --keyring $CONSUMER_DATA_KEY_RING_NAME \ --member "serviceAccount:service-$PROJECT_NUMBER@gcp-sa-apigee.iam.gserviceaccount.com" \ --role roles/cloudkms.cryptoKeyEncrypterDecrypter \ --project $PROJECT_ID
Esse comando vincula a chave ao agente de serviços da Apigee. Após a conclusão dessa solicitação, a gcloud responde com algo semelhante a isto:
Updated IAM policy for key [runtime]. bindings: - members: - serviceAccount:service-1234567890@gcp-sa-apigee.iam.gserviceaccount.com role: roles/cloudkms.cryptoKeyEncrypterDecrypter etag: BwWqgEuCuwk= version: 1
Se você receber um erro como este:
INVALID_ARGUMENT: Role roles/cloudkms.cryptokms.cryptoKeyEncrypterDecrypter is not supported for this resource.
Verifique se você usou o número do projeto e não o nome do projeto no endereço de e-mail da conta de serviço.
-
Crie a organização enviando a seguinte solicitação à API Organizations da Apigee:
curl "https://apigee.googleapis.com/v1/organizations?parent=projects/$PROJECT_ID" \ -H "Authorization: Bearer $AUTH" \ -X POST \ -H "Content-Type:application/json" \ -d '{ "name":"'"$PROJECT_ID"'", "analyticsRegion":"'"$ANALYTICS_REGION"'", "runtimeType":"CLOUD", "billingType":"'"$BILLING_TYPE"'", "authorizedNetwork":"'"$NETWORK_NAME"'", "runtimeDatabaseEncryptionKeyName":"'"$RUNTIMEDB_KEY_ID"'" }'
Em que:
-d
define o payload de dados para a solicitação. Esse payload precisa incluir o seguinte:name
: identifica a nova organização. Ele precisa ter o mesmo nome do ID do projeto.analyticsRegion
: especifica o local físico em que os dados de análise serão armazenados.runtimeType
: Defina esse valor comoCLOUD
.billingType
: especifica o tipo de faturamento da organização criado.authorizedNetwork
: identifica a rede de peering especificada em Configurar rede de serviço.runtimeDatabaseEncryptionKeyName
: o ID da chave de criptografia do aplicativo que você criou na etapa anterior. Lembre-se de que o ID é estruturado como um caminho de arquivo. Por exemplo:projects/my-project/locations/us-west1/keyRings/my-key-ring/cryptoKeys/my-key
Crie uma organização usando a API:
curl "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations?parent=projects/$PROJECT_ID" \ -H "Authorization: Bearer $AUTH" \ -X POST \ -H "Content-Type:application/json" \ -d '{ "name":"'"$PROJECT_ID"'", "runtimeType":"CLOUD", "billingType":"'"$BILLING_TYPE"'", "controlPlaneEncryptionKeyName":"'"$CONTROL_PLANE_KEY_ID"'", "apiConsumerDataLocation":"'"$CONSUMER_DATA_REGION"'", "apiConsumerDataEncryptionKeyName":"'"$CONSUMER_DATA_KEY_ID"'", "authorizedNetwork":"'"$NETWORK_NAME"'", "runtimeDatabaseEncryptionKeyName":"'"$RUNTIMEDB_KEY_ID"'" }'
Em que:
-d
define o payload de dados para a solicitação. Esse payload precisa incluir os seguintes dados:name
: identifica a nova organização. Ele precisa ter o mesmo nome do ID do projeto.runtimeType
: Defina esse valor comoCLOUD
.billingType
: especifica o tipo de faturamento da organização criado.controlPlaneEncryptionKeyName
: é o ID da chave do plano de controle.apiConsumerDataLocation
: também é preciso especificar uma sub-região para uso de recursos internos. Consulte Regiões de residência de dados para conferir os valores aceitos.apiConsumerDataEncryptionKeyName
: é o ID da chave da região de dados do consumidor.authorizedNetwork
: identifica a rede de peering especificada em Configurar rede de serviço.runtimeDatabaseEncryptionKeyName
: o ID da chave de criptografia do aplicativo que você criou na etapa anterior. O ID é estruturado como um caminho de arquivo. Por exemplo:
projects/my-project/locations/us-west1/keyRings/my-key-ring/cryptoKeys/my-key
Depois que você executar esse comando, a Apigee iniciará uma operação de longa duração, que pode levar alguns minutos para ser concluída.
Se você receber um erro, verifique se colocou os valores das variáveis entre aspas no payload de dados. Coloque a variável $PROJECT_ID entre aspas duplas e simples, conforme mostrado no exemplo a seguir:
"'"$PROJECT_ID"'"
Se você usar strings simples (não variáveis de ambiente) como valores de solicitação, coloque-as entre aspas duplas dentro da string de payload entre aspas simples, como no exemplo abaixo:
'{ "name":"my-gcp-project", ... }'
- Aguarde alguns minutos.
- Para verificar o status da solicitação de criação, envie uma solicitação
GET
para a API List organizations da Apigee, como no exemplo abaixo:curl -H "Authorization: Bearer $AUTH" "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID"
curl -H "Authorization: Bearer $AUTH" "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$PROJECT_ID"
Se você vir essa resposta, a criação da organização ainda não foi concluída:
{ "error": { "code": 403, "message": "Permission denied on resource \"organizations/apigee-docs-m\" (or it may not exist)", "status": "PERMISSION_DENIED" } }
Se a Apigee tiver criado uma nova organização, você receberá uma resposta semelhante a esta:
{ "name": "my-cloud-project", "createdAt": "1592586495539", "lastModifiedAt": "1592586495539", "environments": [], "properties": { "property": [ { "name": "features.hybrid.enabled", "value": "true" }, { "name": "features.mart.connect.enabled", "value": "true" } ] }, "analyticsRegion": "us-west1", "runtimeType": "CLOUD", "subscriptionType": "PAID", "caCertificate": "
YOUR_CERTIFICATE ", "authorizedNetwork": "my-network", "projectId": "my-cloud-project" }{ "name": "my-cloud-project", "createdAt": "1681412783749", "lastModifiedAt": "1681412783749", "environments": [ "test-env" ], "properties": { "property": [ { "name": "features.mart.connect.enabled", "value": "true" }, { "name": "features.hybrid.enabled", "value": "true" } ] }, "authorizedNetwork": "default", "runtimeType": "CLOUD", "subscriptionType": "PAID", "caCertificate": "
YOUR_CERTIFICATE ", "runtimeDatabaseEncryptionKeyName": "projects/my-cloud-project/locations/us/keyRings/my-key-ring/cryptoKeys/my-key-name", "projectId": "my-cloud-project", "state": "ACTIVE", "billingType": "PAYG", "addonsConfig": { "advancedApiOpsConfig": {}, "integrationConfig": {}, "monetizationConfig": {}, "connectorsPlatformConfig": {} }, "apiConsumerDataEncryptionKeyName": "projects/my-cloud-project/locations/us-central1/keyRings/my-key-ring/cryptoKeys/my-key-name", "controlPlaneEncryptionKeyName": "projects/my-cloud-project/locations/us/keyRings/my-key-ring/cryptoKeys/my-key-name", "apiConsumerDataLocation": "us-central1", "apigeeProjectId": "i0c2a37e80f9850ab-tp" }Se a Apigee retornar uma resposta de erro HTTP, consulte Como criar uma organização da Apigee.
Siga as etapas a seguir para criar um keyring e uma chave de criptografia de plano de controle.
Consulte também: Solução de problemas de CMEK.