Enable HTTP deployment

By default, Edge uses RPC to deploy API proxies. While this mode works very well for most installations, larger topologies with many MPs might experience timeouts when a large number of concurrent calls are made via RPC. Apigee plans to deprecate this implementation in the future.

As a result, Apigee recommends that larger deployments use HTTP rather than RPC for deployment.

In addition to potentially providing greater reliability, enabling HTTP deployment also improves the content and format of exceptions that might be thrown during the deployment process.

This section describes how to enable HTTP for deployment.

Update your organization

To enable HTTP deployment, send a PUT request to the Update organization properties API. Set the following properties in the body of the request:

Property Description
allow.deployment.over.http Determines whether Edge can deploy API proxies via HTTP (in addition to RPC). Set to true to allow HTTP deployment; otherwise, false. The default is false.

To enable HTTP deployments, you must set this property to true.

use.http.for.configuration

Specifies which method to use for configuration events. Possible values are:

  • never: All config events use RPC. This is the default.
  • retry: All config events use RPC first; if an event fails via RPC, Edge tries HTTP. This can cause delays if you should be using HTTP.
  • always: All config events use HTTP.

To enable HTTP deployments, Apigee recommends setting this property to always.

In addition to setting these properties in the body of the message, you must set the Content-Type header to application/json or application/xml.

The following example calls the Update organization properties API with a JSON message body.

curl -u admin_email:admin_password
  "http://management_server_IP:8080/v1/organizations/org_name"
  -X POST -H "Content-Type: application/json" -d
  '{
    "properties" : {
      "property" : [
      {
        "name" : "allow.deployment.over.http",
        "value" : "true"
      },
      {
        "name" : "use.http.for.configuration",
        "value" : "always"
      } ]
    }
  }'

To enable HTTP deployment on all API proxies across all your organizations, you must update each organization as described above.

Test the update

To test that your update was successful, trigger a deployment event on an API proxy in the updated organization and then look at the Message Processor's log files. The log entry for the deployment events should contain mode:API.

For more information, see Log files.