Implementa y administra archivos en un entorno de Apigee

Esta página se aplica a Apigee y Apigee Hybrid.

Consulta la documentación de Apigee Edge.

Desarrolla y prueba tus proxies de API programables con Apigee en VS Code. Luego, implementa un archivo del entorno de configuración del proxy de API en el entorno de producción y de prueba de integración de Apigee, como se describe en las siguientes secciones.

Habilita la implementación de archivos en un entorno de Apigee

Antes de implementar un archivo, debes habilitar la implementación del archivo en el entorno de Apigee.

Habilita la implementación de archivos como se describe en las siguientes secciones.

IU de Apigee

Para habilitar la implementación de archivos en tu entorno de Apigee, cuando crees un entorno de Apigee (fuera del asistente de aprovisionamiento), selecciona Archivar en Tipo de implementación.

Cuadro de diálogo Entorno nuevo

API de Apigee

Para habilitar la implementación de archivos cuando creas un entorno con la API, configura deploymentType como ARCHIVE en el cuerpo de la solicitud.

Por ejemplo:

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

En el ejemplo anterior, $TOKEN está configurado como tu token de acceso de OAuth 2.0, como se describe en Obtén un token de acceso de OAuth 2.0. Para obtener información sobre las opciones de curl que se usan en este ejemplo, consulta Usa curl. Para obtener una descripción de las variables de entorno utilizadas, consulta Configura variables de entorno para solicitudes a la API de Apigee.

A continuación, se proporciona un ejemplo de la respuesta.

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

Puedes verificar el estado de la operación. Por ejemplo:

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

A continuación, se proporciona un ejemplo de la respuesta. Ten en cuenta que el estado de la operación es FINISHED y el estado del entorno está configurado 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 obtener más información sobre la API, consulta API de creación de entornos.

Implementa un archivo en un entorno de Apigee

Para implementar un archivo en un entorno de Apigee, usa el siguiente comando de gcloud:

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

Debes especificar el entorno de Apigee en el que deseas implementar el archivo mediante la marca --environment. El entorno de Apigee debe estar habilitado para las implementaciones de archivo. Para obtener más información, consulta gcloud beta apigee archives deploy.

De forma predeterminada, el archivo se implementa:

  • A la organización asociada con el proyecto activo actual configurado para gcloud.

    Para ver la configuración actual de gcloud, ejecuta gcloud config list. Para especificar la organización, usa la marca --organization.

  • Desde el directorio de trabajo actual.
    Si el directorio raíz de src/main/apigee del archivo está en una ubicación que no es el directorio de trabajo actual, usa la marca --source para especificar la ubicación del directorio raíz del archivo. También consulta Comprende la estructura de un lugar de trabajo de Apigee.

De manera opcional, puedes agregar hasta 64 pares clave-valor de etiquetas personalizadas a una implementación de archivo con la marca --labels. Por ejemplo, es posible que desees etiquetar un archivo con un número de compilación. Las etiquetas se mostrarán cuando enumeras las implementaciones de archivo. Los valores clave deben cumplir con los siguientes lineamientos:

  • Longitud máxima de 63 caracteres
  • El tamaño máximo es de 128 bytes.
  • Codificado en UTF-8
  • Se ajusta a la siguiente expresión regular compatible con Perl (PCRE): [\p{Ll}\p{Lo}][\p{Ll}\p{Lo}\p{N}_-]{0,62}

En segundo plano, el comando gcloud realiza los siguientes pasos cuando se implementa en Apigee en Google Cloud:

  1. Crea un archivo ZIP del directorio de tu lugar de trabajo de Apigee de src/main/apigee. Para obtener más información, consulta Comprende la estructura de un lugar de trabajo de Apigee.
  2. Implementa el archivo en Apigee en Google Cloud de la siguiente manera:
    1. Genera una URL firmada para el bucket de Google Cloud Storage en el proyecto asociado con la organización de Apigee actual mediante la API de generateUploadUrl.
    2. Sube el archivo ZIP del bucket de Cloud Storage con la URL firmada.
    3. Implementa el archivo que se encuentra en etapa intermedia en el bucket de Cloud Storage en Apigee en Google Cloud. Usa la API de implementaciones de archivos.

Solicitudes de ejemplo

En el ejemplo siguiente, se crea un archivo ZIP de src/main/apigee en el directorio actual y se implementa en el entorno de Apigee especificado:

gcloud beta apigee archives deploy --environment=$ENV

En el siguiente ejemplo, se muestra cómo puedes especificar una organización que no esté asociada con el proyecto activo actual configurado para gcloud:

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

En el siguiente ejemplo, se crea un archivo ZIP del directorio src/main/apigee en myarchive y se implementa en el entorno de Apigee especificado:

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

En el siguiente ejemplo, se agregan las etiquetas status y build_id a la implementación del archivo:

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

Respuesta de ejemplo

A continuación, se proporciona un ejemplo de la respuesta:

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

Verifica el estado de implementación del archivo

Para verificar el estado de implementación del archivo, usa el comando gcloud alpha apigee operations.

En el siguiente ejemplo, se muestra el estado de implementación del archivo para la operación con el ID de revisión 439fa3f7-6aa4-42ad-8b12-3ca912c75d5c es IN_PROGRESS.

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

A continuación, se proporciona un ejemplo de la respuesta. Ten en cuenta que state se configura 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

Una vez que se completa la operación, state se establece en FINISHED.

Enumera todas las implementaciones de archivo en un entorno

Enumera todas las implementaciones de archivos en un entorno como se describe en las siguientes secciones.

gcloud

Para enumerar todas las implementaciones de archivos en Apigee en Google Cloud, usa el siguiente comando de gcloud:

gcloud beta apigee archives list --environment=$ENV

Debes especificar el entorno de Apigee en el que deseas ver las implementaciones de archivo mediante la marca --environment. El entorno de Apigee debe ver detalles de una implementación de archivo. Para obtener más información, consulta la gcloud beta apigee archives list.

A continuación, se proporciona un ejemplo de la respuesta.

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 de Apigee

Para enumerar las implementaciones de archivo en un entorno, envía una solicitud GET a la siguiente API: https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/archiveDeployments.

Por ejemplo:

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

En el ejemplo anterior, $TOKEN está configurado como tu token de acceso de OAuth 2.0, como se describe en Obtén un token de acceso de OAuth 2.0. Para obtener información sobre las opciones de curl que se usan en este ejemplo, consulta Usa curl. Para obtener una descripción de las variables de entorno utilizadas, consulta Configura variables de entorno para solicitudes a la API de Apigee.

A continuación, se proporciona un ejemplo de la respuesta.

{
  "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"
    }
  ]
}

Visualiza los detalles de una implementación de archivo

Consulta los detalles de una implementación de archivo, como se describe en las siguientes secciones.

gcloud

Para ver los detalles de una implementación de archivos en Apigee en Google Cloud, usa el siguiente comando de gcloud:

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

Debes especificar lo siguiente:

  • ID de la revisión de la implementación del archivo.
  • Entorno de Apigee en el que deseas ver las implementaciones de archivo con la marca --environment. El entorno de Apigee debe estar habilitado para las implementaciones de archivo.

Para obtener más información, consulta gcloud beta apigee archives describe.

Por ejemplo:

gcloud apigee archives describe pzfbs8uidbdv224joz --environment=$ENV

A continuación, se proporciona un ejemplo de la respuesta.

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 de Apigee

Para ver los detalles de una implementación de archivo, envía una solicitud GET a la siguiente API: https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/archiveDeployments/$ID.

Debes pasar el ID de la revisión de la implementación del archivo. Para ver la lista de ID de revisión de la implementación de archivos para un entorno de Apigee, consulta Enumera todas las implementaciones de archivos en un entorno.

Por ejemplo:

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

En el ejemplo anterior, $TOKEN está configurado como tu token de acceso de OAuth 2.0, como se describe en Obtén un token de acceso de OAuth 2.0. Para obtener información sobre las opciones de curl que se usan en este ejemplo, consulta Usa curl. Para obtener una descripción de las variables de entorno utilizadas, consulta Configura variables de entorno para solicitudes a la API de Apigee.

A continuación, se proporciona un ejemplo de la respuesta.

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

Actualiza etiquetas para una implementación de archivo

Actualiza las etiquetas de una implementación de archivo como se describe en las siguientes secciones.

gcloud

Para actualizar las etiquetas de una implementación de archivo en Apigee en Google Cloud, usa el siguiente comando de gcloud:

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

Debes especificar lo siguiente:

  • ID de la revisión de la implementación del archivo
  • Entorno de Apigee en el que deseas ver las implementaciones de archivo con la marca --environment. El entorno de Apigee debe estar habilitado para las implementaciones de archivo.
  • Una o más de las siguientes marcas:
    Flag Descripción
    --clear-labels Quita todas las etiquetas. Si también se especifica --update-labels, primero se aplica --clear-labels.

    No se puede especificar si se indica --remove-labels.

    --remove-labels Quita las etiquetas especificadas. Si también se especifica --update-labels, primero se aplica.

    No se puede especificar si se indica --clear-labels.

    --update-labels Actualiza las etiquetas. Si una etiqueta existe, su valor se modifica; de lo contrario, se crea una nueva. Combina las marcas --remove-labels o --clear-labels para quitar un subconjunto o todas las etiquetas, respectivamente, antes de actualizar las etiquetas.

Para obtener más información, consulta gcloud beta apigee archives update.

Por ejemplo:

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

A continuación, se proporciona un ejemplo de la respuesta.

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 de Apigee

A fin de actualizar las etiquetas de una implementación de archivos en Apigee en Google Cloud, envía una solicitud PATCH a la siguiente API: https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/archiveDeployments/$ID.

Debes pasar el ID de la revisión de la implementación del archivo. Para ver la lista de ID de revisión de la implementación del archivo para un entorno de Apigee, consulta Enumera todas las implementaciones de archivos en un entorno.

Pasa todas las etiquetas que deseas agregar al archivo en el cuerpo de la solicitud. Las etiquetas que pasas reemplazan el conjunto actual de etiquetas, por lo que puedes quitar etiquetas si las omites del cuerpo de la solicitud o quitas todas las etiquetas mediante una lista vacía.

Por ejemplo:

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

En el ejemplo anterior, $TOKEN está configurado como tu token de acceso de OAuth 2.0, como se describe en Obtén un token de acceso de OAuth 2.0. Para obtener información sobre las opciones de curl que se usan en este ejemplo, consulta Usa curl. Para obtener una descripción de las variables de entorno utilizadas, consulta Configura variables de entorno para solicitudes a la API de Apigee.

A continuación, se proporciona un ejemplo de la respuesta.

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

Borra un entorno de Apigee con implementaciones de archivo

Para borrar un entorno de Apigee con implementaciones de archivo, haz lo siguiente:

  1. En una carpeta temporal, crea la siguiente estructura de directorio en la que $ENV coincide con el nombre del entorno que deseas borrar. Por ejemplo:
    mkdir -p /$TEMP/archive/src/main/apigee/environments/$ENV
  2. Agrega el archivo deployments.json al directorio. Por ejemplo:
    touch /$TEMP/archive/src/main/apigee/environments/$ENV/deployments.json
  3. Actualiza deployments.json para que incluya un array proxies vacío, como se muestra a continuación.
    {
    "proxies" : []
    }
  4. Cambia el directorio (cd) a la carpeta $TEMP/archive.
    cd $TEMP/archive

    Si:

  5. Implementas el archivo en el entorno de Apigee que deseas borrar.
    gcloud beta apigee archives deploy --environment=$ENV
    
  6. Borra el entorno de Apigee.

Borra una revisión de una implementación de archivo

Borra una revisión de una implementación de archivo como se describe en la siguiente sección.

gcloud

Para borrar una revisión de una implementación de archivo en Apigee en Google Cloud, usa el siguiente comando gcloud:

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

Debes especificar lo siguiente:

Por ejemplo:

gcloud apigee archives delete fb4r8log2gm63r3gtu --environment=dev

A continuación, se proporciona un ejemplo de la respuesta.

Archive deployment revision "fb4r8log2gm63r3gtu" deleted

API de Apigee

Para borrar una revisión de una implementación de archivo en Apigee en Google Cloud, envía una solicitud DELETE a la siguiente API: https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/archiveDeployments/$ID.

Debes pasar el ID de la revisión de la implementación de archivo que deseas borrar. Para ver la lista de ID de revisión de la implementación de archivos de un entorno, consulta Enumera todas las implementaciones de archivos en un entorno.

Por ejemplo:

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

En el ejemplo anterior, $TOKEN está configurado como tu token de acceso de OAuth 2.0, como se describe en Obtén un token de acceso de OAuth 2.0. Para obtener información sobre las opciones de curl que se usan en este ejemplo, consulta Usa curl. Para obtener una descripción de las variables de entorno utilizadas, consulta Configura variables de entorno para solicitudes a la API de Apigee.

A continuación, se proporciona un ejemplo de la respuesta.

{}