本页面适用于 Apigee,但不适用于 Apigee Hybrid。
查看 Apigee Edge 文档。
本文档介绍如何在使用 VPC 对等互连的情况下通过命令行安装和配置 Apigee。这些步骤适用于启用或未启用数据驻留的付费组织的订阅和随用随付价格模式。
步骤摘要
预配步骤如下:
- 第 1 步:定义环境变量:设置
gcloud
并定义环境变量。Google Cloud CLI 可管理身份验证、本地配置、开发者工作流以及与 Google Cloud API 的交互。 - 第 2 步:启用 API:Apigee 要求您启用多个 Google Cloud API。
- 第 3 步:创建 Apigee 服务身份:此服务账号供 Google Cloud 客户端库用来向 Google Cloud API 进行身份验证。
- 第 4 步:配置服务网络:服务网络可在您的网络与 Apigee 之间自动执行专用连接设置(使用 VPC 网络对等互连)。
- 第 5 步:创建组织:Apigee 组织(有时称为组织)是 Apigee 中的顶层容器。它包括所有环境和环境组、用户、API 代理以及相关资源。
- 第 6 步:创建运行时实例:实例或运行时是存储您的项目和相关服务的位置,它可为您的服务提供面向用户的端点。
- 第 7 步:创建环境:API 代理必须先部署到环境并添加到环境组中,然后才能通过网络访问其公开的 API。
- 第 8 步:配置路由:允许对 API 进行外部访问或仅限内部访问。
- 第 9 步:部署示例代理:通过部署和调用 API 代理来测试预配。
第 1 步:定义环境变量
设置 gcloud
并定义环境变量,以供后续步骤使用:
- 请确保已完成准备工作中列出的设置要求。
- 您必须已安装 Cloud SDK。如果您需要安装,请参阅安装 Cloud SDK。
- 初始化 Cloud SDK(如初始化 gcloud CLI 中所述),否则请确保您在前提条件中创建的 Google Cloud 项目是
gcloud
的默认项目。 - 在命令终端中定义以下环境变量。选择与所需组织类型对应的标签页:无数据驻留或有数据驻留:
无数据驻留
AUTH="$(gcloud auth print-access-token)"
PROJECT_ID="YOUR_PROJECT_ID"
PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)")
RUNTIME_LOCATION="YOUR_RUNTIME_LOCATION"
ANALYTICS_REGION="YOUR_ANALYTICS_REGION"
BILLING_TYPE="YOUR_BILLING_TYPE"
其中:
-
AUTH 使用不记名令牌定义
Authentication
标头。 您将在调用 Apigee API 时使用此标头。请注意,令牌会在一段时间后过期,并且在令牌过期后,您可以使用同一命令重新生成令牌。如需了解详情,请参阅 print-access-token 命令参考页面。 - PROJECT_ID 是您在前提条件中创建的 Cloud 项目 ID。
- PROJECT_NUMBER 是您在前提条件中创建的 Cloud 项目编号。
-
RUNTIME_LOCATION 是您稍后创建的 Apigee 实例所在的物理位置。如需查看可用运行时位置的列表,请参阅 Apigee 位置。
-
ANALYTICS_REGION 是存储 Apigee 分析数据的物理位置。如需查看可用的 Apigee API Analytics 区域列表,请参阅 Apigee 位置。
RUNTIME_LOCATION 和 ANALYTICS_REGION 可以位于同一区域,但这不是必须的。
-
BILLING_TYPE 是您创建的组织的结算类型。有效值包括:
PAYG
(适用于Pay-as-you-go组织)。SUBSCRIPTION
(适用于订阅组织)。
数据驻留
AUTH="$(gcloud auth print-access-token)"
PROJECT_ID="YOUR_PROJECT_ID"
PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)")
RUNTIME_LOCATION="YOUR_RUNTIME_LOCATION"
CONTROL_PLANE_LOCATION="YOUR_CONTROL_PLANE_LOCATION"
CONSUMER_DATA_REGION="YOUR_CONSUMER_DATA_REGION"
BILLING_TYPE="YOUR_BILLING_TYPE"
其中:
-
AUTH 使用不记名令牌定义
Authentication
标头。 您将在调用 Apigee API 时使用此标头。请注意,令牌会在一段时间后过期,并且在令牌过期后,您可以使用同一命令重新生成令牌。如需了解详情,请参阅 print-access-token 命令参考页面。 - PROJECT_ID 是您在前提条件中创建的 Cloud 项目 ID。
- PROJECT_NUMBER 是您在前提条件中创建的 Cloud 项目编号。
-
RUNTIME_LOCATION 是您稍后创建的 Apigee 实例所在的物理位置。如需查看可用运行时位置的列表,请参阅 Apigee 位置。
运行时位置必须位于控制平面位置。 - CONTROL_PLANE_LOCATION 是存储 Apigee 控制平面数据的物理位置。如需查看可用的控制平面位置列表,请参阅 Apigee 位置。
- CONSUMER_DATA_REGION 是控制平面区域的子区域。您必须同时指定 CONTROL_PLANE_LOCATION 和 CONSUMER_DATA_REGION。如需查看可用的使用方数据区域的列表,请参阅 Apigee 位置。
-
BILLING_TYPE 是您创建的组织的结算类型。有效值包括:
PAYG
(适用于Pay-as-you-go组织)。SUBSCRIPTION
(适用于订阅组织)。
-
AUTH 使用不记名令牌定义
- (可选)通过回送您刚刚设置的值来检查您的工作。请注意,要在命令中使用变量,请在变量名称前面加上美元符号 ($)。
无数据驻留
echo $AUTH
echo $PROJECT_ID
echo $PROJECT_NUMBER
echo $RUNTIME_LOCATION
echo $ANALYTICS_REGION
echo $BILLING_TYPE
echo
命令的响应应如下所示:YOUR_TOKEN my-cloud-project 1234567890 us-west1 us-west1 SUBSCRIPTION
数据驻留
echo $AUTH
echo $PROJECT_ID
echo $PROJECT_NUMBER
echo $RUNTIME_LOCATION
echo $CONTROL_PLANE_LOCATION
echo $CONSUMER_DATA_REGION
echo $BILLING_TYPE
echo
命令的响应应如下所示:YOUR_TOKEN my-cloud-project 1234567890 us-west1 us us-west1 SUBSCRIPTION
第 2 步:启用 API
-
Apigee 要求您启用多个 Google Cloud API。通过执行以下
services enable
命令启用它们:gcloud services enable apigee.googleapis.com \ servicenetworking.googleapis.com \ compute.googleapis.com \ cloudkms.googleapis.com --project=$PROJECT_ID
(可选)如需查看您的工作,请使用
services list
命令显示所有已启用的 API:gcloud services list
该响应会显示所有已启用的服务,包括您刚刚启用的 API。
第 3 步:创建 Apigee 服务身份
-
创建 Apigee 服务身份:
gcloud beta services identity create --service=apigee.googleapis.com \ --project=$PROJECT_ID
验证代理已成功创建。响应应按以下格式显示代理的名称:
service-PROJECT_NUMBER@gcp-sa-apigee.iam.gserviceaccount.com
。例如:Service identity created: service-1234567890@gcp-sa-apigee.iam.gserviceaccount.com
第 4 步:配置服务网络
在此步骤中,您将一对 IP 地址范围(/22 和 /28 CIDR 范围)分配给 Apigee,并在您的网络与 Apigee 网络之间执行 VPC 对等互连。每个 Apigee 实例都需要一个非重叠的 /22 和 /28 CIDR 范围。系统会向 Apigee 运行时平面分配此 CIDR 范围内的 IP 地址。因此,请务必为 Apigee 预留该范围,确保它不会被您的 VPC 网络中的其他应用使用。如需了解详情和重要注意事项,请参阅了解对等互连范围。
请注意,您要为一个 Apigee 实例创建足够的网络 IP 范围。如果您计划创建其他 Apigee 实例,则必须对每个实例重复此步骤。这些范围无法在实例之间共享。另请参阅将 Apigee 扩展到多个区域。
- 创建以下环境变量:
RANGE_NAME=YOUR_RANGE_NAME
NETWORK_NAME=YOUR_NETWORK_NAME
其中:
- RANGE_NAME 是您正在创建的 IP 地址范围的名称。您可以随意为范围命名。例如:
google-svcs
- NETWORK_NAME 是应在其中预留地址的网络资源的名称。
Google 会为每个新项目创建一个默认网络(名为
default
),以便您使用该网络。但是,Google 不建议将默认网络用于测试以外的其他用途。
- RANGE_NAME 是您正在创建的 IP 地址范围的名称。您可以随意为范围命名。例如:
- 创建 CIDR 长度为 /22 的网络 IP 地址范围:
gcloud compute addresses create $RANGE_NAME \ --global \ --prefix-length=22 \ --description="Peering range for Apigee services" \ --network=$NETWORK_NAME \ --purpose=VPC_PEERING \ --addresses=OPTIONAL_ADDRESSES \ --project=$PROJECT_ID
其中,
--addresses
可让您选择指定地址范围。例如,如需分配 CIDR 地址块192.168.0.0/22
,请将地址指定为192.168.0.0
,并将前缀长度指定为22
。另请参阅创建 IP 地址分配。如果您未提供
--addresses
参数,则 gcloud 会为您选择一个可用地址范围。成功后,
gcloud
会返回以下内容:Created [https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/global/addresses/google-svcs].
创建 IP 地址范围后,地址便会与项目关联,直到您将地址释放。
- 验证已创建的网络 IP 地址范围的 CIDR 长度是否为 /22:
gcloud compute addresses list --global --project=$PROJECT_ID
gcloud compute addresses describe $RANGE_NAME --global --project=$PROJECT_ID
- 创建 CIDR 长度为 /28 的网络 IP 地址范围。此范围是必需的,供 Apigee 用于问题排查,不能自定义或更改。
gcloud compute addresses create google-managed-services-support-1 \ --global \ --prefix-length=28 \ --description="Peering range for supporting Apigee services" \ --network=$NETWORK_NAME \ --purpose=VPC_PEERING \ --addresses=OPTIONAL_ADDRESSES \ --project=$PROJECT_ID
其中,
--addresses
可让您选择指定地址范围。例如,如需分配 CIDR 地址块192.168.0.0/28
,请将地址指定为192.168.0.0
,并将前缀长度指定为28
。另请参阅创建 IP 地址分配。如果您未提供
--addresses
参数,则 gcloud 会为您选择一个可用地址范围。 - 验证已创建的网络 IP 地址范围的 CIDR 长度是否为 /28:
gcloud compute addresses list --global --project=$PROJECT_ID
gcloud compute addresses describe google-managed-services-support-1 --global \ --project=$PROJECT_ID
- 使用以下命令将您的服务连接到网络:
gcloud services vpc-peerings connect \ --service=servicenetworking.googleapis.com \ --network=$NETWORK_NAME \ --ranges=$RANGE_NAME,google-managed-services-support-1 \ --project=$PROJECT_ID
此操作可能需要几分钟才能完成。在成功后,
gcloud
会返回以下内容,其中 OPERATION_ID 是 LRO 的 UUID。Operation "operations/OPERATION_ID" finished successfully.
- 几分钟后,验证 VPC 对等互连是否成功:
gcloud services vpc-peerings list \ --network=$NETWORK_NAME \ --service=servicenetworking.googleapis.com \ --project=$PROJECT_ID
Apigee 在您的网络与 Google 服务之间建立连接;具体而言,Apigee 通过 VPC 对等互连将您的项目连接到 Service Networking API。Apigee 还会将 IP 地址与您的项目关联。
第 5 步:创建组织
您必须先创建运行时数据库加密密钥环和密钥,然后才能创建组织(请参阅步骤 1),并且如果您使用数据驻留,还必须创建控制平面加密密钥环和钥匙(请参阅步骤 2)。这些 Cloud KMS 密钥会对跨运行时和控制平面位置存储和复制的数据进行加密。Apigee 使用这些实体来加密应用数据,例如 KVM、缓存和客户端密钥,这些数据随后存储在数据库中。如需了解详情,请参阅 Apigee 加密密钥简介。
-
创建运行时数据库加密密钥环和密钥。
-
为运行时数据库加密密钥环和密钥位置定义一个环境变量。这有助于在创建时确保一致性,并让您能够更轻松地在文档中执行操作。
该值是存储运行时数据库加密密钥环和密钥的物理位置。
- 定义数据库密钥环和密钥名称的环境变量。
密钥环的名称在您的组织中必须是唯一的。如果您创建第二个或后续区域,则名称不能与其他密钥环名称相同。
RUNTIMEDB_KEY_RING_NAME=YOUR_DB_KEY_RING_NAME
RUNTIMEDB_KEY_NAME=YOUR_DB_KEY_NAME
- (可选)通过回送您刚刚设置的值来检查您的工作。请注意,要在命令中使用变量,请在变量名称前面加上美元符号 ($)。
echo $RUNTIMEDBKEY_LOCATION
echo $RUNTIMEDB_KEY_RING_NAME
echo $RUNTIMEDB_KEY_NAME
- 创建新的密钥环:
gcloud kms keyrings create $RUNTIMEDB_KEY_RING_NAME \ --location $RUNTIMEDBKEY_LOCATION --project $PROJECT_ID
Apigee 运行时数据库加密密钥的位置支持所有支持 Cloud HSM 和 Cloud EKM 的 Cloud KMS 位置。
创建密钥:
gcloud kms keys create $RUNTIMEDB_KEY_NAME \ --keyring $RUNTIMEDB_KEY_RING_NAME \ --location $RUNTIMEDBKEY_LOCATION \ --purpose "encryption" \ --project $PROJECT_ID
此命令会创建密钥并将其添加到密钥环中。
获取密钥 ID:
gcloud kms keys list \ --location=$RUNTIMEDBKEY_LOCATION \ --keyring=$RUNTIMEDB_KEY_RING_NAME \ --project=$PROJECT_ID
密钥 ID 的语法如下所示(类似于文件路径):
projects/PROJECT_ID/locations/RUNTIMEDBKEY_LOCATION/keyRings/RUNTIMEDB_KEY_RING_NAME/cryptoKeys/RUNTIMEDB_KEY_NAME
将密钥 ID 放入环境变量中。您将在后面的命令中使用此变量:
RUNTIMEDB_KEY_ID=YOUR_RUNTIMEDB_KEY_ID
向 Apigee Service Agent 授予访问权限以使用新的密钥:
gcloud kms keys add-iam-policy-binding $RUNTIMEDB_KEY_NAME \ --location $RUNTIMEDBKEY_LOCATION \ --keyring $RUNTIMEDB_KEY_RING_NAME \ --member serviceAccount:service-$PROJECT_NUMBER@gcp-sa-apigee.iam.gserviceaccount.com \ --role roles/cloudkms.cryptoKeyEncrypterDecrypter \ --project $PROJECT_ID
此命令将密钥绑定到 Apigee Service Agent。
成功完成此请求后,
gcloud
的响应将如下所示:Updated IAM policy for key [runtime]. bindings: - members: - serviceAccount:service-1234567890@gcp-sa-apigee.iam.gserviceaccount.com role: roles/cloudkms.cryptoKeyEncrypterDecrypter etag: BwWqgEuCuwk= version: 1
如果出现如下错误:
INVALID_ARGUMENT: Role roles/cloudkms.cryptokms.cryptoKeyEncrypterDecrypter is not supported for this resource.
请务必使用项目编号,而不是服务账号电子邮件地址中的项目名称。
-
- 如果您使用的是数据驻留,请创建控制平面加密密钥环和密钥。如果您不使用数据驻留,请转到第 3 步。
- 为控制平面数据库加密环和密钥的位置定义一个环境变量:
CONTROL_PLANE_LOCATION=YOUR_CONTROL_PLANE_LOCATION
CONSUMER_DATA_REGION=YOUR_CONSUMER_DATA_REGION
其中:
为控制平面数据库密钥环和密钥名称定义环境变量。
密钥环的名称在您的组织中必须是唯一的。
CONTROL_PLANE_KEY_RING_NAME=YOUR_CONTROL_PLANE_KEY_RING_NAME
CONTROL_PLANE_KEY_NAME=YOUR_CONTROL_PLANE_KEY_NAME
CONSUMER_DATA_KEY_RING_NAME=YOUR_CONSUMER_DATA_KEY_RING_NAME
CONSUMER_DATA_KEY_NAME=YOUR_CONSUMER_DATA_REGION_KEY_NAME
其中:
- 创建新的密钥环:
gcloud kms keyrings create $CONTROL_PLANE_KEY_RING_NAME \ --location $CONTROL_PLANE_LOCATION \ --project $PROJECT_ID
gcloud kms keyrings create $CONSUMER_DATA_KEY_RING_NAME \ --location $CONSUMER_DATA_REGION \ --project $PROJECT_ID
- 创建密钥:
gcloud kms keys create $CONTROL_PLANE_KEY_NAME \ --keyring $CONTROL_PLANE_KEY_RING_NAME \ --location $CONTROL_PLANE_LOCATION \ --purpose "encryption" \ --project $PROJECT_ID
gcloud kms keys create $CONSUMER_DATA_KEY_NAME \ --keyring $CONSUMER_DATA_KEY_RING_NAME \ --location $CONSUMER_DATA_REGION \ --purpose "encryption" \ --project $PROJECT_ID
此命令会创建密钥并将其添加到密钥环中。
获取密钥 ID:
gcloud kms keys list \ --location=$CONTROL_PLANE_LOCATION \ --keyring=$CONTROL_PLANE_KEY_RING_NAME \ --project=$PROJECT_ID
gcloud kms keys list \ --location=$CONSUMER_DATA_REGION \ --keyring=$CONSUMER_DATA_KEY_RING_NAME \ --project=$PROJECT_ID
密钥 ID 的语法如下所示(类似于文件路径):
projects/PROJECT_ID/locations/CONTROL_PLANE_LOCATION/keyRings/CONTROL_PLANE_KEY_RING_NAME/cryptoKeys/CONTROL_PLANE_KEY_NAME
projects/PROJECT_ID/locations/CONSUMER_DATA_REGION/keyRings/CONSUMER_DATA_KEY_RING_NAME/cryptoKeys/CONSUMER_DATA_KEY_NAME
- 将密钥 ID 放入环境变量中。您将在后面的命令中使用此变量:
CONTROL_PLANE_KEY_ID=YOUR_CONTROL_PLANE_KEY_ID
CONSUMER_DATA_KEY_ID=YOUR_CONSUMER_DATA_KEY_ID
- 向 Apigee Service Agent 授予访问权限以使用新的密钥:
gcloud kms keys add-iam-policy-binding $CONTROL_PLANE_KEY_NAME \ --location $CONTROL_PLANE_LOCATION \ --keyring $CONTROL_PLANE_KEY_RING_NAME \ --member "serviceAccount:service-$PROJECT_NUMBER@gcp-sa-apigee.iam.gserviceaccount.com" \ --role roles/cloudkms.cryptoKeyEncrypterDecrypter \ --project $PROJECT_ID
gcloud kms keys add-iam-policy-binding $CONSUMER_DATA_KEY_NAME \ --location $CONSUMER_DATA_REGION \ --keyring $CONSUMER_DATA_KEY_RING_NAME \ --member "serviceAccount:service-$PROJECT_NUMBER@gcp-sa-apigee.iam.gserviceaccount.com" \ --role roles/cloudkms.cryptoKeyEncrypterDecrypter \ --project $PROJECT_ID
此命令将密钥绑定到 Apigee Service Agent。成功完成此请求后,gcloud 的响应将如下所示:
Updated IAM policy for key [runtime]. bindings: - members: - serviceAccount:service-1234567890@gcp-sa-apigee.iam.gserviceaccount.com role: roles/cloudkms.cryptoKeyEncrypterDecrypter etag: BwWqgEuCuwk= version: 1
如果出现如下错误:
INVALID_ARGUMENT: Role roles/cloudkms.cryptokms.cryptoKeyEncrypterDecrypter is not supported for this resource.
请务必使用项目编号,而不是服务账号电子邮件地址中的项目名称。
-
将以下请求发送到 Apigee organizations API 以创建组织:
无数据驻留
curl "https://apigee.googleapis.com/v1/organizations?parent=projects/$PROJECT_ID" \ -H "Authorization: Bearer $AUTH" \ -X POST \ -H "Content-Type:application/json" \ -d '{ "name":"'"$PROJECT_ID"'", "analyticsRegion":"'"$ANALYTICS_REGION"'", "runtimeType":"CLOUD", "billingType":"'"$BILLING_TYPE"'", "authorizedNetwork":"'"$NETWORK_NAME"'", "runtimeDatabaseEncryptionKeyName":"'"$RUNTIMEDB_KEY_ID"'" }'
其中:
-d
定义请求的数据载荷。此载荷必须包含以下内容:name
:标识您的新组织。它必须与您的项目 ID 相同。analyticsRegion
:指定用于存储分析数据的物理位置。runtimeType
:将此值设为CLOUD
。billingType
:指定已创建组织的结算类型。authorizedNetwork
:标识您在配置服务网络中指定的对等互连网络。runtimeDatabaseEncryptionKeyName
:您在上一步中创建的应用加密密钥的 ID。回想一下,ID 的结构类似于文件路径。例如:projects/my-project/locations/us-west1/keyRings/my-key-ring/cryptoKeys/my-key
数据驻留
使用 API 创建组织:
curl "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations?parent=projects/$PROJECT_ID" \ -H "Authorization: Bearer $AUTH" \ -X POST \ -H "Content-Type:application/json" \ -d '{ "name":"'"$PROJECT_ID"'", "runtimeType":"CLOUD", "billingType":"'"$BILLING_TYPE"'", "controlPlaneEncryptionKeyName":"'"$CONTROL_PLANE_KEY_ID"'", "apiConsumerDataLocation":"'"$CONSUMER_DATA_REGION"'", "apiConsumerDataEncryptionKeyName":"'"$CONSUMER_DATA_KEY_ID"'", "authorizedNetwork":"'"$NETWORK_NAME"'", "runtimeDatabaseEncryptionKeyName":"'"$RUNTIMEDB_KEY_ID"'" }'
其中:
-d
定义请求的数据载荷。此载荷必须包含以下内容:name
:标识您的新组织。它必须与您的项目 ID 相同。runtimeType
:将此值设为CLOUD
。billingType
:指定已创建组织的结算类型。controlPlaneEncryptionKeyName
:您的控制平面密钥 ID。apiConsumerDataLocation
:您还必须指定内部资源使用的子区域。如需了解支持的值,请参阅数据驻留区域。apiConsumerDataEncryptionKeyName
:您的使用方数据区域密钥 ID。authorizedNetwork
:标识您在配置服务网络中指定的对等互连网络。runtimeDatabaseEncryptionKeyName
:您在上一步中创建的应用加密密钥的 ID。回想一下,ID 的结构类似于文件路径。例如:
projects/my-project/locations/us-west1/keyRings/my-key-ring/cryptoKeys/my-key
执行此命令后,Apigee 会启动一项“长时间运行的操作”,该操作可能需要几分钟才能完成。
如果您收到错误消息,请检查数据载荷中变量值前后的引号的使用。请确保 $PROJECT_ID 变量由双引号-单引号-双引号括起,如以下示例所示:
"'"$PROJECT_ID"'"
如果您对请求值使用纯文本字符串(而不是环境变量),则可以在用英文单引号括起的载荷字符串中用英文双引号括住它们,如以下示例所示:
'{ "name":"my-gcp-project", ... }'
- 请稍等几分钟。
- 如需检查创建请求的状态,您可以向 Apigee List Organizations API 发送
GET
请求,如以下示例所示:无数据驻留
curl -H "Authorization: Bearer $AUTH" "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID"
数据驻留
curl -H "Authorization: Bearer $AUTH" "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$PROJECT_ID"
如果您看到此响应,则表示组织创建尚未完成:
{ "error": { "code": 403, "message": "Permission denied on resource \"organizations/apigee-docs-m\" (or it may not exist)", "status": "PERMISSION_DENIED" } }
如果 Apigee 成功创建了新组织,您将收到类似于以下内容的响应:
无数据驻留
{ "name": "my-cloud-project", "createdAt": "1592586495539", "lastModifiedAt": "1592586495539", "environments": [], "properties": { "property": [ { "name": "features.hybrid.enabled", "value": "true" }, { "name": "features.mart.connect.enabled", "value": "true" } ] }, "analyticsRegion": "us-west1", "runtimeType": "CLOUD", "subscriptionType": "PAID", "caCertificate": "YOUR_CERTIFICATE", "authorizedNetwork": "my-network", "projectId": "my-cloud-project" }
数据驻留
{ "name": "my-cloud-project", "createdAt": "1681412783749", "lastModifiedAt": "1681412783749", "environments": [ "test-env" ], "properties": { "property": [ { "name": "features.mart.connect.enabled", "value": "true" }, { "name": "features.hybrid.enabled", "value": "true" } ] }, "authorizedNetwork": "default", "runtimeType": "CLOUD", "subscriptionType": "PAID", "caCertificate": "YOUR_CERTIFICATE", "runtimeDatabaseEncryptionKeyName": "projects/my-cloud-project/locations/us/keyRings/my-key-ring/cryptoKeys/my-key-name", "projectId": "my-cloud-project", "state": "ACTIVE", "billingType": "PAYG", "addonsConfig": { "advancedApiOpsConfig": {}, "integrationConfig": {}, "monetizationConfig": {}, "connectorsPlatformConfig": {} }, "apiConsumerDataEncryptionKeyName": "projects/my-cloud-project/locations/us-central1/keyRings/my-key-ring/cryptoKeys/my-key-name", "controlPlaneEncryptionKeyName": "projects/my-cloud-project/locations/us/keyRings/my-key-ring/cryptoKeys/my-key-name", "apiConsumerDataLocation": "us-central1", "apigeeProjectId": "i0c2a37e80f9850ab-tp" }
如果 Apigee 返回 HTTP 错误响应,请参阅创建 Apigee 组织。
执行以下步骤以创建控制平面加密密钥环和密钥。
另请参阅:CMEK 问题排查。