Desplegar y gestionar 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. A continuación, despliega un archivo de tu entorno de configuración de proxy de API en tu entorno de prueba de integración y de producción de Apigee, tal como se describe en las siguientes secciones.

Habilitar el despliegue de archivos en un entorno de Apigee

Para poder desplegar un archivo, debes habilitar el despliegue de archivos en tu entorno de Apigee.

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

Apigee en la consola de Cloud

  1. En la Google Cloud consola, ve a la página Entornos.

    Ir a Entornos

  2. Haz clic en + Crear entorno.
  3. Seleccione Archivar en Tipo de implementación.

    Cuadro de diálogo Entorno nuevo.
  4. Haz clic en Crear.

UI clásica de Apigee

Para habilitar el despliegue de archivos en tu entorno de Apigee, cuando crees un entorno de Apigee (fuera del asistente de aprovisionamiento), selecciona Archivo en Tipo de despliegue.

Cuadro de diálogo Entorno nuevo.

API de Apigee

Para habilitar el archivo de despliegue al crear un entorno mediante la API, defina 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"
   }'

Donde $TOKEN es tu token de acceso OAuth 2.0, tal como se describe en Obtener un token de acceso OAuth 2.0. Para obtener información sobre las opciones de curl que se usan en este ejemplo, consulta Usar curl. Para ver una descripción de las variables de entorno que puedes usar, consulta Definir variables de entorno para solicitudes a la API de Apigee.

A continuación, se muestra 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 consultar 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 muestra un ejemplo de la respuesta. Ten en cuenta que el estado de la operación es FINISHED y el estado del entorno es 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 Create environments.

Desplegar un archivo en un entorno de Apigee

Para desplegar un archivo en un entorno de Apigee, usa el siguiente comando 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 quieres desplegar el archivo mediante la marca --environment. El entorno de Apigee debe estar habilitado para los despliegues de archivos. Para obtener más información, consulta gcloud beta apigee archives deploy.

De forma predeterminada, el archivo se implementa:

  • A la organización asociada al 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 src/main/apigee del archivo se encuentra en una ubicación distinta del directorio de trabajo actual, usa la marca --source para especificar la ubicación del directorio raíz del archivo. Consulta también Información sobre la estructura de un espacio de trabajo de Apigee.

Opcionalmente, puede añadir hasta 64 pares clave-valor de etiquetas personalizadas a una implementación de archivo con la marca --labels. Por ejemplo, puedes etiquetar un archivo con un número de compilación. Las etiquetas se mostrarán cuando listar las implementaciones de archivos. Los valores clave deben cumplir las siguientes directrices:

  • Longitud máxima de 63 caracteres
  • Tamaño máximo de 128 bytes
  • Codificado en UTF-8
  • Cumple 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 al implementar en Apigee en Google Cloud:

  1. Crea un archivo ZIP del directorio de tu espacio de trabajo de src/main/apigee Apigee. Para obtener más información, consulta Estructura de un espacio de trabajo de Apigee.
  2. Despliega el archivo en Apigee en Google Cloud de la siguiente manera:
    1. Genera una URL firmada para el segmento de Google Cloud Storage del proyecto asociado a la organización de Apigee actual mediante la API generateUploadUrl.
    2. Sube el archivo ZIP del archivo al segmento de Cloud Storage mediante la URL firmada.
    3. Despliega el archivo que se encuentra en el segmento de Cloud Storage en Apigee en Google Cloud. con la API Archive Deployments.

Solicitudes de ejemplo

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

gcloud beta apigee archives deploy --environment=$ENV

En el siguiente ejemplo se muestra cómo puede especificar una organización que no esté asociada al proyecto activo 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 despliega en el entorno de Apigee especificado:

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

En el siguiente ejemplo se añaden 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 muestra un ejemplo de la respuesta:

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

Comprobar el estado del despliegue del archivo

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

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

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

A continuación, se muestra un ejemplo de la respuesta. Ten en cuenta que state está configurado 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 completada la operación, el state se establece en FINISHED.

Mostrar todos los despliegues de archivos en un entorno

Consulta todos los despliegues de archivos de un entorno, tal como se describe en las siguientes secciones.

gcloud

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

gcloud beta apigee archives list --environment=$ENV

Debe especificar el entorno de Apigee en el que quiere ver las implementaciones archivadas mediante la marca --environment. El entorno de Apigee debe ser Ver detalles de un despliegue de archivo. Para obtener más información, consulta gcloud beta apigee archives list.

A continuación, se muestra 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 los despliegues de archivos 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"

Donde $TOKEN es tu token de acceso OAuth 2.0, tal como se describe en Obtener un token de acceso OAuth 2.0. Para obtener información sobre las opciones de curl que se usan en este ejemplo, consulta Usar curl. Para ver una descripción de las variables de entorno que puedes usar, consulta Definir variables de entorno para solicitudes a la API de Apigee.

A continuación, se muestra 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"
    }
  ]
}

Ver los detalles de una implementación archivada

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 archivo en Apigee en Google Cloud, usa el siguiente comando gcloud:

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

Deberás especificar lo siguiente:

  • ID de la revisión de la implementación del archivo.
  • Entorno de Apigee en el que quiere ver las implementaciones archivadas mediante la marca --environment. El entorno de Apigee debe estar habilitado para los despliegues de archivos.

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 muestra 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 un archivo, envía una solicitud GET a la siguiente API: https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/archiveDeployments/$ID.

Debes proporcionar el ID de la revisión de la implementación del archivo. Para ver la lista de IDs de revisión de despliegue de archivos de un entorno de Apigee, consulta Mostrar todos los despliegues 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"

Donde $TOKEN es tu token de acceso OAuth 2.0, tal como se describe en Obtener un token de acceso OAuth 2.0. Para obtener información sobre las opciones de curl que se usan en este ejemplo, consulta Usar curl. Para ver una descripción de las variables de entorno que puedes usar, consulta Definir variables de entorno para solicitudes a la API de Apigee.

A continuación, se muestra 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"
}

Actualizar las etiquetas de un despliegue archivado

Actualiza las etiquetas de una implementación de archivo tal 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 gcloud:

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

Deberás especificar lo siguiente:

  • ID de la revisión de la implementación del archivo
  • Entorno de Apigee en el que quiere ver las implementaciones archivadas mediante la marca --environment. El entorno de Apigee debe estar habilitado para los despliegues de archivos.
  • Una o varias de las siguientes marcas:
    Bandera Descripción
    --clear-labels Elimina todas las etiquetas. Si también se especifica --update-labels, se aplica primero --clear-labels.

    No se puede especificar si se ha indicado --remove-labels.

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

    No se puede especificar si se ha indicado --clear-labels.

    --update-labels Actualiza las etiquetas. Si la etiqueta ya existe, se modifica su valor. De lo contrario, se crea una etiqueta. Combínalo con 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 muestra 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

Para actualizar las etiquetas de una implementación de archivo 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 proporcionar el ID de la revisión de la implementación del archivo. Para ver la lista de IDs de revisión de despliegue de archivos de un entorno de Apigee, consulta Mostrar todos los despliegues de archivos en un entorno.

Pasa todas las etiquetas que quieras añadir al archivo en el cuerpo de la solicitud. Las etiquetas que envíes sobrescribirán el conjunto de etiquetas actual, por lo que puedes quitar etiquetas omitiéndolas en el cuerpo de la solicitud o quitar todas las etiquetas enviando 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"
    }
  }'

Donde $TOKEN es tu token de acceso OAuth 2.0, tal como se describe en Obtener un token de acceso OAuth 2.0. Para obtener información sobre las opciones de curl que se usan en este ejemplo, consulta Usar curl. Para ver una descripción de las variables de entorno que puedes usar, consulta Definir variables de entorno para solicitudes a la API de Apigee.

A continuación, se muestra 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"
}

Eliminar un entorno de Apigee con despliegues de archivos

Para eliminar un entorno de Apigee con implementaciones de archivos, sigue estos pasos:

  1. En una carpeta temporal, crea la siguiente estructura de directorios, donde $ENV coincide con el nombre del entorno que quieres eliminar. Por ejemplo:
    mkdir -p /$TEMP/archive/src/main/apigee/environments/$ENV
  2. Añade el archivo deployments.json al directorio. Por ejemplo:
    touch /$TEMP/archive/src/main/apigee/environments/$ENV/deployments.json
  3. Actualice el 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
  5. Despliega el archivo en el entorno de Apigee que quieras eliminar.
    gcloud beta apigee archives deploy --environment=$ENV
    
  6. Elimina el entorno de Apigee.

Eliminar una revisión de un despliegue archivado

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

gcloud

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

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

Deberás especificar lo siguiente:

  • El ID de la revisión que quieres eliminar.
  • Entorno de Apigee en el que quiere ver las implementaciones archivadas mediante la marca --environment. El entorno de Apigee debe estar habilitado para los despliegues de archivos.

Por ejemplo:

gcloud apigee archives delete fb4r8log2gm63r3gtu --environment=dev

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

Archive deployment revision "fb4r8log2gm63r3gtu" deleted

API de Apigee

Para eliminar 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 indicar el ID de la revisión de la implementación del archivo que quieras eliminar. Para ver la lista de IDs de revisión de despliegues archivados de un entorno, consulta Mostrar todos los despliegues archivados de un entorno.

Por ejemplo:

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

Donde $TOKEN es tu token de acceso OAuth 2.0, tal como se describe en Obtener un token de acceso OAuth 2.0. Para obtener información sobre las opciones de curl que se usan en este ejemplo, consulta Usar curl. Para ver una descripción de las variables de entorno que puedes usar, consulta Definir variables de entorno para solicitudes a la API de Apigee.

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

{}