Deploying an API proxy

This page applies to Apigee and Apigee hybrid.

View Apigee Edge documentation.

You cannot invoke an API proxy until it has been deployed. After you create a new API proxy or make a change to an existing one, you can deploy it to your cluster.

When you create a new revision of an API proxy without changing its base path, then deploy it to an environment in which it's already deployed, the previous revision is undeployed and the new revision is deployed in its place.

Deploy an API proxy

Deploy an API proxy revision as described for one of the following methods.

Apigee UI

To deploy an API proxy:

  1. In the Google Cloud console, go to the Proxy Development > API Proxies page.

    Go to API Proxies

  2. Click the API proxy that you want to deploy. The UI displays the Overview page:

    API proxy details including the deployment status per environment,
      the proxy endpoint details, and the target endpoint details.

  3. To deploy your changes, click Deploy to display the Deploy dialog:

    Target endpoints selected in the Proxy Explorer.

  4. Enter the following:
    • Revision: The revision number of the proxy you want to deploy.
    • Environment: The environment where you want to deploy the proxy.
    • Service account (optional): A service account for the proxy.
  5. Click Deploy.

The UI begins the process of deploying the selected revision.

When the proxy is deployed, the Status column in the Deployments section displays a green icon to show that revision 1 of the proxy is deployed.

Deployed proxy status icon

Apigee API

The following sections provide examples of using the Apigee API to deploy API proxy revisions and list the deployments for your organization.

See also Viewing deployment status.

Create a deployment change report before deploying

Deploying a proxy in more than one environment in the same environment group may lead to undefined behavior. To determine whether this will occur, you can generate a report using the generateDeployChangeReport method as follows:

curl "https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/apis/$API/revisions/$REV/deployments:generateDeployChangeReport" \
-X POST \
-H "Authorization: Bearer $TOKEN"

This returns a deployment change report that warns you if a base path in the proxy you want to deploy will not receive traffic due to an existing deployment that is already using that base path.

Deploying an API proxy revision using the API

To deploy an API proxy revision, use the following API call:

curl "https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/apis/$API/revisions/$REV/deployments" \
  -X POST \
  -H "Authorization: Bearer $TOKEN"

Where $TOKEN is set to your OAuth 2.0 access token, as described in Obtaining an OAuth 2.0 access token. For information about the curl options used in this example, see Using curl. For a description of environment variables you can use, see Setting environment variables for Apigee API requests.

The following shows an example of the response output. In this example, revision 1 of the helloworld API proxy was deployed successfully to the test environment:

{
  "environment": "test",
  "apiProxy": "helloworld",
  "revision": "1",
  "deployStartTime": "1559149080457"
}

For more information, see Deploy API proxy revision API.

Listing deployments using the API

To list all deployments of API proxies and shared flows for your organization, enter the following API call:

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

Where $TOKEN is set to your OAuth 2.0 access token, as described in Obtaining an OAuth 2.0 access token. For information about the curl options used in this example, see Using curl. For a description of environment variables you can use, see Setting environment variables for Apigee API requests.

The following provides an example of the response. In this example, there are three API proxies deployed, including helloworld which was deployed in the previous section.

{
  "deployments": [
    {
      "environment": "test",
      "apiProxy": "helloworld",
      "revision": "1",
      "deployStartTime": "1559149080457"
    },
    {
      "environment": "test",
      "apiProxy": "weather",
      "revision": "1",
      "deployStartTime": "1558620435217"
    },
    {
      "environment": "test",
      "apiProxy": "testproxy",
      "revision": "2",
      "deployStartTime": "1558635113086"
    }
  ]
}

gcloud

The following sections provide examples of using gcloud apigee CLI commands to deploy API proxy revisions and list the deployments for your organization.

See also Viewing deployment status.

For more information and a description of the environment variables used in the examples, see Getting started using gcloud with Apigee.

Deploying an API proxy revision using the gcloud CLI

To deploy an API proxy revision, use the following gcloud command:

gcloud apigee apis deploy $REV --api=$API --environment=$ENV

The following shows an example of the response output. In this example, revision 1 of the helloworld API proxy was deployed successfully to the test environment:

Using Apigee organization 'my-org'
apiProxy: helloworld
deployStartTime: '1598032332802'
environment: test
revision: '1'

For more information, see Deploy API proxy revision CLI.

Listing deployments using the gcloud CLI

To list all deployments of API proxies and shared flows for your organization, use the following gcloud command:

gcloud apigee deployments list

The following provides an example of the response. In this example, there are three API proxies deployed, including helloworld which was deployed in the previous section.

Using Apigee organization `my-org`
 - apiProxy: helloworld
   deployStartTime: 1598032332802
   environment: test
   revision: 1
 - apiProxy: weather
   deployStartTime: 1558620435217
   environment: test
   revision: 1
 - apiProxy: testproxy
   deployStartTime: 1558635113086
   environment: test
   revision: 2

For more information, see List deployments CLI.

Troubleshooting

If you are unable to deploy your API proxy, check to see if one of the following common scenarios may apply.

Naming restrictions for environment groups

If the name of your environment group does not comply with naming restrictions your proxy will not deploy. In some cases, it is possible to create an environment group and add environments to it without having to meet these restrictions. However, this will prevent proxy deployment.

See Creating environment groups for a description of naming guidelines and restrictions.

Environment created with a previously used environment name

If you create an environment with the same name as an environment that was previously deleted, your proxy will not deploy. For example, if you created an environment named prod-1 after previously creating and deleting a prod-1 environment, you will need to remove it. You can use the following steps to resolve this issue:

  1. Detach the prod-1 environment from your environment group using the API.
  2. Delete the prod-1 environment using the API.
  3. Create a new environment. For example, prod-2.
  4. Attach the new prod-2 environment to your environment group using the API.