Implementar e gerir arquivos num ambiente Apigee

Esta página aplica-se ao Apigee e ao Apigee Hybrid.

Veja a documentação do Apigee Edge.

Desenvolva e teste os seus proxies de API programáveis com o Apigee no VS Code. Em seguida, implemente um arquivo do ambiente de configuração do proxy de API no ambiente de teste de integração e de produção do Apigee, conforme descrito nas secções seguintes.

Ativar a implementação de arquivos num ambiente do Apigee

Antes de poder implementar um arquivo, tem de ativar a implementação de arquivos no seu ambiente do Apigee.

Ative a implementação de arquivos conforme descrito nas secções seguintes.

Apigee na Cloud Console

  1. Na Google Cloud consola, aceda à página Ambientes.

    Aceder a Ambientes

  2. Clique em + Criar ambiente.
  3. Selecione Arquivar em Tipo de implementação.

    Caixa de diálogo Novo ambiente.
  4. Clique em Criar.

IU do Apigee Classic

Para ativar a implementação de arquivos no seu ambiente do Apigee, quando criar um ambiente do Apigee (fora do assistente de aprovisionamento), selecione Arquivo em Tipo de implementação.

Caixa de diálogo Novo ambiente.

API Apigee

Para ativar a implementação de arquivos quando cria um ambiente através da API, defina deploymentType como ARCHIVE no corpo do pedido.

Por exemplo:

curl "https://apigee.googleapis.com/v1/organizations/$ORG/environments" \
   -X POST \
   -H "Authorization: Bearer $TOKEN" \
   -H "Content-type: application/json" \
   -d
   '{
      "name": "integration-test",
      "description": "Integration test environment",
      "displayName" : "Integration test",
      "deploymentType" : "ARCHIVE"
   }'

Onde $TOKEN está definido como a sua chave de acesso OAuth 2.0, conforme descrito em Obter uma chave de acesso OAuth 2.0. Para informações sobre as opções de curl usadas neste exemplo, consulte a secção Usar o curl. Para uma descrição das variáveis de ambiente que pode usar, consulte o artigo Definir variáveis de ambiente para pedidos de API Apigee.

Segue-se um exemplo da resposta:

{
  "name": "organizations/$ORG/operations/11b1ad1c-2371-473d-bcd4-f621f8d98ef7",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.apigee.v1.OperationMetadata",
    "operationType": "INSERT",
    "targetResourceName": "organizations/$ORG/environments/integration-test",
    "state": "IN_PROGRESS"
  }
}

Pode verificar o estado da operação. Por exemplo:

curl https://apigee.googleapis.com/v1/organizations/$ORG/operations/11b1ad1c-2371-473d-bcd4-f621f8d98ef7 /
   -H "Authorization: Bearer $TOKEN"

Segue-se um exemplo da resposta. Tenha em atenção que o estado da operação é FINISHED e o estado do ambiente está definido como ACTIVE.

{
  "name": "organizations/$ORG/operations/11b1ad1c-2371-473d-bcd4-f621f8d98ef7",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.apigee.v1.OperationMetadata",
    "operationType": "INSERT",
    "targetResourceName": "organizations/$ORG/environments/integration-test",
    "state": "FINISHED"
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.apigee.v1.Environment",
    "name": "integration-test",
    "description": "Integration test environment",
    "createdAt": "1615553880084",
    "lastModifiedAt": "1615553881911",
    "displayName": "Integration test",
    "state": "ACTIVE",
    "deploymentType": "ARCHIVE"
  }
}

Para mais informações sobre a API, consulte o artigo API Create environments.

Implementar um arquivo num ambiente do Apigee

Para implementar um arquivo num ambiente do Apigee, use o seguinte comando gcloud:

gcloud beta apigee archives deploy \
    --environment=$ENV \
    [--organization=$ORG] \
    [--source=$SOURCE] \
    [--labels $KEY=$VALUE[,$KEY2=$VALUE2,$KEY3=$VALUE3,...]]

Tem de especificar o ambiente do Apigee no qual quer implementar o arquivo através da flag --environment. O ambiente do Apigee tem de estar ativado para implementações de arquivo. Para mais informações, consulte o artigo gcloud beta apigee archives deploy.

Por predefinição, o arquivo é implementado:

  • À organização associada ao projeto ativo atual configurado para gcloud.

    Para ver a configuração atual do gcloud, execute gcloud config list. Para especificar a organização, use a flag --organization.

  • A partir do diretório de trabalho atual.
    Se o diretório raiz do arquivo estiver numa localização diferente do diretório de trabalho atual, use a flag --source para especificar a localização do diretório raiz do arquivo.src/main/apigee Veja também Compreender a estrutura de um espaço de trabalho do Apigee.

Opcionalmente, pode adicionar até 64 pares de chave/valor de etiqueta personalizada a uma implementação de arquivo usando a flag --labels. Por exemplo, pode querer etiquetar um arquivo com um número de compilação. As etiquetas são apresentadas quando lista as implementações de arquivo. Os valores-chave têm de cumprir as seguintes diretrizes:

  • Comprimento máximo de 63 carateres
  • Tamanho máximo de 128 bytes
  • Com codificação UTF-8
  • Estar em conformidade com a seguinte expressão regular compatível com Perl (PCRE): [\p{Ll}\p{Lo}][\p{Ll}\p{Lo}\p{N}_-]{0,62}

Nos bastidores, o comando gcloud executa os seguintes passos quando implementa no Apigee no Google Cloud:

  1. Cria um ficheiro ZIP do seu diretório do espaço de trabalho do src/main/apigee Apigee. Para mais informações, consulte o artigo Compreender a estrutura de um espaço de trabalho do Apigee.
  2. Implementa o arquivo no Apigee no Google Cloud, da seguinte forma:
    1. Gera um URL assinado para o contentor do Google Cloud Storage no projeto associado à organização do Apigee atual através da API generateUploadUrl.
    2. Carrega o ficheiro ZIP do arquivo para o contentor do Cloud Storage através do URL assinado.
    3. Implementa o arquivo atualmente preparado no contentor do Cloud Storage no Apigee no Google Cloud. através da API Archive Deployments.

Exemplos de pedidos

O exemplo seguinte cria um arquivo ZIP de src/main/apigee no diretório atual e implementa-o no ambiente do Apigee especificado:

gcloud beta apigee archives deploy --environment=$ENV

O exemplo seguinte mostra como pode especificar uma organização que não está associada ao projeto ativo atual configurado para gcloud:

gcloud beta apigee archives deploy --environment=$ENV --organization=$ORG

O exemplo seguinte cria um arquivo ZIP do diretório src/main/apigee em myarchive e implementa-o no ambiente do Apigee especificado:

gcloud beta apigee archives deploy --environment=$ENV --source=/myarchive

O exemplo seguinte adiciona as etiquetas status e build_id à implementação do arquivo:

gcloud beta apigee archives deploy --environment=$ENV --labels=status=released,build=210315

Exemplo de resposta

Segue-se um exemplo da resposta:

Using Apigee organization 'myorg'
Waiting for operation [b64c2665-b5ac-43cc-9e2d-232e8895c2ed] to complete...done.

Verificar o estado da implementação do arquivo

Para verificar o estado da implementação do arquivo, use o comando gcloud alpha apigee operations.

O exemplo seguinte mostra que o estado de implementação do arquivo para a operação com o ID de revisão 439fa3f7-6aa4-42ad-8b12-3ca912c75d5c é IN_PROGRESS.

gcloud alpha apigee operations describe b64c2665-b5ac-43cc-9e2d-232e8895c2ed

Segue-se um exemplo da resposta. Tenha em atenção que state está definido como IN_PROGRESS.

Using Apigee organization 'myorg'
done: true
metadata:
  '@type': type.googleapis.com/google.cloud.apigee.v1.OperationMetadata
  operationType: INSERT
  state: IN_PROGRESS
  targetResourceName: uri
name: organizations/myorg/operations/b64c2665-b5ac-43cc-9e2d-232e8895c2ed
organization: myorg
response:
  '@type': type.googleapis.com/google.cloud.apigee.v1.CanaryEvaluation
  control: 1-5-0-20210319-071117-ghq74
  endTime: '2021-03-20T06:15:44.329363950Z'
  metricLabels:
    env: test
    location: us-central1
  name: uri
  startTime: '2021-03-20T06:14:44.306534584Z'
  treatment: 1-5-0-20210319-190954-if0wk
  verdict: NONE
uuid: b64c2665-b5ac-43cc-9e2d-232e8895c2ed

Após a conclusão da operação, o valor state é definido como FINISHED.

Apresentar todas as implementações de arquivo num ambiente

Apresenta todas as implementações de arquivo num ambiente, conforme descrito nas secções seguintes.

gcloud

Para apresentar uma lista de todas as implementações de arquivos no Apigee no Google Cloud, use o seguinte comando gcloud:

gcloud beta apigee archives list --environment=$ENV

Tem de especificar o ambiente do Apigee no qual quer ver as implementações de arquivo através da flag --environment. O ambiente do Apigee tem de estar a ver detalhes de uma implementação de arquivo. Para mais informações, consulte gcloud beta apigee archives list.

Segue-se um exemplo da resposta:

Using Apigee organization 'myorg'
ARCHIVE ID                        ENVIRONMENT   DEPLOYED AT           LABELS                         OPERATION STATUS
pzfbs8uidbdv224joz                myorg         2021-03-10 11:21:29   status=released,build=210315   Deployed
fb4r8log2gm63r3gtu                myorg         2021-03-05 13:40:30
vrytwbhso558oil53m                myorg         2021-03-03 21:20:53

API Apigee

Para listar as implementações de arquivos num ambiente, envie um pedido GET para a seguinte API: https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/archiveDeployments.

Por exemplo:

curl "https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/archiveDeployments" \
  -H "Authorization: Bearer $TOKEN"

Onde $TOKEN está definido como a sua chave de acesso OAuth 2.0, conforme descrito em Obter uma chave de acesso OAuth 2.0. Para informações sobre as opções de curl usadas neste exemplo, consulte a secção Usar o curl. Para uma descrição das variáveis de ambiente que pode usar, consulte o artigo Definir variáveis de ambiente para pedidos de API Apigee.

Segue-se um exemplo da resposta:

{
  "archiveDeployments": [
    {
      "name": "organizations/myorg/environments/integration-test/archiveDeployments/pzfbs8uidbdv224joz",
      "labels": {
        "status": "released",
        "build": "210315"
      },
      "createdAt": "1615821232451727",
      "updatedAt": "1615821232451727",
      "operation": "organizations/apigee-docs-c/operations/b64c2665-b5ac-43cc-9e2d-232e8895c2ed"
    },
    {
      "name": "organizations/myorg/environments/integration-test/archiveDeployments/fb4r8log2gm63r3gtu",
      "createdAt": "1615819281858447",
      "updatedAt": "1615819281858447",
      "operation": "organizations/apigee-docs-c/operations/71549b9c-4493-41b6-9838-c0ad5b1b3181"
    },
    {
      "name": "organizations/myorg/environments/integration-test/archiveDeployments/vrytwbhso558oil53m",
      "createdAt": "1615578337832207",
      "updatedAt": "1615578337832207",
      "operation": "organizations/apigee-docs-c/operations/a2eb50b5-f276-4de4-96a3-72fac3d4c05e"
    }
  ]
}

Ver detalhes de uma implementação de arquivo

Veja os detalhes de uma implementação de arquivo, conforme descrito nas secções seguintes.

gcloud

Para ver os detalhes de uma implementação de arquivo no Apigee no Google Cloud, use o seguinte comando gcloud:

gcloud beta apigee archives describe $ID --environment=$ENV

Tem de especificar o seguinte:

  • ID da revisão de implementação do arquivo.
  • Ambiente do Apigee no qual quer ver as implementações de arquivo com a flag --environment. O ambiente do Apigee tem de estar ativado para implementações de arquivo.

Para mais informações, consulte o artigo gcloud beta apigee archives describe.

Por exemplo:

gcloud apigee archives describe pzfbs8uidbdv224joz --environment=$ENV

Segue-se um exemplo da resposta:

Using Apigee organization 'myorg'
createdAt: '1615578337832207'
labels:
  status: 'released'
  build: '210315'
name: organizations/myorg/environments/$ENV/archiveDeployments/pzfbs8uidbdv224joz
operation: organizations/myorg/operations/b64c2665-b5ac-43cc-9e2d-232e8895c2ed
operationStatus: Deployed
updatedAt: '1615821232451727'

API Apigee

Para ver os detalhes de uma implementação de arquivo, envie um pedido GET para a seguinte API: https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/archiveDeployments/$ID.

Tem de transmitir o ID da revisão da implementação do arquivo. Para ver a lista de IDs de revisão de implementação de arquivo para um ambiente do Apigee, consulte o artigo Listar todas as implementações de arquivo num ambiente.

Por exemplo:

curl "https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/archiveDeployments/pzfbs8uidbdv224joz" \
  -X GET \
  -H "Authorization: Bearer $TOKEN"

Onde $TOKEN está definido como a sua chave de acesso OAuth 2.0, conforme descrito em Obter uma chave de acesso OAuth 2.0. Para informações sobre as opções de curl usadas neste exemplo, consulte a secção Usar o curl. Para uma descrição das variáveis de ambiente que pode usar, consulte o artigo Definir variáveis de ambiente para pedidos de API Apigee.

Segue-se um exemplo da resposta:

{
  "name": "organizations/myorg/environments/integration-test/archiveDeployments/pzfbs8uidbdv224joz",
  "labels": {
     "status": "released",
     "build": "210315"
  },
  "createdAt": "1615578337832207",
  "updatedAt": "1615821232451727",
  "operation": "organizations/apigee-docs-c/operations/b64c2665-b5ac-43cc-9e2d-232e8895c2ed"
}

Atualizar etiquetas para uma implementação de arquivo

Atualize as etiquetas de uma implementação de arquivo conforme descrito nas secções seguintes.

gcloud

Para atualizar as etiquetas de uma implementação de arquivo no Apigee no Google Cloud, use o seguinte comando gcloud:

gcloud beta apigee archives update [$ID] --environment=$ENV
  [--update-labels=$KEY=$VALUE[,$KEY2=$VALUE2...$KEYn=$VALUEn]],
  [--clear-labels | --remove-labels=$KEY[,$KEY2...$KEYn]]

Tem de especificar o seguinte:

  • ID da revisão de implementação do arquivo
  • Ambiente do Apigee no qual quer ver as implementações de arquivo com a flag --environment. O ambiente do Apigee tem de estar ativado para implementações de arquivo.
  • Uma ou mais das seguintes flags:
    Bandeira Descrição
    --clear-labels Remove todas as etiquetas. Se --update-labels também for especificado, --clear-labels é aplicado primeiro.

    Não pode ser especificado se --remove-labels estiver especificado.

    --remove-labels Remove as etiquetas especificadas. Se --update-labels também for especificado, é aplicado primeiro.

    Não pode ser especificado se --clear-labels estiver especificado.

    --update-labels Atualize as etiquetas. Se existir uma etiqueta, o respetivo valor é modificado. Caso contrário, é criada uma nova etiqueta. Combine com as flags --remove-labels ou --clear-labels para remover um subconjunto ou todas as etiquetas, respetivamente, antes de atualizar as etiquetas.

Para mais informações, consulte o artigo gcloud beta apigee archives update.

Por exemplo:

gcloud apigee archives update pzfbs8uidbdv224joz --environment=$ENV \
  --clear-labels --update-labels=status=released,build=210315,tier=1

Segue-se um exemplo da resposta:

Using Apigee organization `myorg`
createdAt: 2020-04-04T04:04:04.004Z
labels:
  status: released,
  build: 210315,
  tier: 1
name: organizations/apigee-docs-c/environments/dev/archiveDeployments/pzfbs8uidbdv224joz
operation: organizations/apigee-docs-c/operations/bf587121-8b5c-4897-9d8f-9b1ef0cb06ca
updatedAt: '1633450432067431'

API Apigee

Para atualizar as etiquetas de uma implementação de arquivo no Apigee no Google Cloud, emita um pedido PATCH para a seguinte API: https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/archiveDeployments/$ID.

Tem de transmitir o ID da revisão da implementação do arquivo. Para ver a lista de IDs de revisão da implementação de arquivo para um ambiente do Apigee, consulte o artigo Listar todas as implementações de arquivo num ambiente.

Transmita todas as etiquetas que quer adicionar ao arquivo no corpo do pedido. As etiquetas que transmite substituem o conjunto atual de etiquetas, pelo que pode remover etiquetas omitindo-as do corpo do pedido ou remover todas as etiquetas transmitindo uma lista vazia.

Por exemplo:

curl "https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/archiveDeployments/$ID" \
  -X PATCH \
  -H "Authorization: Bearer $TOKEN" \
  -d '{
    "labels": {
      "status" : "released",
      "build" : "210315"
    }
  }'

Onde $TOKEN está definido como a sua chave de acesso OAuth 2.0, conforme descrito em Obter uma chave de acesso OAuth 2.0. Para informações sobre as opções de curl usadas neste exemplo, consulte a secção Usar o curl. Para uma descrição das variáveis de ambiente que pode usar, consulte o artigo Definir variáveis de ambiente para pedidos de API Apigee.

Segue-se um exemplo da resposta:

{
  "name": "organizations/myorg/environments/integration-test/archiveDeployments/pzfbs8uidbdv224joz",
  "labels": {
     "status": "released",
     "build": "210315"
  },
  "createdAt": "1615578337832207",
  "updatedAt": "1615821232451727",
  "operation": "organizations/apigee-docs-c/operations/b64c2665-b5ac-43cc-9e2d-232e8895c2ed"
}

Eliminar um ambiente do Apigee com implementações de arquivo

Para eliminar um ambiente do Apigee com implementações de arquivo:

  1. Numa pasta temporária, crie a seguinte estrutura de diretórios, em que $ENV corresponde ao nome do ambiente que quer eliminar. Por exemplo:
    mkdir -p /$TEMP/archive/src/main/apigee/environments/$ENV
  2. Adicione o ficheiro deployments.json ao diretório. Por exemplo:
    touch /$TEMP/archive/src/main/apigee/environments/$ENV/deployments.json
  3. Atualize o elemento deployments.json para incluir uma matriz proxies vazia, conforme mostrado abaixo.
    {
    "proxies" : []
    }
  4. Altere o diretório (cd) para a pasta $TEMP/archive.
    cd $TEMP/archive
  5. Implemente o arquivo no ambiente do Apigee que quer eliminar.
    gcloud beta apigee archives deploy --environment=$ENV
    
  6. Elimine o ambiente do Apigee.

Eliminar uma revisão de uma implementação de arquivo

Elimine uma revisão de uma implementação de arquivo, conforme descrito na secção seguinte.

gcloud

Para eliminar uma revisão de uma implementação de arquivo no Apigee no Google Cloud, use o seguinte comando gcloud:

gcloud beta apigee archives delete $ID --environment=$ENV

Tem de especificar o seguinte:

  • O ID da revisão que quer eliminar.
  • Ambiente do Apigee no qual quer ver as implementações de arquivo com a flag --environment. O ambiente do Apigee tem de estar ativado para implementações de arquivo.

Por exemplo:

gcloud apigee archives delete fb4r8log2gm63r3gtu --environment=dev

Segue-se um exemplo da resposta:

Archive deployment revision "fb4r8log2gm63r3gtu" deleted

API Apigee

Para eliminar uma revisão de uma implementação de arquivo no Apigee no Google Cloud, emita um pedido DELETE para a seguinte API: https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/archiveDeployments/$ID.

Tem de transmitir o ID da revisão da implementação do arquivo que quer eliminar. Para ver a lista de IDs de revisões de implementações de arquivos para um ambiente, consulte o artigo Listar todas as implementações de arquivos num ambiente.

Por exemplo:

curl "https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/archiveDeployments/$ID" \
  -X DELETE \
  -H "Authorization: Bearer $TOKEN" \

Onde $TOKEN está definido como a sua chave de acesso OAuth 2.0, conforme descrito em Obter uma chave de acesso OAuth 2.0. Para informações sobre as opções de curl usadas neste exemplo, consulte a secção Usar o curl. Para uma descrição das variáveis de ambiente que pode usar, consulte o artigo Definir variáveis de ambiente para pedidos de API Apigee.

Segue-se um exemplo da resposta:

{}