Como implantar e gerenciar arquivos em um ambiente da Apigee

Esta página se aplica à Apigee e à Apigee híbrida.

Confira a documentação da Apigee Edge.

Desenvolva e teste seus proxies de API programáveis usando a Apigee no VS Code. Em seguida, implante um arquivo do ambiente de configuração de proxy de API no ambiente de produção e teste de integração da Apigee, conforme descrito nas seções a seguir.

Como ativar a implantação de arquivos em um ambiente da Apigee

Antes de implantar um arquivo, é preciso ativá-lo no ambiente da Apigee.

Ative a implantação de arquivos conforme descrito nas seções a seguir.

IU da Apigee

Para ativar a implantação de arquivos no seu ambiente da Apigee ao criar um ambiente da Apigee (fora do assistente de provisionamento), selecione Arquivo em "Tipo de implantação".

Caixa de diálogo "Novo ambiente"

API Apigee

Para ativar a implantação de arquivos ao criar um ambiente usando a API, defina deploymentType como ARCHIVE no corpo da solicitação.

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"
   }'

Em que $TOKEN está definido como seu token de acesso OAuth 2.0, conforme descrito em Como receber um token de acesso OAuth 2.0. Para informações sobre as opções de curl usadas neste exemplo, consulte Como usar curl. Para uma descrição das variáveis de ambiente usadas, consulte Como definir variáveis de ambiente para solicitações de API da Apigee.

Veja a seguir um exemplo de 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"
  }
}

É possível verificar o status da operação. Exemplo:

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

Veja a seguir um exemplo de resposta. Observe que o estado da operação é FINISHED e o estado do ambiente é 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 Criar API de ambientes.

Como implantar um arquivo em um ambiente da Apigee

Para implantar um arquivo em um ambiente da Apigee, use o seguinte comando gcloud:

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

Especifique o ambiente da Apigee em que você quer implantar o arquivo usando a sinalização --environment. O ambiente da Apigee precisa estar ativado para implantações de arquivo. Para mais informações, consulte gcloud beta apigeearchives deploy.

Por padrão, o arquivo é implantado:

  • Para a organização associada ao projeto ativo no momento configurado para gcloud.

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

  • No diretório de trabalho atual.
    Se o diretório raiz src/main/apigee do arquivo estiver em um local diferente do diretório de trabalho atual, use a sinalização --source para especificar o local do diretório raiz do arquivo para criar um anexo da VLAN de monitoramento. Consulte também Noções básicas sobre a estrutura de um espaço de trabalho da Apigee.

Opcionalmente, é possível adicionar até 64 pares de chave-valor de rótulo personalizado a uma implantação de arquivo usando a sinalização --labels. Por exemplo, talvez você queira rotular um arquivo com um número de versão. Os rótulos serão exibidos quando você listar implantações de arquivo. As chaves-valor precisam seguir as seguintes diretrizes:

  • Tamanho máximo de 63 caracteres.
  • Tamanho máximo de 128 bytes.
  • Com codificação UTF-8
  • Siga esta 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 as seguintes etapas ao implantar na Apigee no Google Cloud:

  1. Cria um arquivo ZIP do diretório do espaço de trabalho do Apigee src/main/apigee. Para mais informações, consulte Noções básicas sobre a estrutura de um espaço de trabalho da Apigee.
  2. Implanta o arquivo na Apigee no Google Cloud, da seguinte maneira:
    1. Gera um URL assinado para o bucket do Google Cloud Storage no projeto associado à organização da Apigee atual usando a API generateUploadUrl.
    2. Faz o upload do arquivo ZIP para o bucket do Cloud Storage usando o URL assinado.
    3. Implanta o arquivo atualmente preparado no bucket do Cloud Storage para a Apigee no Google Cloud. usando a API Archive Deployments.

Exemplos de solicitação

O exemplo a seguir cria um arquivo ZIP de src/main/apigee no diretório atual e o implanta no ambiente da Apigee especificado:

gcloud beta apigee archives deploy --environment=$ENV

O exemplo a seguir mostra como é possível especificar uma organização não associada ao projeto ativo atual configurado para o gcloud:

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

O exemplo a seguir cria um arquivo ZIP do diretório src/main/apigee em myarchive e o implanta no ambiente da Apigee especificado:

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

O exemplo a seguir adiciona os rótulos status e build_id à implantação de arquivo:

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

Exemplo de resposta

Veja a seguir um exemplo de resposta:

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

Como verificar o status da implantação do arquivo

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

O exemplo a seguir mostra o status de implantação do arquivo da operação com o código de revisão 439fa3f7-6aa4-42ad-8b12-3ca912c75d5c é IN_PROGRESS.

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

Veja a seguir um exemplo de resposta. 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

Depois que a operação for concluída, state será definido como FINISHED.

Como listar todas as implantações de arquivo em um ambiente

Liste todas as implantações de arquivos em um ambiente, conforme descrito nas seções a seguir.

gcloud

Para listar todas as implantações de arquivo na Apigee no Google Cloud, use o seguinte comando gcloud:

gcloud beta apigee archives list --environment=$ENV

Especifique o ambiente do Apigee em que você quer visualizar as implantações de arquivo usando a sinalização --environment. O ambiente da Apigee precisa ser Como ver detalhes de uma implantação de arquivo. Para mais informações, consulte lista de arquivos da gcloud beta apigee.

Veja a seguir um exemplo de 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 implantações de arquivo em um ambiente, emita uma solicitação GET para a seguinte API: https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/archiveDeployments.

Exemplo:

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

Em que $TOKEN está definido como seu token de acesso OAuth 2.0, conforme descrito em Como receber um token de acesso OAuth 2.0. Para informações sobre as opções de curl usadas neste exemplo, consulte Como usar curl. Para uma descrição das variáveis de ambiente usadas, consulte Como definir variáveis de ambiente para solicitações de API da Apigee.

Veja a seguir um exemplo de 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"
    }
  ]
}

Como visualizar detalhes de uma implantação de arquivo

Veja os detalhes de uma implantação de arquivo conforme descrito nas seções a seguir.

gcloud

Para visualizar os detalhes de uma implantação de arquivo na Apigee no Google Cloud, use o seguinte comando gcloud:

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

Você deve especificar o seguinte:

  • Código da revisão de implantação do arquivo.
  • Ambiente da Apigee em que você quer visualizar as implantações de arquivo usando a sinalização --environment. O ambiente da Apigee precisa estar ativado para implantações de arquivo.

Para mais informações, consulte gcloud beta apigeearchives describe.

Exemplo:

gcloud apigee archives describe pzfbs8uidbdv224joz --environment=$ENV

Veja a seguir um exemplo de 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 visualizar os detalhes de uma implantação de arquivo, emita uma solicitação GET para a seguinte API: https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/archiveDeployments/$ID.

Você precisa transmitir o código da revisão de implantação do arquivo. Para ver a lista de códigos de revisão de implantação de arquivo para um ambiente da Apigee, consulte Como listar todas as implantações de arquivo em um ambiente.

Exemplo:

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

Em que $TOKEN está definido como seu token de acesso OAuth 2.0, conforme descrito em Como receber um token de acesso OAuth 2.0. Para informações sobre as opções de curl usadas neste exemplo, consulte Como usar curl. Para uma descrição das variáveis de ambiente usadas, consulte Como definir variáveis de ambiente para solicitações de API da Apigee.

Veja a seguir um exemplo de 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"
}

Como atualizar rótulos de uma implantação de arquivo

Atualize os rótulos de uma implantação de arquivo conforme descrito nas seções a seguir.

gcloud

Para atualizar os rótulos de uma implantação de arquivo na 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]]

Você deve especificar o seguinte:

  • ID da revisão de implantação do arquivo
  • Ambiente da Apigee em que você quer visualizar as implantações de arquivo usando a sinalização --environment. O ambiente da Apigee precisa estar ativado para implantações de arquivo.
  • Uma ou mais das seguintes sinalizações:
    Sinalização Descrição
    --clear-labels Remove todos os rótulos. Se --update-labels também for especificado, --clear-labels será aplicado primeiro.

    Não poderá ser especificado se --remove-labels for especificado.

    --remove-labels Remove os rótulos especificados. Se --update-labels também for especificado, será aplicado primeiro.

    Não poderá ser especificado se --clear-labels for especificado.

    --update-labels Atualize os rótulos. Se um rótulo existir, o valor dele será modificado. Caso contrário, um novo rótulo será criado. Combine com as sinalizações --remove-labels ou --clear-labels para remover um subconjunto ou todos os rótulos, respectivamente, antes de atualizar os rótulos.

Para mais informações, consulte atualização de arquivos da Apigee Beta da gcloud.

Exemplo:

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

Veja a seguir um exemplo de 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 os rótulos de uma implantação de arquivo na Apigee no Google Cloud, emita uma solicitação PATCH para a seguinte API: https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/archiveDeployments/$ID.

Você precisa transmitir o código da revisão de implantação do arquivo. Para ver a lista de códigos de revisão de implantação de arquivo para um ambiente da Apigee, consulte Como listar todas as implantações de arquivo em um ambiente.

Transmita todos os rótulos que você quer adicionar ao arquivo no corpo da solicitação. Os rótulos que você passa substituem o conjunto atual de rótulos, para que você remova-os omitindo-os do corpo da solicitação ou remova todos os rótulos passando uma lista vazia.

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"
    }
  }'

Em que $TOKEN está definido como seu token de acesso OAuth 2.0, conforme descrito em Como receber um token de acesso OAuth 2.0. Para informações sobre as opções de curl usadas neste exemplo, consulte Como usar curl. Para uma descrição das variáveis de ambiente usadas, consulte Como definir variáveis de ambiente para solicitações de API da Apigee.

Veja a seguir um exemplo de 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"
}

Como excluir um ambiente do Apigee com implantações de arquivo

Para excluir um ambiente da Apigee com implantações de arquivo:

  1. Em uma pasta temporária, crie a seguinte estrutura de diretórios em que $ENV corresponde ao nome do ambiente que você quer excluir. Exemplo:
    mkdir -p /$TEMP/archive/src/main/apigee/environments/$ENV
  2. Adicione o arquivo deployments.json ao diretório. Exemplo:
    touch /$TEMP/archive/src/main/apigee/environments/$ENV/deployments.json
  3. Atualize o 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

    Se você

  5. Implante o arquivo no ambiente da Apigee que você quer excluir.
    gcloud beta apigee archives deploy --environment=$ENV
    
  6. Exclua o ambiente da Apigee.

Como excluir uma revisão de uma implantação de arquivo

Exclua uma revisão de uma implantação de arquivo conforme descrito na seção a seguir.

gcloud

Para excluir uma revisão de uma implantação de arquivo na Apigee no Google Cloud, use o seguinte comando gcloud

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

Você deve especificar o seguinte:

  • O ID da revisão que você quer excluir.
  • Ambiente da Apigee em que você quer visualizar as implantações de arquivo usando a sinalização --environment. O ambiente da Apigee precisa estar ativado para implantações de arquivo.

Exemplo:

gcloud apigee archives delete fb4r8log2gm63r3gtu --environment=dev

Veja a seguir um exemplo de resposta:

Archive deployment revision "fb4r8log2gm63r3gtu" deleted

API Apigee

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

É necessário transmitir o ID da revisão da implantação de arquivo que você quer excluir. Para ver a lista de códigos de revisão de implantação de arquivo para um ambiente, consulte Como listar todas as implantações de arquivo em um ambiente.

Exemplo:

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

Em que $TOKEN está definido como seu token de acesso OAuth 2.0, conforme descrito em Como receber um token de acesso OAuth 2.0. Para informações sobre as opções de curl usadas neste exemplo, consulte Como usar curl. Para uma descrição das variáveis de ambiente usadas, consulte Como definir variáveis de ambiente para solicitações de API da Apigee.

Veja a seguir um exemplo de resposta:

{}