In this step, you will create an environment and an environment group.
In Apigee, API proxies are deployed to environments, which provide isolated contexts for your proxies. Environments are organized into environment groups, which provide hostnames for all the proxies deployed to environments within the group. You must have at least one environment and at least one environment group. To learn more, see About environments and environment groups.
Required permissions
The environment and environment group creator must have at minimum the Apigee Organization Admin role. However, if you are the project owner, then you automatically have permission to create an environment or environment group. However, if you delegate this task to a non-project owner, that user must be granted the Apigee Organization Admin role in your project. For information on granting roles, see Granting, changing, and revoking access to resources.
Create an environment
Create the environment first before creating the environment group. You can create an environment using the Apigee hybrid UI or using the CLI. You may want to use the UI for these steps to familiarize yourself with it.
Apigee hybrid UI
To access the hybrid UI and add an environment, perform the following steps:
- Open the Apigee UI. If this is the first time you are logging in, hybrid displays a consent dialog. If you are prompted to select from more than one account, choose the account that owns the project you created in Step 2: Create a Google Cloud project. Then click Allow.
-
Ensure that your hybrid-enabled organization is selected from the organization drop-down list. If it is not selected, select it from the drop-down list, as the following example shows:
- Click Admin > Environments > Overview.
The Environments view is displayed, with no environments (yet):
- Click +Environment.
The New environment dialog is displayed:
- Enter the following information in the New Environment dialog:
- Display name (Required): A friendly name for the environment that is used in the UI. For example, "My First Environment" or "test". Unlike the Environment name, the Display name can include uppercase and other special characters.
- Environment name (Required): The programmatic name for the environment; also known
as the environment ID.
For example, "my-environment" or "test".
The Display name and the Environment name can be different.
- Description (Optional): Additional information about the environment that you want to add as a reminder of the purpose of the environment. For example, "Created during initial installation".
- Click Create.
Apigee creates the new environment and indicates that it is Pending Provisioning:
In a few moments, it changes to provisioned:
However, you’re not quite done. You also need to add your new environment to the runtime's
overrides.yaml
file—but first you've got to install the runtime, so let's not get ahead of ourselves.
Your browser navigates to the hybrid UI main landing page:
gcloud CLI
To create an environment with the Create environments API, perform the following steps:
- Open a terminal on the device you are using to manage Apigee.
-
On the command line, get your
gcloud
authentication credentials, as the following example shows:TOKEN=$(gcloud auth print-access-token)
To check that your token was populated, use
echo
, as the following example shows:echo $TOKEN
This should display your token as an encoded string.
For more information, see gcloud command-line tool overview.
- Create environment variables for the elements of the environment. You will use the following variable in
the command to create it:
ENV_NAME
(Required) is the programmatic ID for your environment. The environment name can contain lowercase letters, dashes, and numbers and must start with a lowercase letter. This name will be used as the identifier and cannot be changed after creationexport ENV_NAME=environment_name
ENV_DISPLAY_NAME
(Required) is the user-friendly name of your environment. This value does not need to be unique, and can include spaces and special characters. For example, "My Example Environment".ENV_DISPLAY_NAME=friendly_name
ORG_NAME
(Required) is your organization ID. Make sure you have defined theORG_NAME
environment variable from Step 4: Create an organization:echo $ORG_NAME
ENV_DESCRIPTION
(Optional) is information about the environment that you'd like to use as a reminder of its purpose. For example, "Example environment for Apigee Hybrid instructions".ENV_DESCRIPTION=description_text
- Send an authenticated
POST
request to the Create environments API.The following example shows the request structure that creates an organization, using the following command:
curl -H "Authorization: Bearer $TOKEN" -X POST -H "content-type:application/json" -d '{ "name": "'"$ENV_NAME"'", "displayName": "'"$ENV_DISPLAY_NAME"'", "description": "'"$ENV_DESCRIPTION"'" }' "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/environments"
On a successful creation request, the Environments API should respond with a message similar to the following:
{ "name": "organizations/hybrid-example/operations/c2aee040-7e79-4fd4-b0cf-79ca1b7098a8", "metadata": { "@type": "type.googleapis.com/google.cloud.apigee.v1.OperationMetadata", "operationType": "INSERT", "targetResourceName": "organizations/hybrid-example/environments/example-env", "state": "IN_PROGRESS" } }
As the
state
property in the response indicates, Apigee has started to create the new environment, so its state isIN_PROGRESS
. This process can take several minutes.
Create an environment group
Now create an environment group and assign the environment you just created to it. Environment groups allow you to group environments together, and provide the hostnames for routing the proxies deployed to the environments within the group. You must create at least one environment group, and you must assign at least one hostname to the group. For an overview of environment groups, see About environment groups.
Apigee hybrid UI
To create an environment group using the Apigee UI, perform the following steps:
- Open the Apigee UI.
- Ensure that your hybrid-enabled organization is selected from the organization drop-down list. If it is not selected, select it from the drop-down list.
-
Click Admin > Environments > Groups.
The Environment Groups Overview view is displayed, with any created environment groups:
-
Click +Environment Group.
The Add an Environment Group dialog is displayed.
- Enter a name and then click Add.
-
Hold the pointer over the newly-created environment group and then click Edit
.Add a hostname that all proxies deployed to environments within this group will use. This is the domain you used in Step 5: Configure your DNS.
- Click Add (+).
- The Add environment dialog displays.
- Select an environment from the list and then click Add.
Your browser navigates to the hybrid UI main landing page.
gcloud CLI
To create an environment group using the command line, perform the following steps:
-
On the command line, get your
gcloud
authentication credentials, as the following example shows:TOKEN=$(gcloud auth print-access-token)
To check that your token was populated, use
echo
, as the following example shows:echo $TOKEN
This should display your token as an encoded string.
For more information, see gcloud command-line tool overview.
- Make sure you have the DOMAIN environment variable set as the following example shows:
echo $DOMAIN
This is the hostname that all proxies deployed to environments within this group will use. Use the same domain you used in Step 5: Configure your DNS.
If it is not set, create it with the domain you plan to use for your Apigee hybrid installation. For example:
export DOMAIN=domain-name.com
- Make sure you have the ENV_NAME environment variable set to the environment you just
created in the previous steps. For example:
echo $ENV_NAME
- Create an environment variable for your intended environmnet group name. For example:
export ENV_GROUP=environment-group-name
- Create the environment group with the following command:
curl -H "Authorization: Bearer $TOKEN" -X POST -H "content-type:application/json" \ -d '{ "name": "'"$ENV_GROUP"'", "hostnames":["'"$DOMAIN"'"] }' \ "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/envgroups"
- Assign the environment to the new group with the following command:
curl -H "Authorization: Bearer $TOKEN" -X POST -H "content-type:application/json" \ -d '{ "environment": "'"$ENV_NAME"'", }' \ "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/envgroups/$ENV_GROUP/attachments"
Next step
To continue with the installation, see Runtime installation: Before you begin.