4.4. 在 APIcast 中添加自定义策略
如果创建了自定义策略,则必须将它们添加到 APIcast 中。您执行此操作的方式取决于 APIcast 部署的位置。
您可以将自定义策略添加到以下 APIcast 自我管理部署中:
- APIcast 内置网关作为 OpenShift 中 3scale 内部部署的一部分
- APIcast on OpenShift 和 Docker 容器化环境
您无法将自定义策略添加到 APIcast 托管。
切勿直接在生产网关上进行策略更改。始终测试您的更改。
4.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-staging 和 apicast-production 标签都默认配置为自动启动新部署。为了避免对生产服务(或暂存)造成任何中断(如果您愿意),请禁用自动部署(在镜像更改时"自动启动新部署 "),或者为生产环境配置不同的镜像流标签(例如 amp-apicast:production)。
按照以下步骤将自定义策略添加到内部部署中:
- 使用策略示例对 https://github.com/3scale/apicast-example-policy [public 软件仓库进行分叉,或使用其内容创建私有存储库。您需要在 Git 存储库中提供自定义策略的代码,供 OpenShift 构建该镜像。请注意,为了使用私有 Git 存储库,您必须在 OpenShift 中设置机密。
- 在本地克隆存储库,为您的策略添加实施,并将更改推送到您的 Git 存储库。
更新
openshift.yml模板。特别是,更改以下参数:-
策略 BuildConfig 中的
spec.source.git.uri: https://github.com/3scale/apicast-example-policy.git- 将它更改为 Git 存储库位置。 -
自定义策略 BuildConfig 中的
spec.source.images[0].paths.sourcePath: /opt/app-root/policies/example- 把example改为您在存储库中的policies目录下添加的自定义策略名称。 -
(可选)更新 OpenShift 对象名称和镜像标签。但是,您必须确保更改是共同的(例如:
apicast-example-policyBuildConfig 构建),并推送apicast-policy:example镜像,然后被apicast-custom-policiesBuildConfig 作为源使用。因此,标签应该相同。
-
策略 BuildConfig 中的
运行以下命令来创建 OpenShift 对象:
oc new-app -f openshift.yml --param AMP_RELEASE=2.6.0
oc new-app -f openshift.yml --param AMP_RELEASE=2.6.0Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果构建没有自动启动,请运行以下两个命令:如果您更改了它,请将
apicast-example-policy替换为您自己的 BuildConfig 名称(如apicast-<name>-policy)。等待第一个命令完成,然后执行第二个命令。oc start-build apicast-example-policy oc start-build apicast-custom-policies
oc start-build apicast-example-policy oc start-build apicast-custom-policiesCopy to Clipboard Copied! Toggle word wrap Toggle overflow
如果 build-in APIcast 镜像在它们上有一个触发器,跟踪 amp-apicast:latest 镜像流中的更改,APIcast 模式的新部署将启动。在 apicast-staging 重新启动后,进入 admin 门户上的 Integration 页面,然后点击 Add Policy 按钮,查看您的自定义策略。选择并配置它后,点 Update & test in Staging Environment,使自定义策略在 staging APIcast 中正常工作。