使用 Apigee 和 AI Platform 的机器学习模型

本教程将教您如何通过 AI Platform Prediction 设置 Apigee

在提供机器学习模型时,数据准备和模型训练只是需要考虑的其中两个因素。除此之外,您还需要注意以下事项:

  • 在提供预测时考虑可扩缩性、性能和可用性。
  • 根据用户的身份限制其对功能的访问,例如,公司内部用户或来自外部合作伙伴组织的用户。
  • 使用 API 密钥执行配额和使用政策。
  • 管理 API 密钥的生命周期,特别是分发和撤消。
  • 通过手动或自动审批流程授予对机器学习 API 的访问权限。
  • 随着机器学习模型的更新,推出新版本的模型。

Google Cloud 为模型托管和 API 管理提供托管服务,以访问托管模型的预测功能。

AI Platform 是 Google Cloud 上提供的托管式可扩缩机器学习服务。除了使用 Google 的分布式基础架构进行训练外,AI Platform 还提供模型托管服务,以提供大规模的在线和批量预测。底层基础架构利用 Google 的全局负载平衡,为全球用户提供高性能预测。

对于低延时用例,AI Platform 在线预测通过公开直接在响应中返回预测的 REST API,实现托管模型的预测功能。托管模型的服务基础架构可根据需求自动扩缩,无需维护复杂配置或管理基础架构预配。 此外,AI Platform 还提供模型版本控制功能,从而简化了预测模型的更新过程。

如需为您的服务启用更广泛的 API 管理功能,可以将 AI Platform 在线预测与 Apigee 结合使用,以实现以下功能:

  • API 的精细安全性和访问控制政策。
  • 用于了解使用情况的 API 分析。
  • API 速率限制和其他配额的强制执行。
  • 通过开发者密钥对您的 API 进行第三方访问。
  • 利用 AI Platform 在线预测中托管的 AI Platform API 盈利。
  • 使用 API 表层定向预测请求,使模型的更改透明化。

目标

  • 使用 Apigee 为 AI Platform 托管的模型部署 API 代理。
  • 使用 API 密钥安全地访问托管模型。
  • 为 API 密钥分发指定手动和自动批准流程。
  • 创建 API 产品以实施不同的使用政策,如根据订户类型设定基于时间的配额。

费用

本教程使用 Google Cloud 的以下收费组件:

您可使用价格计算器根据您的预计使用量来估算费用。 Google Cloud 新用户可能有资格申请免费试用

除 Google Cloud 可计费组件之外,本教程还使用 Apigee

准备工作

创建 Google Cloud 项目

  1. 登录您的 Google 帐号。

    如果您还没有 Google 帐号,请注册新帐号

  2. 在 Google Cloud Console 的项目选择器页面上,选择或创建一个 Google Cloud 项目。

    转到项目选择器页面

  3. 确保您的 Cloud 项目已启用结算功能。 了解如何确认您的项目是否已启用结算功能

  4. 启用 AI Platform API。

    启用 API

如果您未安装 Cloud SDK,请使用 Cloud Shell 部署该应用。由于 Cloud Shell 提供预先安装了 Cloud SDK 的 shell 环境,因此本教程的其余部分将使用 Cloud Shell 进行说明。

创建 Apigee 帐号

按照创建 Apigee 帐号中的步骤操作。Apigee 免费提供评估帐号来试用解决方案,您可以使用该账号执行本教程中的步骤。

解决方案架构

在本教程中,您需要将 TensorFlow 模型部署到 AI Platform 并使用在线预测使其可供用户使用。对于每个托管模型,您要将 API 代理部署到 Apigee,后者使用服务帐号对来自客户端应用的请求进行身份验证。然后 Apigee 将请求转发给 AI Platform 在线预测。Apigee 执行使用配额、速率限制和 API 密钥验证等 API 政策,并可以通过使用您配置的 API 产品来进一步执行政策变体,例如基于 API 密钥的配额变体。下图演示了此架构。

将 TensorFlow 模型部署到 AI Platform 并使用在线预测使其可供用户使用

下表更详细地解释了图表中的概念:

概念 说明
应用 应用通过 Apigee 中托管的 API 调用机器学习模型的预测。首先,相关的 HTTP 请求被发送到由 API 代理管理的某个端点。接着,Apigee 中的 API 代理执行 API 密钥验证以进行身份验证,并应用与 API 密钥关联的 API 产品规定的特定级层的访问和功能。
API 代理 API 代理将来自代理端点(向客户端应用公开)的请求转发到目标端点。目标端点是您的托管模型的端点,用于请求 AI Platform 在线预测。
API 产品 API 产品捆绑 Apigee 资源(如 API 代理),以便为客户端应用开发者提供特定级层的权限和功能。例如,API 产品可执行访问限制、API 密钥批准方法以及用于访问托管模型上在线预测的 API 代理的其他配置。
托管模型 托管模型是部署到 AI Platform 的经过训练的机器学习模型。为了请求托管模型进行预测,您使用 AI Platform 在线预测批量预测

该解决方案的架构使用 Apigee 令外部用户能够通过 API 代理调用托管模型,而不是直接将 AI Platform 中的托管模型向用户公开。通过 Apigee 代理请求可以执行不同的使用政策。
模型资源 在本教程中,为了将托管的 TensorFlow 模型部署到 AI Platform,您使用 TensorFlow 的 SavedModel 格式导出模型,并将生成的模型资源存储在 Cloud Storage 存储分区中。然后,使用 AI Platform 在线或批量预测功能根据模型进行预测。

示例场景

在本教程中,您将使用 Apigee 为部署到 AI Platform 的一个简单的托管模型(基于人口普查数据的收入预测)创建两个示例 API 产品。

下图说明了两个示例 API 产品,包括低使用配额的收入预测试用版产品,以及提升配额的收入预测付费版产品。在示例场景中,您将注册两个开发者和应用,并在这两个 API 产品执行的不同限制条件下测试 API。

两个示例 API 产品,用于部署到 AI Platform 的简单托管模型

创建 Google Cloud 服务帐号

Apigee 需要 Google Cloud 服务帐号来对向 AI Platform 在线预测发出的请求进行身份验证。

GCLOUD

  1. 打开 Cloud Shell:

    转到 Cloud Shell

    除非另行说明,否则您将在本教程中全程使用 Cloud Shell。

  2. 为您的服务帐号名称设置一个环境变量:

    SERVICE_ACCOUNT=income-prediction-api@${GOOGLE_CLOUD_PROJECT}.iam.gserviceaccount.com
    
  3. 创建服务帐号:

    gcloud iam service-accounts create \
        income-prediction-api \
        --display-name "Apigee service account"
    
  4. 为服务帐号创建私钥:

    gcloud iam service-accounts keys create \
        --iam-account ${SERVICE_ACCOUNT} \
        ~/key.json
    

    此命令将私钥文件保存在 ${HOME}/key.json。请安全保存此文件,以备后续步骤使用。

控制台

  1. 在 Cloud Console 中,转到项目的 IAM 和管理员 > 服务帐号页面:

    转到“服务帐号”页面

  2. 点击创建服务帐号,然后输入该服务帐号的详细信息:

    1. 提供服务帐号名称,如 Income Prediction API
    2. 提供服务帐号 ID,如 income-prediction-api
    3. 点击创建
  3. 向此服务帐号授予对项目的访问权限(可选)页面上,将角色下拉列表留空,然后点击继续

  4. 向此服务帐号授予对项目的访问权限(可选)页面上,向下滚动并点击创建密钥

    1. 选择 JSON 作为密钥类型,该值为默认值。
    2. 点击创建。此时浏览器会开始下载私钥文件。请安全保存此文件,以备后续步骤使用。
    3. 点击完成

将收入预测模型部署到 AI Platform

本教程使用现有代码示例,通过人口普查数据训练收入预测模型。为方便起见,本教程的 GitHub 代码库中包含一个经过训练的模型。

完成以下步骤,将经过预先训练的收入预测模型部署到 AI Platform:

  1. 打开 Cloud Shell:

    转到 Cloud Shell

  2. 在 Cloud Shell 中,定义您将在后面的命令中使用的环境变量:

    GCS_MODEL_BUCKET=${GOOGLE_CLOUD_PROJECT}-ml-models
    MODEL_NAME=census
    MODEL_VERSION=v1
    MODEL_REGION=us-central1
    
  3. 从 GitHub 复制教程文件:

    cd ${HOME}
    
    git clone https://github.com/GoogleCloudPlatform/cloudml-apigee-serving.git
    
  4. 创建 Cloud Storage 区域存储分区以存储预测模型:

    gsutil mb -c regional -l ${MODEL_REGION} \
        -p ${GOOGLE_CLOUD_PROJECT} gs://${GCS_MODEL_BUCKET}
    
  5. 提取模型并将其复制到 Cloud Storage:

    cd ${HOME}/cloudml-apigee-serving/model
    
    tar zxvf census.tar.gz
    
    gsutil -m cp -rv census gs://${GCS_MODEL_BUCKET}
    
  6. 在 AI Platform 中创建预测模型:

    gcloud ml-engine models create ${MODEL_NAME} \
         --regions ${MODEL_REGION}
    
  7. 创建新版本的预测模型:

    gcloud ml-engine versions create ${MODEL_VERSION} \
        --model ${MODEL_NAME} \
        --origin gs://${GCS_MODEL_BUCKET}/census \
        --runtime-version 1.6
    
  8. 获取有关新版本的信息:

    gcloud ml-engine versions describe ${MODEL_VERSION} \
        --model ${MODEL_NAME}
    

    输出类似于以下内容:

    deploymentUri: your_bucket_path
    framework: TENSORFLOW
    isDefault: true
    lastUseTime: '2018-05-07T04:41:22Z'
    name: projects/your_project/models/census/versions/v1
    pythonVersion: '2.7'
    runtimeVersion: '1.6'
    state: READY
    
  9. 在继续操作之前,请确保您可以成功运行预测:

    gcloud ml-engine predict \
        --model ${MODEL_NAME} \
        --version ${MODEL_VERSION} \
        --json-instances ${HOME}/cmle-op-apigee-tutorial/model/test.json
    

    输出类似于以下内容。此输出可验证您的托管模型已正确部署到 AI Platform,并且可通过 AI Platform 在线预测进行调用。

    CLASS_IDS  CLASSES  LOGISTIC               LOGITS                PROBABILITIES
    [0]        [u'0']   [0.23072466254234314]  [-1.204223871231079]  [0.7692753076553345, 0.23072466254234314]
    

将 API 代理部署到 Apigee

API 代理为客户端提供了一种通过外部 API 调用托管模型的方法。API 代理通过将来自 Apigee 托管的外部 API 接口的客户端请求代理到托管模型的 AI Platform predict API 来执行此任务。该接口实现 API 表层模式,在部署新模型和模型版本时可保护用户免受目标端点更改的影响。如需了解详情,请参阅 API 代理

在 API 代理配置中,您使用来配置 API 请求和响应中执行的处理步骤。 处理步骤可包括诸如生成和签署 JSON Web 令牌 (JWT)、添加请求和响应标头,或使用特定 Apigee 功能等活动。Apigee 为执行这些活动提供了多项内置 API 政策。您可以将这些政策添加到自己的 API 流中。

Apigee 提供了若干种部署 API 代理的方法,包括 Web 管理界面(需要登录)、管理 API命令行工具

在本教程中,您将使用 apigeetool 创建所需的 Apigee 资源并部署 API 代理。

  1. 打开 Cloud Shell:

    转到 Cloud Shell

  2. 在 Cloud Shell 中,设置环境变量,以备后续步骤使用。将 [YOUR_APIGEE_USER_EMAIL][YOUR_APIGEE_ORGANIZATION][YOUR_APIGEE_ENVIRONMENT][YOUR_APIGEE_USER_PASSWORD] 替换为您自己的值。

    • 您的 Apigee 帐号将被自动授予组织管理员角色,并具有对 Apigee 组织内所有资源的超级用户访问权限。如需了解详情,请参阅不同 Apigee 角色的职能
    • 您的 Apigee 组织将被自动创建。您可以在显示帐号名的页面左上角的 Apigee Web 管理界面中找到组织的名称。
    • 此时系统已经为您自动创建了名为测试生产的两个 Apigee 环境。您可以在以下步骤中使用任一环境。

    1. 导出 apigeetool 所需的环境变量:

      export APIGEE_USERNAME=[YOUR_APIGEE_USER_EMAIL]
      export APIGEE_ORGANIZATION=[YOUR_APIGEE_ORGANIZATION]
      
    2. 在需要的情况下,导出 Apigee 密码的环境变量:

      export APIGEE_PASSWORD=[YOUR_APIGEE_USER_PASSWORD]
      
    3. 设置 Apigee 环境所需的其他环境变量:

      APIGEE_ENVIRONMENT=[YOUR_APIGEE_ENVIRONMENT]
      
    4. 将默认 Apigee 缓存名称保留为“google”:

      APIGEE_CACHE=google
    5. 为 AI Platform 模型名称和版本设置环境变量。这些变量应与先前部署模型版本时使用的值相同:

      MODEL_NAME=census
      MODEL_VERSION=v1
      
    6. 为 Apigee 用来调用 AI Platform 在线预测的服务帐号设置环境变量:

      SERVICE_ACCOUNT=income-prediction-api@${GOOGLE_CLOUD_PROJECT}.iam.gserviceaccount.com
      
  3. 安装 apigeetool,以用于创建 Apigee 资源并部署 API 代理:

    npm install -g apigeetool
    
    alias apigeetool=$(npm config get prefix)/bin/apigeetool
    
  4. 从之前保存的 JSON 凭据文件中提取服务帐号私钥:

    PRIVATE_KEY=`sed -rne 's/^.*\"private_key\": \"(.*)\",$/\1/p' <  ${HOME}/key.json`
    
  5. 创建加密的键值映射 (KVM) 以在 Apigee 中安全存储服务帐号名称和私钥:

    apigeetool createkvmmap \
        -e ${APIGEE_ENVIRONMENT} \
        --encrypted \
        --mapName "secrets"
    
  6. 将服务帐号名称添加到加密的 KVM:

    apigeetool addEntryToKVM \
        -e ${APIGEE_ENVIRONMENT} \
        --mapName "secrets" \
        --entryName "service-account" \
        --entryValue "${SERVICE_ACCOUNT}"
    
  7. 将私钥添加到加密的 KVM:

    apigeetool addEntryToKVM \
        -e ${APIGEE_ENVIRONMENT} \
        --mapName "secrets" \
        --entryName "private-key" \
        --entryValue "`echo -e ${PRIVATE_KEY}`"
    
  8. 将 API 代理端点更新为 AI Platform 中的已部署模型。API 代理会将请求转发给 AI Platform 在线预测中托管模型的 projects.predict 方法。

    sed -i \
        -e "s/\[project\]/${GOOGLE_CLOUD_PROJECT}/" \
        -e "s/\[model-name\]/${MODEL_NAME}/" \
        -e "s/\[model-version\]/${MODEL_VERSION}/" \
        ${HOME}/cmle-op-apigee-tutorial/apiproxy/targets/default.xml
    
  9. 创建 Apigee 缓存,以临时存储从 Google Authorization Server 返回的 OAuth2 访问令牌

    apigeetool createcache \
        -e ${APIGEE_ENVIRONMENT} \
        -z ${APIGEE_CACHE}
    
  10. 授予身份和访问权限管理 (IAM) 权限,允许您的服务帐号请求您的模型进行预测。您可以通过为 census 模型添加 IAM 政策绑定来授予这些权限,如下所示:

    gcloud ml-engine models add-iam-policy-binding \
        ${MODEL_NAME} \
        --member=serviceAccount:${SERVICE_ACCOUNT} \
        --role=roles/ml.modelUser
    
  11. 部署 API 代理:

    apigeetool deployproxy  \
        -e ${APIGEE_ENVIRONMENT} \
        -n income_prediction -d ${HOME}/cmle-op-apigee-tutorial
    

创建 API 产品以分发您的 API

您可以使用 Apigee API 产品来配置向开发者公开的特定级层的访问和功能。 例如,您可以创建两个 API 产品,以分别反映 AI Platform 中托管模型的“试用”和“付费”级服务,其中每一级按允许的配额、可用的功能和其他特性进行区分。

在本部分中,您将创建两个 API 产品,即收入预测试用版收入预测付费版。您将两个 API 产品都配置为使用您在上一步部署的 API 代理,但分别实施不同的使用政策,如下所述:

  • 收入预测试用版 API 产品执行较低的每日使用配额,但允许开发者通过自动化流程获取 API 密钥。此政策可能反映某个“免费试用”级,您在其中提供对 API 的简单访问权限以及相对较低的用量上限。

  • 收入预测付费版 API 产品提供更高的每日使用配额,但要求开发者完成手动审批流程。此政策可能反映 API 的某个付费级,该层级提供了更高的访问权限和使用上限。

如需创建 API 产品,请按照下列步骤操作。

  1. 创建收入预测试用版 API 产品:

    apigeetool createProduct \
        --approvalType "auto" \
        --environments ${APIGEE_ENVIRONMENT} \
        --proxies income_prediction \
        --productName "income_prediction_trial" \
        --productDesc "Free trial API for income prediction." \
        --quota 10 \
        --quotaInterval 1 \
        --quotaTimeUnit "day"
    
  2. 创建收入预测付费版 API 产品:

    apigeetool createProduct \
        --approvalType "manual" \
        --environments ${APIGEE_ENVIRONMENT} \
        --proxies income_prediction \
        --productName "income_prediction_premium" \
        --productDesc "Premium API for income prediction." \
        --quota 10000 \
        --quotaInterval 1 \
        --quotaTimeUnit "day"
    

创建开发者资料

开发者资料可由 Apigee 管理员创建,也可由个人使用自助注册流程创建。

  1. John 创建开发者资料:

    apigeetool createDeveloper \
        --email john@example.com \
        --firstName John \
        --lastName Citizen \
        --userName john@example.com
    
  2. Sally 创建第二个开发者资料:

    apigeetool createDeveloper \
        --email sally@example.com \
        --firstName Sally \
        --lastName Resident \
        --userName sally@example.com
    

注册开发者应用

在本部分中,您将为两个开发者资料手动注册开发者应用。

成功完成以下各个命令后,您会看到打印至终端的 JSON 响应。针对每个命令,请记下 consumerKey 属性的值,该值是为开发者应用生成的 API 密钥。

  1. 注册开发者应用 FooApp 并将其与 John 相关联,以便与收入预测试用版 API 产品一起使用。此命令使用 jq 从响应中提取 consumerKey 属性的值。记下该值。

    FOOAPP_API_KEY="$(apigeetool createApp \
        --apiProducts "income_prediction_trial" \
        --name "FooApp" \
        --email john@example.com \
        | jq -r '.credentials[0].consumerKey')"
    
  2. 注册开发者应用 BarApp 并将其与 Sally 相关联,以便与收入预测付费版 API 产品一起使用。 记下输出中 consumerKey 的值。

    BARAPP_API_KEY="$(apigeetool createApp \
        --apiProducts "income_prediction_premium" \
        --name "BarApp" \
        --email sally@example.com \
        | jq -r '.credentials[0].consumerKey')"
    

测试 API 代理

如需测试 API 代理,您现在可以使用 API 密钥来调用 Income Prediction API。

  1. 测试 FooApp 应用的 API 密钥(consumerKey 属性的值),该应用已注册在开发者 John 名下。

    curl -s -X POST \
        -H "Content-Type: application/json" \
        -H "X-APIKEY: ${FOOAPP_API_KEY}" \
        -d '{
            "instances": [{
                "age": 25,
                "workclass": "Private",
                "education": "Some-college",
                "education_num": 1,
                "marital_status": "Never-married",
                "occupation": "Other-service",
                "relationship": "Other-relative",
                "race": "Other",
                "gender": "Female",
                "capital_gain": 0,
                "capital_loss": 0,
                "hours_per_week": 40,
                "native_country": "United-States"}]
        }' \
        https://${APIGEE_ORGANIZATION}-${APIGEE_ENVIRONMENT}.apigee.net/ml/census/v1/predict
    

    如果测试成功,则响应类似于以下内容:

    {
        "predictions":[
            {
                "probabilities":[
                    0.7692753076553345,
                    0.23072466254234314
                ],
                "class_ids":[
                    0
                ],
                "classes":[
                    "0"
                ],
                "logits":[
                    -1.204223871231079
                ],
                "logistic":[
                    0.23072466254234314
                ]
            }
        ]
    }
    

    重复请求十次以用尽配额:

    for i in `seq 10`; do !! | jq '.' ; done
    

    超过配额时,Apigee 会返回错误:

    {
        "fault":{
            "detail":{
                "errorcode": "policies.ratelimit.QuotaViolation"
            },
            "faultstring": "Rate limit quota violation. Quota limit exceeded. Identifier : \_default"
        }
    }
    

    如果 API 密钥已从请求标头中删除,则请求会被拒绝:

    {
        "fault":{
            "faultstring": "Failed to resolve API Key variable request.header.X-APIKEY",
            "detail":{
               "errorcode": "steps.oauth.v2.FailedToResolveAPIKey"
            }
        }
    }
    
  2. 测试 BarApp 应用的 API 密钥(consumerKey 属性的值),该应用已注册在开发者 Sally 名下。

    curl -s -X POST \
        -H "Content-Type: application/json" \
        -H "X-APIKEY: ${BARAPP_API_KEY}" \
        -d '{
            "instances": [{
                "age": 25,
                "workclass": "Private",
                "education": "Some-college",
                "education_num": 1,
                "marital_status": "Never-married",
                "occupation": "Other-service",
                "relationship": "Other-relative",
                "race": "Other",
                "gender": "Female",
                "capital_gain": 0,
                "capital_loss": 0,
                "hours_per_week": 40,
                "native_country": "United-States"}]
        }' \
        https://${APIGEE_ORGANIZATION}-${APIGEE_ENVIRONMENT}.apigee.net/ml/census/v1/predict | jq '.'
    

    输出类似于以下内容,因为该 API 密钥的 API 产品尚未获得批准:

    {
        "fault": {
            "faultstring": "Invalid ApiKey for given resource",
            "detail": {
                "errorcode": "oauth.v2.InvalidApiKeyForGivenResource"
            }
        }
    }
    

批准和撤消 API 产品

在上一步中,API 代理在使用 BarApp 应用的 API 密钥时返回错误,因为该 API 产品尚未获得批准,无法与 API 密钥搭配使用。

如需批准 API 产品与 BarApp API 密钥搭配使用,您可以使用 Apigee Management API。或者,您也可以使用 Apigee 网页界面来批准 API 产品。如需了解详情,请参阅使用网页界面手动批准或撤消 API 密钥

在 Cloud Shell 中完成以下步骤,以使用 Apigee Management API 批准 API 产品。

  1. 设置在之后的命令中需要用到的环境变量:

    DEVELOPER_EMAIL=sally@example.com
    APP_NAME=BarApp
    API_PRODUCT=income_prediction_premium
    
  2. 调用 Apigee Management API 以批准 API 产品与 API 密钥一起使用:

    curl -s -X POST \
        -u "${APIGEE_USERNAME}" \
        --header "Content-Type: application/octet-stream" \
        "https://api.enterprise.apigee.com/v1/organizations/${APIGEE_ORGANIZATION}/developers/${DEVELOPER_EMAIL}/apps/${APP_NAME}/keys/${BARAPP_API_KEY}/apiproducts/${API_PRODUCT}?action=approve"
    
  3. 使用 API 密钥重试 API 请求:

    curl -s -X POST \
        -H "Content-Type: application/json" \
        -H "X-APIKEY: ${BARAPP_API_KEY}" \
        -d '{
            "instances": [{
                "age": 25,
                "workclass": "Private",
                "education": "Some-college",
                "education_num": 1,
                "marital_status": "Never-married",
                "occupation": "Other-service",
                "relationship": "Other-relative",
                "race": "Other",
                "gender": "Female",
                "capital_gain": 0,
                "capital_loss": 0,
                "hours_per_week": 40,
                "native_country": "United-States"}]
        }' \
        https://${APIGEE_ORGANIZATION}-${APIGEE_ENVIRONMENT}.apigee.net/ml/census/v1/predict | jq '.'
    

    输出类似于以下内容,因为 API 密钥的 API 产品已获批准:

    {
        "predictions":[
            {
                "probabilities":[
                    0.7692753076553345,
                    0.23072466254234314
                ],
                "class_ids":[
                    0
                ],
                "classes":[
                    "0"
                ],
                "logits":[
                    -1.204223871231079
                ],
                "logistic":[
                    0.23072466254234314
                ]
            }
        ]
    }
    

使用开发者门户启用自助注册

在本教程中,您使用 Apigee 管理帐号创建了开发者资料、应用和 API 密钥。

如果希望为您的 API 产品启用自助注册,通过开发者服务门户即可完成。 此门户允许用户注册开发者资料和应用,并通过自助服务流生成 API 密钥。启用自助服务门户后,用户可以通过自动流程获取对您的 API 的访问权限。 根据您的需要,使用此类自动化流程的 API 密钥审核可以自动进行,也可仍然需要手动审核。

Apigee 提供了一个基于 Web 的图形工具,方便您构建开发者门户。如需了解详情,请参阅如何为 API 产品构建开发者门户

清理

为避免因本教程中使用的资源导致您的 Google Cloud 帐号产生费用,请删除包含这些资源的项目,或者保留项目但删除各个资源。

  • 删除项目。
  • 关闭您的 Apigee 试用帐号。
  • 停止服务 API 代理请求。

删除项目

  1. 在 Cloud Console 中,转到管理资源页面。

    转到“管理资源”

  2. 在项目列表中,选择要删除的项目,然后点击删除
  3. 在对话框中输入项目 ID,然后点击关闭以删除项目。

关闭您的 Apigee 试用帐号

试用期到期后,您的 Apigee 试用帐号将自动关闭。您无需采取任何具体操作来删除试用帐号。

停止服务 API 代理请求

若要停止服务 API 代理请求,请取消部署或删除 API 代理。另外,为防止新的注册,请删除所有开发者门户

  1. 在 Cloud Shell 中,使用 apigeetool 取消部署 API 代理:

    apigeetool undeploy \
        -u ${APIGEE_USERNAME} \
        -o ${APIGEE_ORGANIZATION} \
        -n income_prediction
        -e ${APIGEE_ENVIRONMENT} \
        -r 1 \
        -n income_prediction
    

    输出类似于以下内容:

    "income_prediction" Revision 1
      undeployed
      environment = test
      base path = /
    

后续步骤