5.4. 在 APIcast 中添加自定义策略


如果创建了自定义策略,则必须将它们添加到 APIcast 中。您执行此操作的方式取决于 APIcast 部署的位置。

您可以将自定义策略添加到以下 APIcast 自我管理部署中:

  • APIcast 内置网关作为 OpenShift 中 3scale 内部部署的一部分
  • APIcast on OpenShift 和 Docker 容器化环境

您无法将自定义策略添加到 APIcast 托管。

警告

切勿直接在生产网关上进行策略更改。始终测试您的更改。

5.4.1. 在 APIcast 内置中添加自定义策略

要将自定义 APIcast 策略添加到内部部署,您必须构建包含自定义策略的 OpenShift 镜像,并将其添加到您的部署中。Red Hat 3scale 提供了一个示例存储库,您可以使用 作为框架来创建和添加自定义策略到内部部署。

此示例存储库包含自定义策略的正确目录结构,以及用于创建镜像流和 BuildConfig 的模板,用于构建包含您创建的任何自定义策略的新 APIcast OpenShift 镜像。

警告

当您构建 apicast-custom-policies 时,构建过程 "pushes" a new image to the amp-apicast:latest 标签。当此镜像流标签上的镜像更改时(:latest),apicast-stagingapicast-production 标签都默认配置为自动启动新部署。为了避免对生产环境中的服务(或测试环境)造成任何中断,禁用自动部署("Automatically start a new deployment when the image changes" 复选框),或者为生产环境配置不同的镜像流标签(例如 amp-apicast:production)。

按照以下步骤将自定义策略添加到内部部署中:

  1. 使用策略示例对 https://github.com/3scale/apicast-example-policy [public 软件仓库进行分叉,或使用其内容创建私有存储库。您需要在 Git 存储库中提供自定义策略的代码,供 OpenShift 构建该镜像。请注意,为了使用私有 Git 存储库,您必须在 OpenShift 中设置机密。
  2. 在本地克隆存储库,为您的策略添加实施,并将更改推送到您的 Git 存储库。
  3. 更新 openshift.yml 模板。特别是,更改以下参数:

    1. 策略 BuildConfig 中的 spec.source.git.uri: https://github.com/3scale/apicast-example-policy.git - 将它更改为 Git 存储库位置。
    2. 自定义策略 BuildConfig 中的 spec.source.images[0].paths.sourcePath: /opt/app-root/policies/example - 把 example 改为您在存储库中的 policies 目录下添加的自定义策略名称。
    3. (可选)更新 OpenShift 对象名称和镜像标签。但是,您必须确保更改是一致的(例如: apicast-example-policy BuildConfig 构建并推送 apicast-policy:example 镜像,该镜像随后被 apicast-custom-policies BuildConfig 用作源)。因此,标签应该相同。
  4. 运行以下命令来创建 OpenShift 对象:

    oc new-app -f openshift.yml --param AMP_RELEASE=2.3.0
    Copy to Clipboard Toggle word wrap
  5. 如果构建没有自动启动,请运行以下两个命令。如果您更改了它,请将 apicast-example-policy 替换为您自己的 BuildConfig 名称,如 apicast-<name>-policy。等待第一个命令完成,然后执行第二个命令。

    oc start-build apicast-example-policy
    oc start-build apicast-custom-policies
    Copy to Clipboard Toggle word wrap

如果 build-in APIcast 镜像在它们上有一个触发器,跟踪 amp-apicast:latest 镜像流中的更改,APIcast 模式的新部署将启动。在 apicast-staging 重新启动后,进入 admin 门户上的 Integration 页面,然后点击 Add Policy 按钮,查看您的自定义策略。选择并配置它后,点 Update & test in Staging Environment,使自定义策略在 staging APIcast 中正常工作。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat