This is an automated email from the ASF dual-hosted git repository.
sylviasu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix-website.git
The following commit(s) were added to refs/heads/master by this push:
new d9f07b0ae87 docs: add APISIX 3.0.0-beta release blog (#1346)
d9f07b0ae87 is described below
commit d9f07b0ae87f32d29105e9cc4dd24313f4fdc8e1
Author: Sylvia <[email protected]>
AuthorDate: Wed Sep 28 16:33:24 2022 +0800
docs: add APISIX 3.0.0-beta release blog (#1346)
* docs: add APISIX 3.0.0-beta release blog
* update Lint comments
* update authors details
Co-authored-by: Fei Han <[email protected]>
Co-authored-by: Fei Han <[email protected]>
---
.../2022/09/28/apache-apisix-3.0.0-beta-release.md | 228 +++++++++++++++++++++
1 file changed, 228 insertions(+)
diff --git a/blog/zh/blog/2022/09/28/apache-apisix-3.0.0-beta-release.md
b/blog/zh/blog/2022/09/28/apache-apisix-3.0.0-beta-release.md
new file mode 100644
index 00000000000..34e5368e4bd
--- /dev/null
+++ b/blog/zh/blog/2022/09/28/apache-apisix-3.0.0-beta-release.md
@@ -0,0 +1,228 @@
+---
+title: "APISIX 3.0.0 预览版现已发布!带来丰富功能与迭代细节"
+authors:
+ - name: "罗泽轩"
+ title: "Author"
+ url: "https://github.com/spacewander"
+ image_url: "https://github.com/spacewander.png"
+ - name: "苏钰"
+ title: "Technical Writer"
+ url: "https://github.com/SylviaBABY"
+ image_url: "https://avatars.githubusercontent.com/u/39793568?v=4"
+keywords:
+ - Apache APISIX
+ - API 网关
+ - API 管理平台
+ - 版本发布
+ - 新功能
+description: Apache APISIX 3.0.0 预览版现已发布,为你整理了此次预览版上线的一些功能与调整细节。
+tags: [Community]
+---
+
+> Apache APISIX 3.0.0 预览版现已发布,为你整理了此次预览版上线的一些功能与调整细节。
+
+<!--truncate-->
+
+本次发布的新版本,是 3.0.0 的 Beta 预览版。作为 3.0 正式版的探路先锋,预览版已经包含了 3.0 大版本中带来的多项新功能。如果你想提前感受
APISIX 3.0 版本的功能盛宴,欢迎尝鲜此次预览版,也期待你在使用中向社区反馈相关体验。
+
+正因为 3.0.0-beta 版本新增了很多不向下兼容的改动,本次发版公告会一一列出这些改动,让各位用户在迁移配置时有所准备。
+
+## 新变化
+
+### 移动 config_center、etcd 和 Admin API 配置到 deployment 中
+
+在 3.0 版本中,调整了静态配置文件中的配置,所以你需要同步更新下 `config.yaml` 文件内的配置。
+
+- `config_center` 功能改由 `deployment` 中的 `config_provider`
实现([#7901](https://github.com/apache/apisix/pull/7901))
+- `etcd` 字段整体搬迁到 `deployment`
中([#7860](https://github.com/apache/apisix/pull/7860))
+- 以下 Admin API 配置移动到 `deployment` 中的 `admin`
字段([#7823](https://github.com/apache/apisix/pull/7823)):
+ - admin_key
+ - enable_admin_cors
+ - allow_admin
+ - admin_listen
+ - https_admin
+ - admin_api_mtls
+ - admin_api_version
+
+更多详情可参考最新的
`[config-default.yaml](https://github.com/apache/apisix/blob/master/conf/config-default.yaml)`
文件。
+
+### 移除多个已废弃配置
+
+在 3.0 新版本中,我们把许多之前标记为 `deprecated` 的配置进行了清理。
+
+在静态配置中,移除了以下若干字段:
+
+- 移除 `apisix.ssl` 中的 `enable_http2` 和
`listen_port`([#7717](https://github.com/apache/apisix/pull/7717))
+- 移除 `apisix.port_admin`([#7716](https://github.com/apache/apisix/pull/7716))
+- 移除
`etcd.health_check_retry`([#7676](https://github.com/apache/apisix/pull/7676))
+- 移除
`nginx_config.http.lua_shared_dicts`([#7677](https://github.com/apache/apisix/pull/7677))
+- 移除
`nginx_config.http.real_ip_header`([#7696](https://github.com/apache/apisix/pull/7696))
+
+在动态配置中,进行了以下调整:
+
+- 将插件配置的 `disable` 移到 `_meta`
中([#7707](https://github.com/apache/apisix/pull/7707))
+- 从 Route 中移除了
`service_protocol`([#7701](https://github.com/apache/apisix/pull/7701))
+
+此外还有具体插件级别上的改动:
+
+- authz-keycloak 中移除了 `audience`
字段([#7683](https://github.com/apache/apisix/pull/7683))
+- mqtt-proxy 中移除了 `upstream`
字段([#7694](https://github.com/apache/apisix/pull/7694))
+- error-log-logger 中把 TCP 相关配置放到 `tcp`
字段中([#7700](https://github.com/apache/apisix/pull/7700))
+- syslog 中移除了 `max_retry_times` 和 `retry_interval`
字段([#7699](https://github.com/apache/apisix/pull/7699))
+- proxy-rewrite 中移除了 `scheme`
字段([#7695](https://github.com/apache/apisix/pull/7695))
+
+### 调整 Admin API 响应格式
+
+我们在以下两个 PR 中调整了 Admin API 的响应格式:
+
+- [#7630](https://github.com/apache/apisix/pull/7630)
+- [#7622](https://github.com/apache/apisix/pull/7622)
+
+新的响应格式调整为以下类型。
+
+返回单个配置:
+
+```yaml
+{
+ "modifiedIndex": 2685183,
+ "value": {
+ "id": "1",
+ ...
+ },
+ "key": "/apisix/routes/1",
+ "createdIndex": 2684956
+}
+```
+
+返回多个配置:
+
+```yaml
+{
+ "list": [
+ {
+ "modifiedIndex": 2685183,
+ "value": {
+ "id": "1",
+ ...
+ },
+ "key": "/apisix/routes/1",
+ "createdIndex": 2684956
+ },
+ {
+ "modifiedIndex": 2685163,
+ "value": {
+ "id": "2",
+ ...
+ },
+ "key": "/apisix/routes/2",
+ "createdIndex": 2685163
+ }
+ ],
+ "total": 2
+}
+```
+
+### 其他
+
+- Admin API 的端口改为 9180([#7806](https://github.com/apache/apisix/pull/7806))
+- APISIX 将只支持 OpenResty 1.19.3.2
及以上版本([#7625](https://github.com/apache/apisix/pull/7625))
+- 调整了 Plugin Config 对象的优先级,同名插件配置的优先级由 Consumer > Plugin Config > Route >
Service 修改为 **Consumer > Route > Plugin Config >
Service**([#7614](https://github.com/apache/apisix/pull/7614))
+
+## 新功能
+
+### 新玩法:直接从 APISIX 发起 gRPC 请求
+
+从 3.0.0-beta 版本开始,APISIX 集成了 `grpc-client-nginx-module`,这是一个支持在 NGINX 中发起 gRPC
请求的模块。只需寥寥数十行 Lua 代码,即可完成跟 gRPC 服务的直接交互。
+
+在下方代码中,我们连接了监听 50051 端口的 gRPC 服务,发送一次 `{ name = "apisix" }` 来创建对应的
stream,然后发送三次请求,最后接收到了五次响应。
+
+```lua
+local core = require "apisix.core"
+local gcli = core.grpc
+assert(gcli.load("t/grpc_server_example/proto/helloworld.proto"))
+local conn = assert(gcli.connect("127.0.0.1:50051"))
+local st, err = conn:new_bidirectional_stream("helloworld.Greeter",
+ "SayHelloBidirectionalStream", { name = "apisix" })
+if not st then
+ ngx.status = 503
+ ngx.say(err)
+ return
+end
+
+for i = 1, 3 do
+ local ok, err = st:send({ name = "apisix" })
+ if not ok then
+ ngx.status = 503
+ ngx.say(err)
+ return
+ end
+end
+
+assert(st:close_send())
+for i = 1, 5 do
+ local res, err = st:recv()
+ if not res then
+ ngx.status = 503
+ ngx.say(err)
+ return
+ end
+ ngx.say(res.message)
+end
+```
+
+更多详细细节可参考[相关文档](https://github.com/api7/grpc-client-nginx-module)。
+
+目前 APISIX 对 `grpc-client-nginx-module` 的整合只是个开始,后续将会在 APISIX 中进行更多改造工作,比如直接使用
gRPC 来连接 APISIX 的控制面。
+
+### 新插件:elasticsearch-logger 和 tencent-cloud-cls
+
+APISIX 几乎每个新版本的发布都会引入新的日志插件,此次也不例外,引入了两个新的日志插件。
+
+`elasticsearch-logger` 插件是写入到 Elasticsearch 的日志插件。通过配置该插件,你可以把日志批量传输到
Elasticsearch。如下述配置,会将日志发送到 9200 端口的 Elasticsearch 上:
+
+```json
+ "plugins":{
+ "elasticsearch-logger":{
+ "endpoint_addr":"http://127.0.0.1:9200",
+ "field":{
+ "index":"services"
+ }
+ },
+ ...
+ },
+ ...
+```
+
+`tencent-cloud-cls`
插件则是对接[腾讯云日志服务](https://cloud.tencent.com/document/product/614)的插件。
+
+跟 `elasticsearch-logger` 类似,也需要配置相关服务器的地址,同时还需要配置用户的身份信息:
+
+```json
+ "plugins": {
+ "tencent-cloud-cls": {
+ "cls_host": "ap-guangzhou.cls.tencentyun.com",
+ "cls_topic": "${your CLS topic name}",
+ "global_tag": {
+ "module": "cls-logger",
+ "server_name": "YourApiGateWay"
+ },
+ "include_req_body": true,
+ "include_resp_body": true,
+ "secret_id": "${your secret id}",
+ "secret_key": "${your secret key}"
+ },
+ ...
+ },
+
+```
+
+### 现有功能拓展
+
+除了上面提到的几个大的新变化外,此次版本发布也包含很多值得一提的特性:
+
+- K8s 服务发现支持配置多个集群;
+- log-rotate 时支持限制日志文件的上限大小;
+- 新增 `openfunction` 插件,可以调用 OpenFunction 平台的 FaaS 函数;
+- 新增 `workflow` 插件,可以灵活执行更多逻辑。
+
+如果你对此次发版的完整内容感兴趣,请参考 3.0.0-beta 发布的
[changelog](https://github.com/apache/apisix/blob/release/2.99/docs/zh/latest/CHANGELOG.md#300-beta)。