apache / apisix

The Cloud-Native API Gateway
https://apisix.apache.org/blog/
Apache License 2.0
14.45k stars 2.52k forks source link

help request: Error Request Error Code: 10000 for custom plugins #8805

Closed amyrprv closed 1 year ago

amyrprv commented 1 year ago

Description

Hello, I duplicate example-plugin in plugins and tried to add a new plugin but when I try to update a route I get the below error I reload Apisix with apisix reload after changing

error:

Request Error Code: 10000
schema validate failed: schema not found, path: plugins.simple

route:

{
  "uri": "/*",
  "name": "test",
  "methods": [
    "GET",
    "POST",
    "PUT",
    "DELETE",
    "PATCH",
    "HEAD",
    "OPTIONS",
    "CONNECT",
    "TRACE",
    "PURGE"
  ],
  "plugins": {
    "simple": {
      "i": 12
    },
    "proxy-rewrite": {
      "uri": "/"
    }
  },
  "upstream_id": "445223288705122843",
  "status": 1
}

dokcer-compose:

version: "3"

services:
  apisix-dashboard:
    image: apache/apisix-dashboard:2.15.0-alpine
    restart: always
    volumes:
    - ./dashboard_conf/conf.yaml:/usr/local/apisix-dashboard/conf/conf.yaml
    ports:
    - "9000:9000"
    networks:
      apisix:

  apisix:
    image: apache/apisix:latest
    restart: always
    volumes:
      - ./apisix_log:/usr/local/apisix/logs
      - ./apisix_conf/config.yaml:/usr/local/apisix/conf/config.yaml:ro
      - ./apisix_plugins:/usr/local/apisix/apisix/plugins
    depends_on:
      - etcd
    ##network_mode: host
    ports:
      - "9180:9180/tcp"
      - "9080:9080/tcp"
      - "9443:9443/tcp"
      - "9092:9092/tcp"
    networks:
      apisix:

  etcd:
    image: bitnami/etcd:3.4.15
    restart: always
    volumes:
      - etcd_data:/bitnami/etcd
    environment:
      ETCD_ENABLE_V2: "true"
      ALLOW_NONE_AUTHENTICATION: "yes"
      ETCD_ADVERTISE_CLIENT_URLS: "http://etcd:2379"
      ETCD_LISTEN_CLIENT_URLS: "http://0.0.0.0:2379"
    ports:
      - "2379:2379/tcp"
    networks:
      apisix:

networks:
  apisix:
    driver: bridge

volumes:
  etcd_data:
    driver: local

config.yaml:

apisix:
  node_listen: 9080 # APISIX listening port
  enable_ipv6: false

  enable_control: true
  control:
    ip: "0.0.0.0"
    port: 9092

deployment:
  admin:
    allow_admin: # http://nginx.org/en/docs/http/ngx_http_access_module.html#allow
      - 0.0.0.0/0 # We need to restrict ip access rules for security. 0.0.0.0/0 is for test.

    admin_key:
      - name: "admin"
        key: edd1c9f034335f136f87ad84b625c8f1
        role: admin # admin: manage all configuration data

      - name: "viewer"
        key: 4054f7cf07e344346cd3f287985e76a2
        role: viewer

  etcd:
    host: # it's possible to define multiple etcd hosts addresses of the same etcd cluster.
      - "http://etcd:2379" # multiple etcd address
    prefix: "/apisix" # apisix configurations prefix
    timeout: 30 # 30 seconds

plugins:                          # plugin list (sorted by priority)
  - real-ip                        # priority: 23000
  - ai                             # priority: 22900
  - client-control                 # priority: 22000
  - proxy-control                  # priority: 21990
  - request-id                     # priority: 12015
  - zipkin                         # priority: 12011
  #- skywalking                    # priority: 12010
  #- opentelemetry                 # priority: 12009
  - ext-plugin-pre-req             # priority: 12000
  - fault-injection                # priority: 11000
  - mocking                        # priority: 10900
  - serverless-pre-function        # priority: 10000
  #- batch-requests                # priority: 4010
  - cors                           # priority: 4000
  - ip-restriction                 # priority: 3000
  - ua-restriction                 # priority: 2999
  - referer-restriction            # priority: 2990
  - csrf                           # priority: 2980
  - uri-blocker                    # priority: 2900
  - request-validation             # priority: 2800
  - openid-connect                 # priority: 2599
  - cas-auth                       # priority: 2597
  - authz-casbin                   # priority: 2560
  - authz-casdoor                  # priority: 2559
  - wolf-rbac                      # priority: 2555
  - ldap-auth                      # priority: 2540
  - hmac-auth                      # priority: 2530
  - basic-auth                     # priority: 2520
  - jwt-auth                       # priority: 2510
  - key-auth                       # priority: 2500
  - consumer-restriction           # priority: 2400
  - forward-auth                   # priority: 2002
  - opa                            # priority: 2001
  - authz-keycloak                 # priority: 2000
  #- error-log-logger              # priority: 1091
  - proxy-mirror                   # priority: 1010
  - proxy-cache                    # priority: 1009
  - proxy-rewrite                  # priority: 1008
  - workflow                       # priority: 1006
  - api-breaker                    # priority: 1005
  - limit-conn                     # priority: 1003
  - limit-count                    # priority: 1002
  - limit-req                      # priority: 1001
  #- node-status                   # priority: 1000
  - gzip                           # priority: 995
  - server-info                    # priority: 990
  - traffic-split                  # priority: 966
  - redirect                       # priority: 900
  - response-rewrite               # priority: 899
  - kafka-proxy                    # priority: 508
  #- dubbo-proxy                   # priority: 507
  - grpc-transcode                 # priority: 506
  - grpc-web                       # priority: 505
  - public-api                     # priority: 501
  - prometheus                     # priority: 500
  - datadog                        # priority: 495
  - elasticsearch-logger           # priority: 413
  - echo                           # priority: 412
  - loggly                         # priority: 411
  - http-logger                    # priority: 410
  - splunk-hec-logging             # priority: 409
  - skywalking-logger              # priority: 408
  - google-cloud-logging           # priority: 407
  - sls-logger                     # priority: 406
  - tcp-logger                     # priority: 405
  - kafka-logger                   # priority: 403
  - rocketmq-logger                # priority: 402
  - syslog                         # priority: 401
  - udp-logger                     # priority: 400
  - file-logger                    # priority: 399
  - clickhouse-logger              # priority: 398
  - tencent-cloud-cls              # priority: 397
  - inspect                        # priority: 200
  #- log-rotate                    # priority: 100
  # <- recommend to use priority (0, 100) for your custom plugins
  - example-plugin                 # priority: 0
  - simple
  #- gm                            # priority: -43
  - aws-lambda                     # priority: -1899
  - azure-functions                # priority: -1900
  - openwhisk                      # priority: -1901
  - openfunction                   # priority: -1902
  - serverless-post-function       # priority: -2000
  - ext-plugin-post-req            # priority: -3000
  - ext-plugin-post-resp           # priority: -4000

simple.lua:

local ngx = ngx
local core = require("apisix.core")
local plugin = require("apisix.plugin")
local upstream = require("apisix.upstream")

local schema = {
    type = "object",
    properties = {
        i = {type = "number", minimum = 0},
        s = {type = "string"},
        t = {type = "array", minItems = 1},
        ip = {type = "string"},
        port = {type = "integer"},
    },
    required = {"i"},
}

local metadata_schema = {
    type = "object",
    properties = {
        ikey = {type = "number", minimum = 0},
        skey = {type = "string"},
    },
    required = {"ikey", "skey"},
}

local plugin_name = "simple"

local _M = {
    version = 0.1,
    priority = 0,
    name = plugin_name,
    schema = schema,
    metadata_schema = metadata_schema,
}

function _M.check_schema(conf, schema_type)
    if schema_type == core.schema.TYPE_METADATA then
        return core.schema.check(metadata_schema, conf)
    end
    return core.schema.check(schema, conf)
end

function _M.init()
    -- call this function when plugin is loaded
    local attr = plugin.plugin_attr(plugin_name)
    if attr then
        core.log.info(plugin_name, " get plugin attr val: ", attr.val)
    end
end

function _M.destroy()
    -- call this function when plugin is unloaded
end

function _M.rewrite(conf, ctx)
    core.log.warn("plugin rewrite phase, conf: ", core.json.encode(conf))
    core.log.warn("conf_type: ", ctx.conf_type)
    core.log.warn("conf_id: ", ctx.conf_id)
    core.log.warn("conf_version: ", ctx.conf_version)
end

function _M.access(conf, ctx)
    core.log.warn("plugin access phase, conf: ", core.json.encode(conf))
    -- return 200, {message = "hit example plugin"}

    if not conf.ip then
        return
    end

    local up_conf = {
        type = "roundrobin",
        nodes = {
            {host = conf.ip, port = conf.port, weight = 1}
        }
    }

    local ok, err = upstream.check_schema(up_conf)
    if not ok then
        return 500, err
    end

    local matched_route = ctx.matched_route
    upstream.set(ctx, up_conf.type .. "#route_" .. matched_route.value.id,
                 ctx.conf_version, up_conf)
    return
end

function _M.body_filter(conf, ctx)
    core.log.warn("plugin body_filter phase, eof: ", ngx.arg[2],
                  ", conf: ", core.json.encode(conf))
end

function _M.delayed_body_filter(conf, ctx)
    core.log.warn("plugin delayed_body_filter phase, eof: ", ngx.arg[2],
                  ", conf: ", core.json.encode(conf))
end

local function hello()
    local args = ngx.req.get_uri_args()
    if args["json"] then
        return 200, {msg = "world"}
    else
        return 200, "world\n"
    end
end

function _M.control_api()
    return {
        {
            methods = {"GET"},
            uris = {"/v1/plugin/example-plugin/hello"},
            handler = hello,
        }
    }
end

return _M

error.log:

2023/02/07 11:34:35 [warn] 50#50: *1 [lua] plugin.lua:202: load(): new plugins: {"server-info":true,"hmac-auth":true,"azure-functions":true,"real-ip":true,"wolf-rbac":true,"serverless-pre-function":true,"kafka-proxy":true,"public-api":true,"splunk-hec-logging":true,"google-cloud-logging":true,"tcp-logger":true,"authz-keycloak":true,"authz-casbin":true,"cas-auth":true,"opa":true,"rocketmq-logger":true,"jwt-auth":true,"prometheus":true,"redirect":true,"cors":true,"request-validation":true,"ip-restriction":true,"openfunction":true,"mocking":true,"request-id":true,"ext-plugin-post-req":true,"limit-conn":true,"udp-logger":true,"sls-logger":true,"ext-plugin-pre-req":true,"echo":true,"workflow":true,"client-control":true,"proxy-cache":true,"traffic-split":true,"ldap-auth":true,"example-plugin":true,"authz-casdoor":true,"proxy-mirror":true,"skywalking-logger":true,"limit-req":true,"kafka-logger":true,"response-rewrite":true,"openid-connect":true,"key-auth":true,"referer-restriction":true,"uri-blocker":true,"ext-plugin-post-resp":true,"basic-auth":true,"zipkin":true,"aws-lambda":true,"openwhisk":true,"simple":true,"gzip":true,"tencent-cloud-cls":true,"clickhouse-logger":true,"consumer-restriction":true,"forward-auth":true,"http-logger":true,"ua-restriction":true,"ai":true,"grpc-transcode":true,"proxy-control":true,"fault-injection":true,"limit-count":true,"serverless-post-function":true,"syslog":true,"api-breaker":true,"inspect":true,"file-logger":true,"datadog":true,"grpc-web":true,"elasticsearch-logger":true,"csrf":true,"loggly":true,"proxy-rewrite":true}, context: init_worker_by_lua*
2023/02/07 11:34:35 [warn] 52#52: *4 [lua] plugin.lua:202: load(): new plugins: {"server-info":true,"hmac-auth":true,"azure-functions":true,"real-ip":true,"wolf-rbac":true,"serverless-pre-function":true,"kafka-proxy":true,"public-api":true,"splunk-hec-logging":true,"google-cloud-logging":true,"tcp-logger":true,"authz-keycloak":true,"authz-casbin":true,"cas-auth":true,"opa":true,"rocketmq-logger":true,"jwt-auth":true,"prometheus":true,"redirect":true,"cors":true,"request-validation":true,"ip-restriction":true,"openfunction":true,"mocking":true,"request-id":true,"ext-plugin-post-req":true,"limit-conn":true,"udp-logger":true,"sls-logger":true,"ext-plugin-pre-req":true,"echo":true,"workflow":true,"client-control":true,"proxy-cache":true,"traffic-split":true,"ldap-auth":true,"example-plugin":true,"authz-casdoor":true,"proxy-mirror":true,"skywalking-logger":true,"limit-req":true,"kafka-logger":true,"response-rewrite":true,"openid-connect":true,"key-auth":true,"referer-restriction":true,"uri-blocker":true,"ext-plugin-post-resp":true,"basic-auth":true,"zipkin":true,"aws-lambda":true,"openwhisk":true,"simple":true,"gzip":true,"tencent-cloud-cls":true,"clickhouse-logger":true,"consumer-restriction":true,"forward-auth":true,"http-logger":true,"ua-restriction":true,"ai":true,"grpc-transcode":true,"proxy-control":true,"fault-injection":true,"limit-count":true,"serverless-post-function":true,"syslog":true,"api-breaker":true,"inspect":true,"file-logger":true,"datadog":true,"grpc-web":true,"elasticsearch-logger":true,"csrf":true,"loggly":true,"proxy-rewrite":true}, context: init_worker_by_lua*
2023/02/07 11:34:35 [warn] 51#51: *2 [lua] plugin.lua:202: load(): new plugins: {"server-info":true,"hmac-auth":true,"azure-functions":true,"real-ip":true,"wolf-rbac":true,"serverless-pre-function":true,"kafka-proxy":true,"public-api":true,"splunk-hec-logging":true,"google-cloud-logging":true,"tcp-logger":true,"authz-keycloak":true,"authz-casbin":true,"cas-auth":true,"opa":true,"rocketmq-logger":true,"jwt-auth":true,"prometheus":true,"redirect":true,"cors":true,"request-validation":true,"ip-restriction":true,"openfunction":true,"mocking":true,"request-id":true,"ext-plugin-post-req":true,"limit-conn":true,"udp-logger":true,"sls-logger":true,"ext-plugin-pre-req":true,"echo":true,"workflow":true,"client-control":true,"proxy-cache":true,"traffic-split":true,"ldap-auth":true,"example-plugin":true,"authz-casdoor":true,"proxy-mirror":true,"skywalking-logger":true,"limit-req":true,"kafka-logger":true,"response-rewrite":true,"openid-connect":true,"key-auth":true,"referer-restriction":true,"uri-blocker":true,"ext-plugin-post-resp":true,"basic-auth":true,"zipkin":true,"aws-lambda":true,"openwhisk":true,"simple":true,"gzip":true,"tencent-cloud-cls":true,"clickhouse-logger":true,"consumer-restriction":true,"forward-auth":true,"http-logger":true,"ua-restriction":true,"ai":true,"grpc-transcode":true,"proxy-control":true,"fault-injection":true,"limit-count":true,"serverless-post-function":true,"syslog":true,"api-breaker":true,"inspect":true,"file-logger":true,"datadog":true,"grpc-web":true,"elasticsearch-logger":true,"csrf":true,"loggly":true,"proxy-rewrite":true}, context: init_worker_by_lua*
2023/02/07 11:34:35 [warn] 49#49: *5 [lua] plugin.lua:202: load(): new plugins: {"server-info":true,"hmac-auth":true,"azure-functions":true,"real-ip":true,"wolf-rbac":true,"serverless-pre-function":true,"kafka-proxy":true,"public-api":true,"splunk-hec-logging":true,"google-cloud-logging":true,"tcp-logger":true,"authz-keycloak":true,"authz-casbin":true,"cas-auth":true,"opa":true,"rocketmq-logger":true,"jwt-auth":true,"prometheus":true,"redirect":true,"cors":true,"request-validation":true,"ip-restriction":true,"openfunction":true,"mocking":true,"request-id":true,"ext-plugin-post-req":true,"limit-conn":true,"udp-logger":true,"sls-logger":true,"ext-plugin-pre-req":true,"echo":true,"workflow":true,"client-control":true,"proxy-cache":true,"traffic-split":true,"ldap-auth":true,"example-plugin":true,"authz-casdoor":true,"proxy-mirror":true,"skywalking-logger":true,"limit-req":true,"kafka-logger":true,"response-rewrite":true,"openid-connect":true,"key-auth":true,"referer-restriction":true,"uri-blocker":true,"ext-plugin-post-resp":true,"basic-auth":true,"zipkin":true,"aws-lambda":true,"openwhisk":true,"simple":true,"gzip":true,"tencent-cloud-cls":true,"clickhouse-logger":true,"consumer-restriction":true,"forward-auth":true,"http-logger":true,"ua-restriction":true,"ai":true,"grpc-transcode":true,"proxy-control":true,"fault-injection":true,"limit-count":true,"serverless-post-function":true,"syslog":true,"api-breaker":true,"inspect":true,"file-logger":true,"datadog":true,"grpc-web":true,"elasticsearch-logger":true,"csrf":true,"loggly":true,"proxy-rewrite":true}, context: init_worker_by_lua*
2023/02/07 11:34:35 [warn] 54#54: *6 [lua] plugin.lua:202: load(): new plugins: {"server-info":true,"hmac-auth":true,"azure-functions":true,"real-ip":true,"wolf-rbac":true,"serverless-pre-function":true,"kafka-proxy":true,"public-api":true,"splunk-hec-logging":true,"google-cloud-logging":true,"tcp-logger":true,"authz-keycloak":true,"authz-casbin":true,"cas-auth":true,"opa":true,"rocketmq-logger":true,"jwt-auth":true,"prometheus":true,"redirect":true,"cors":true,"request-validation":true,"ip-restriction":true,"openfunction":true,"mocking":true,"request-id":true,"ext-plugin-post-req":true,"limit-conn":true,"udp-logger":true,"sls-logger":true,"ext-plugin-pre-req":true,"echo":true,"workflow":true,"client-control":true,"proxy-cache":true,"traffic-split":true,"ldap-auth":true,"example-plugin":true,"authz-casdoor":true,"proxy-mirror":true,"skywalking-logger":true,"limit-req":true,"kafka-logger":true,"response-rewrite":true,"openid-connect":true,"key-auth":true,"referer-restriction":true,"uri-blocker":true,"ext-plugin-post-resp":true,"basic-auth":true,"zipkin":true,"aws-lambda":true,"openwhisk":true,"simple":true,"gzip":true,"tencent-cloud-cls":true,"clickhouse-logger":true,"consumer-restriction":true,"forward-auth":true,"http-logger":true,"ua-restriction":true,"ai":true,"grpc-transcode":true,"proxy-control":true,"fault-injection":true,"limit-count":true,"serverless-post-function":true,"syslog":true,"api-breaker":true,"inspect":true,"file-logger":true,"datadog":true,"grpc-web":true,"elasticsearch-logger":true,"csrf":true,"loggly":true,"proxy-rewrite":true}, context: init_worker_by_lua*
2023/02/07 11:34:35 [warn] 61#61: *7 [lua] plugin.lua:202: load(): new plugins: {"server-info":true,"hmac-auth":true,"azure-functions":true,"real-ip":true,"wolf-rbac":true,"serverless-pre-function":true,"kafka-proxy":true,"public-api":true,"splunk-hec-logging":true,"google-cloud-logging":true,"tcp-logger":true,"authz-keycloak":true,"authz-casbin":true,"cas-auth":true,"opa":true,"rocketmq-logger":true,"jwt-auth":true,"prometheus":true,"redirect":true,"cors":true,"request-validation":true,"ip-restriction":true,"openfunction":true,"mocking":true,"request-id":true,"ext-plugin-post-req":true,"limit-conn":true,"udp-logger":true,"sls-logger":true,"ext-plugin-pre-req":true,"echo":true,"workflow":true,"client-control":true,"proxy-cache":true,"traffic-split":true,"ldap-auth":true,"example-plugin":true,"authz-casdoor":true,"proxy-mirror":true,"skywalking-logger":true,"limit-req":true,"kafka-logger":true,"response-rewrite":true,"openid-connect":true,"key-auth":true,"referer-restriction":true,"uri-blocker":true,"ext-plugin-post-resp":true,"basic-auth":true,"zipkin":true,"aws-lambda":true,"openwhisk":true,"simple":true,"gzip":true,"tencent-cloud-cls":true,"clickhouse-logger":true,"consumer-restriction":true,"forward-auth":true,"http-logger":true,"ua-restriction":true,"ai":true,"grpc-transcode":true,"proxy-control":true,"fault-injection":true,"limit-count":true,"serverless-post-function":true,"syslog":true,"api-breaker":true,"inspect":true,"file-logger":true,"datadog":true,"grpc-web":true,"elasticsearch-logger":true,"csrf":true,"loggly":true,"proxy-rewrite":true}, context: init_worker_by_lua*
2023/02/07 11:34:35 [warn] 116#116: *13 [lua] plugin.lua:202: load(): new plugins: {"server-info":true,"hmac-auth":true,"azure-functions":true,"real-ip":true,"wolf-rbac":true,"serverless-pre-function":true,"kafka-proxy":true,"public-api":true,"splunk-hec-logging":true,"google-cloud-logging":true,"tcp-logger":true,"authz-keycloak":true,"authz-casbin":true,"cas-auth":true,"opa":true,"rocketmq-logger":true,"jwt-auth":true,"prometheus":true,"redirect":true,"cors":true,"request-validation":true,"ip-restriction":true,"openfunction":true,"mocking":true,"request-id":true,"ext-plugin-post-req":true,"limit-conn":true,"udp-logger":true,"sls-logger":true,"ext-plugin-pre-req":true,"echo":true,"workflow":true,"client-control":true,"proxy-cache":true,"traffic-split":true,"ldap-auth":true,"example-plugin":true,"authz-casdoor":true,"proxy-mirror":true,"skywalking-logger":true,"limit-req":true,"kafka-logger":true,"response-rewrite":true,"openid-connect":true,"key-auth":true,"referer-restriction":true,"uri-blocker":true,"ext-plugin-post-resp":true,"basic-auth":true,"zipkin":true,"aws-lambda":true,"openwhisk":true,"simple":true,"gzip":true,"tencent-cloud-cls":true,"clickhouse-logger":true,"consumer-restriction":true,"forward-auth":true,"http-logger":true,"ua-restriction":true,"ai":true,"grpc-transcode":true,"proxy-control":true,"fault-injection":true,"limit-count":true,"serverless-post-function":true,"syslog":true,"api-breaker":true,"inspect":true,"file-logger":true,"datadog":true,"grpc-web":true,"elasticsearch-logger":true,"csrf":true,"loggly":true,"proxy-rewrite":true}, context: init_worker_by_lua*
2023/02/07 11:34:35 [warn] 64#64: *10 [lua] plugin.lua:202: load(): new plugins: {"server-info":true,"hmac-auth":true,"azure-functions":true,"real-ip":true,"wolf-rbac":true,"serverless-pre-function":true,"kafka-proxy":true,"public-api":true,"splunk-hec-logging":true,"google-cloud-logging":true,"tcp-logger":true,"authz-keycloak":true,"authz-casbin":true,"cas-auth":true,"opa":true,"rocketmq-logger":true,"jwt-auth":true,"prometheus":true,"redirect":true,"cors":true,"request-validation":true,"ip-restriction":true,"openfunction":true,"mocking":true,"request-id":true,"ext-plugin-post-req":true,"limit-conn":true,"udp-logger":true,"sls-logger":true,"ext-plugin-pre-req":true,"echo":true,"workflow":true,"client-control":true,"proxy-cache":true,"traffic-split":true,"ldap-auth":true,"example-plugin":true,"authz-casdoor":true,"proxy-mirror":true,"skywalking-logger":true,"limit-req":true,"kafka-logger":true,"response-rewrite":true,"openid-connect":true,"key-auth":true,"referer-restriction":true,"uri-blocker":true,"ext-plugin-post-resp":true,"basic-auth":true,"zipkin":true,"aws-lambda":true,"openwhisk":true,"simple":true,"gzip":true,"tencent-cloud-cls":true,"clickhouse-logger":true,"consumer-restriction":true,"forward-auth":true,"http-logger":true,"ua-restriction":true,"ai":true,"grpc-transcode":true,"proxy-control":true,"fault-injection":true,"limit-count":true,"serverless-post-function":true,"syslog":true,"api-breaker":true,"inspect":true,"file-logger":true,"datadog":true,"grpc-web":true,"elasticsearch-logger":true,"csrf":true,"loggly":true,"proxy-rewrite":true}, context: init_worker_by_lua*
2023/02/07 11:34:35 [warn] 107#107: *12 [lua] plugin.lua:202: load(): new plugins: {"server-info":true,"hmac-auth":true,"azure-functions":true,"real-ip":true,"wolf-rbac":true,"serverless-pre-function":true,"kafka-proxy":true,"public-api":true,"splunk-hec-logging":true,"google-cloud-logging":true,"tcp-logger":true,"authz-keycloak":true,"authz-casbin":true,"cas-auth":true,"opa":true,"rocketmq-logger":true,"jwt-auth":true,"prometheus":true,"redirect":true,"cors":true,"request-validation":true,"ip-restriction":true,"openfunction":true,"mocking":true,"request-id":true,"ext-plugin-post-req":true,"limit-conn":true,"udp-logger":true,"sls-logger":true,"ext-plugin-pre-req":true,"echo":true,"workflow":true,"client-control":true,"proxy-cache":true,"traffic-split":true,"ldap-auth":true,"example-plugin":true,"authz-casdoor":true,"proxy-mirror":true,"skywalking-logger":true,"limit-req":true,"kafka-logger":true,"response-rewrite":true,"openid-connect":true,"key-auth":true,"referer-restriction":true,"uri-blocker":true,"ext-plugin-post-resp":true,"basic-auth":true,"zipkin":true,"aws-lambda":true,"openwhisk":true,"simple":true,"gzip":true,"tencent-cloud-cls":true,"clickhouse-logger":true,"consumer-restriction":true,"forward-auth":true,"http-logger":true,"ua-restriction":true,"ai":true,"grpc-transcode":true,"proxy-control":true,"fault-injection":true,"limit-count":true,"serverless-post-function":true,"syslog":true,"api-breaker":true,"inspect":true,"file-logger":true,"datadog":true,"grpc-web":true,"elasticsearch-logger":true,"csrf":true,"loggly":true,"proxy-rewrite":true}, context: init_worker_by_lua*
2023/02/07 11:34:35 [warn] 59#59: *9 [lua] plugin.lua:202: load(): new plugins: {"server-info":true,"hmac-auth":true,"azure-functions":true,"real-ip":true,"wolf-rbac":true,"serverless-pre-function":true,"kafka-proxy":true,"public-api":true,"splunk-hec-logging":true,"google-cloud-logging":true,"tcp-logger":true,"authz-keycloak":true,"authz-casbin":true,"cas-auth":true,"opa":true,"rocketmq-logger":true,"jwt-auth":true,"prometheus":true,"redirect":true,"cors":true,"request-validation":true,"ip-restriction":true,"openfunction":true,"mocking":true,"request-id":true,"ext-plugin-post-req":true,"limit-conn":true,"udp-logger":true,"sls-logger":true,"ext-plugin-pre-req":true,"echo":true,"workflow":true,"client-control":true,"proxy-cache":true,"traffic-split":true,"ldap-auth":true,"example-plugin":true,"authz-casdoor":true,"proxy-mirror":true,"skywalking-logger":true,"limit-req":true,"kafka-logger":true,"response-rewrite":true,"openid-connect":true,"key-auth":true,"referer-restriction":true,"uri-blocker":true,"ext-plugin-post-resp":true,"basic-auth":true,"zipkin":true,"aws-lambda":true,"openwhisk":true,"simple":true,"gzip":true,"tencent-cloud-cls":true,"clickhouse-logger":true,"consumer-restriction":true,"forward-auth":true,"http-logger":true,"ua-restriction":true,"ai":true,"grpc-transcode":true,"proxy-control":true,"fault-injection":true,"limit-count":true,"serverless-post-function":true,"syslog":true,"api-breaker":true,"inspect":true,"file-logger":true,"datadog":true,"grpc-web":true,"elasticsearch-logger":true,"csrf":true,"loggly":true,"proxy-rewrite":true}, context: init_worker_by_lua*
2023/02/07 11:34:35 [warn] 56#56: *8 [lua] plugin.lua:202: load(): new plugins: {"server-info":true,"hmac-auth":true,"azure-functions":true,"real-ip":true,"wolf-rbac":true,"serverless-pre-function":true,"kafka-proxy":true,"public-api":true,"splunk-hec-logging":true,"google-cloud-logging":true,"tcp-logger":true,"authz-keycloak":true,"authz-casbin":true,"cas-auth":true,"opa":true,"rocketmq-logger":true,"jwt-auth":true,"prometheus":true,"redirect":true,"cors":true,"request-validation":true,"ip-restriction":true,"openfunction":true,"mocking":true,"request-id":true,"ext-plugin-post-req":true,"limit-conn":true,"udp-logger":true,"sls-logger":true,"ext-plugin-pre-req":true,"echo":true,"workflow":true,"client-control":true,"proxy-cache":true,"traffic-split":true,"ldap-auth":true,"example-plugin":true,"authz-casdoor":true,"proxy-mirror":true,"skywalking-logger":true,"limit-req":true,"kafka-logger":true,"response-rewrite":true,"openid-connect":true,"key-auth":true,"referer-restriction":true,"uri-blocker":true,"ext-plugin-post-resp":true,"basic-auth":true,"zipkin":true,"aws-lambda":true,"openwhisk":true,"simple":true,"gzip":true,"tencent-cloud-cls":true,"clickhouse-logger":true,"consumer-restriction":true,"forward-auth":true,"http-logger":true,"ua-restriction":true,"ai":true,"grpc-transcode":true,"proxy-control":true,"fault-injection":true,"limit-count":true,"serverless-post-function":true,"syslog":true,"api-breaker":true,"inspect":true,"file-logger":true,"datadog":true,"grpc-web":true,"elasticsearch-logger":true,"csrf":true,"loggly":true,"proxy-rewrite":true}, context: init_worker_by_lua*
2023/02/07 11:34:35 [warn] 87#87: *11 [lua] plugin.lua:202: load(): new plugins: {"server-info":true,"hmac-auth":true,"azure-functions":true,"real-ip":true,"wolf-rbac":true,"serverless-pre-function":true,"kafka-proxy":true,"public-api":true,"splunk-hec-logging":true,"google-cloud-logging":true,"tcp-logger":true,"authz-keycloak":true,"authz-casbin":true,"cas-auth":true,"opa":true,"rocketmq-logger":true,"jwt-auth":true,"prometheus":true,"redirect":true,"cors":true,"request-validation":true,"ip-restriction":true,"openfunction":true,"mocking":true,"request-id":true,"ext-plugin-post-req":true,"limit-conn":true,"udp-logger":true,"sls-logger":true,"ext-plugin-pre-req":true,"echo":true,"workflow":true,"client-control":true,"proxy-cache":true,"traffic-split":true,"ldap-auth":true,"example-plugin":true,"authz-casdoor":true,"proxy-mirror":true,"skywalking-logger":true,"limit-req":true,"kafka-logger":true,"response-rewrite":true,"openid-connect":true,"key-auth":true,"referer-restriction":true,"uri-blocker":true,"ext-plugin-post-resp":true,"basic-auth":true,"zipkin":true,"aws-lambda":true,"openwhisk":true,"simple":true,"gzip":true,"tencent-cloud-cls":true,"clickhouse-logger":true,"consumer-restriction":true,"forward-auth":true,"http-logger":true,"ua-restriction":true,"ai":true,"grpc-transcode":true,"proxy-control":true,"fault-injection":true,"limit-count":true,"serverless-post-function":true,"syslog":true,"api-breaker":true,"inspect":true,"file-logger":true,"datadog":true,"grpc-web":true,"elasticsearch-logger":true,"csrf":true,"loggly":true,"proxy-rewrite":true}, context: init_worker_by_lua*
2023/02/07 11:34:35 [warn] 53#53: *3 [lua] plugin.lua:202: load(): new plugins: {"server-info":true,"hmac-auth":true,"azure-functions":true,"real-ip":true,"wolf-rbac":true,"serverless-pre-function":true,"kafka-proxy":true,"public-api":true,"splunk-hec-logging":true,"google-cloud-logging":true,"tcp-logger":true,"authz-keycloak":true,"authz-casbin":true,"cas-auth":true,"opa":true,"rocketmq-logger":true,"jwt-auth":true,"prometheus":true,"redirect":true,"cors":true,"request-validation":true,"ip-restriction":true,"openfunction":true,"mocking":true,"request-id":true,"ext-plugin-post-req":true,"limit-conn":true,"udp-logger":true,"sls-logger":true,"ext-plugin-pre-req":true,"echo":true,"workflow":true,"client-control":true,"proxy-cache":true,"traffic-split":true,"ldap-auth":true,"example-plugin":true,"authz-casdoor":true,"proxy-mirror":true,"skywalking-logger":true,"limit-req":true,"kafka-logger":true,"response-rewrite":true,"openid-connect":true,"key-auth":true,"referer-restriction":true,"uri-blocker":true,"ext-plugin-post-resp":true,"basic-auth":true,"zipkin":true,"aws-lambda":true,"openwhisk":true,"simple":true,"gzip":true,"tencent-cloud-cls":true,"clickhouse-logger":true,"consumer-restriction":true,"forward-auth":true,"http-logger":true,"ua-restriction":true,"ai":true,"grpc-transcode":true,"proxy-control":true,"fault-injection":true,"limit-count":true,"serverless-post-function":true,"syslog":true,"api-breaker":true,"inspect":true,"file-logger":true,"datadog":true,"grpc-web":true,"elasticsearch-logger":true,"csrf":true,"loggly":true,"proxy-rewrite":true}, context: init_worker_by_lua*
2023/02/07 11:34:35 [warn] 112#112: *14 [lua] plugin.lua:202: load(): new plugins: {"server-info":true,"hmac-auth":true,"azure-functions":true,"real-ip":true,"wolf-rbac":true,"serverless-pre-function":true,"kafka-proxy":true,"public-api":true,"splunk-hec-logging":true,"google-cloud-logging":true,"tcp-logger":true,"authz-keycloak":true,"authz-casbin":true,"cas-auth":true,"opa":true,"rocketmq-logger":true,"jwt-auth":true,"prometheus":true,"redirect":true,"cors":true,"request-validation":true,"ip-restriction":true,"openfunction":true,"mocking":true,"request-id":true,"ext-plugin-post-req":true,"limit-conn":true,"udp-logger":true,"sls-logger":true,"ext-plugin-pre-req":true,"echo":true,"workflow":true,"client-control":true,"proxy-cache":true,"traffic-split":true,"ldap-auth":true,"example-plugin":true,"authz-casdoor":true,"proxy-mirror":true,"skywalking-logger":true,"limit-req":true,"kafka-logger":true,"response-rewrite":true,"openid-connect":true,"key-auth":true,"referer-restriction":true,"uri-blocker":true,"ext-plugin-post-resp":true,"basic-auth":true,"zipkin":true,"aws-lambda":true,"openwhisk":true,"simple":true,"gzip":true,"tencent-cloud-cls":true,"clickhouse-logger":true,"consumer-restriction":true,"forward-auth":true,"http-logger":true,"ua-restriction":true,"ai":true,"grpc-transcode":true,"proxy-control":true,"fault-injection":true,"limit-count":true,"serverless-post-function":true,"syslog":true,"api-breaker":true,"inspect":true,"file-logger":true,"datadog":true,"grpc-web":true,"elasticsearch-logger":true,"csrf":true,"loggly":true,"proxy-rewrite":true}, context: init_worker_by_lua*
2023/02/07 11:34:35 [warn] 133#133: *16 [lua] plugin.lua:202: load(): new plugins: {"server-info":true,"hmac-auth":true,"azure-functions":true,"real-ip":true,"wolf-rbac":true,"serverless-pre-function":true,"kafka-proxy":true,"public-api":true,"splunk-hec-logging":true,"google-cloud-logging":true,"tcp-logger":true,"authz-keycloak":true,"authz-casbin":true,"cas-auth":true,"opa":true,"rocketmq-logger":true,"jwt-auth":true,"prometheus":true,"redirect":true,"cors":true,"request-validation":true,"ip-restriction":true,"openfunction":true,"mocking":true,"request-id":true,"ext-plugin-post-req":true,"limit-conn":true,"udp-logger":true,"sls-logger":true,"ext-plugin-pre-req":true,"echo":true,"workflow":true,"client-control":true,"proxy-cache":true,"traffic-split":true,"ldap-auth":true,"example-plugin":true,"authz-casdoor":true,"proxy-mirror":true,"skywalking-logger":true,"limit-req":true,"kafka-logger":true,"response-rewrite":true,"openid-connect":true,"key-auth":true,"referer-restriction":true,"uri-blocker":true,"ext-plugin-post-resp":true,"basic-auth":true,"zipkin":true,"aws-lambda":true,"openwhisk":true,"simple":true,"gzip":true,"tencent-cloud-cls":true,"clickhouse-logger":true,"consumer-restriction":true,"forward-auth":true,"http-logger":true,"ua-restriction":true,"ai":true,"grpc-transcode":true,"proxy-control":true,"fault-injection":true,"limit-count":true,"serverless-post-function":true,"syslog":true,"api-breaker":true,"inspect":true,"file-logger":true,"datadog":true,"grpc-web":true,"elasticsearch-logger":true,"csrf":true,"loggly":true,"proxy-rewrite":true}, context: init_worker_by_lua*
2023/02/07 11:34:35 [warn] 97#97: *15 [lua] plugin.lua:202: load(): new plugins: {"server-info":true,"hmac-auth":true,"azure-functions":true,"real-ip":true,"wolf-rbac":true,"serverless-pre-function":true,"kafka-proxy":true,"public-api":true,"splunk-hec-logging":true,"google-cloud-logging":true,"tcp-logger":true,"authz-keycloak":true,"authz-casbin":true,"cas-auth":true,"opa":true,"rocketmq-logger":true,"jwt-auth":true,"prometheus":true,"redirect":true,"cors":true,"request-validation":true,"ip-restriction":true,"openfunction":true,"mocking":true,"request-id":true,"ext-plugin-post-req":true,"limit-conn":true,"udp-logger":true,"sls-logger":true,"ext-plugin-pre-req":true,"echo":true,"workflow":true,"client-control":true,"proxy-cache":true,"traffic-split":true,"ldap-auth":true,"example-plugin":true,"authz-casdoor":true,"proxy-mirror":true,"skywalking-logger":true,"limit-req":true,"kafka-logger":true,"response-rewrite":true,"openid-connect":true,"key-auth":true,"referer-restriction":true,"uri-blocker":true,"ext-plugin-post-resp":true,"basic-auth":true,"zipkin":true,"aws-lambda":true,"openwhisk":true,"simple":true,"gzip":true,"tencent-cloud-cls":true,"clickhouse-logger":true,"consumer-restriction":true,"forward-auth":true,"http-logger":true,"ua-restriction":true,"ai":true,"grpc-transcode":true,"proxy-control":true,"fault-injection":true,"limit-count":true,"serverless-post-function":true,"syslog":true,"api-breaker":true,"inspect":true,"file-logger":true,"datadog":true,"grpc-web":true,"elasticsearch-logger":true,"csrf":true,"loggly":true,"proxy-rewrite":true}, context: init_worker_by_lua*
2023/02/07 11:34:35 [warn] 67#67: *17 [lua] plugin.lua:202: load(): new plugins: {"server-info":true,"hmac-auth":true,"azure-functions":true,"real-ip":true,"wolf-rbac":true,"serverless-pre-function":true,"kafka-proxy":true,"public-api":true,"splunk-hec-logging":true,"google-cloud-logging":true,"tcp-logger":true,"authz-keycloak":true,"authz-casbin":true,"cas-auth":true,"opa":true,"rocketmq-logger":true,"jwt-auth":true,"prometheus":true,"redirect":true,"cors":true,"request-validation":true,"ip-restriction":true,"openfunction":true,"mocking":true,"request-id":true,"ext-plugin-post-req":true,"limit-conn":true,"udp-logger":true,"sls-logger":true,"ext-plugin-pre-req":true,"echo":true,"workflow":true,"client-control":true,"proxy-cache":true,"traffic-split":true,"ldap-auth":true,"example-plugin":true,"authz-casdoor":true,"proxy-mirror":true,"skywalking-logger":true,"limit-req":true,"kafka-logger":true,"response-rewrite":true,"openid-connect":true,"key-auth":true,"referer-restriction":true,"uri-blocker":true,"ext-plugin-post-resp":true,"basic-auth":true,"zipkin":true,"aws-lambda":true,"openwhisk":true,"simple":true,"gzip":true,"tencent-cloud-cls":true,"clickhouse-logger":true,"consumer-restriction":true,"forward-auth":true,"http-logger":true,"ua-restriction":true,"ai":true,"grpc-transcode":true,"proxy-control":true,"fault-injection":true,"limit-count":true,"serverless-post-function":true,"syslog":true,"api-breaker":true,"inspect":true,"file-logger":true,"datadog":true,"grpc-web":true,"elasticsearch-logger":true,"csrf":true,"loggly":true,"proxy-rewrite":true}, context: init_worker_by_lua*
2023/02/07 11:34:35 [warn] 61#61: *7 [lua] plugin.lua:252: load_stream(): new plugins: {"limit-conn":true,"ip-restriction":true,"syslog":true,"mqtt-proxy":true}, context: init_worker_by_lua*
2023/02/07 11:34:35 [warn] 50#50: *1 [lua] plugin.lua:252: load_stream(): new plugins: {"limit-conn":true,"ip-restriction":true,"syslog":true,"mqtt-proxy":true}, context: init_worker_by_lua*
2023/02/07 11:34:35 [warn] 54#54: *6 [lua] plugin.lua:252: load_stream(): new plugins: {"limit-conn":true,"ip-restriction":true,"syslog":true,"mqtt-proxy":true}, context: init_worker_by_lua*
2023/02/07 11:34:35 [warn] 49#49: *5 [lua] plugin.lua:252: load_stream(): new plugins: {"limit-conn":true,"ip-restriction":true,"syslog":true,"mqtt-proxy":true}, context: init_worker_by_lua*
2023/02/07 11:34:35 [warn] 52#52: *4 [lua] plugin.lua:252: load_stream(): new plugins: {"limit-conn":true,"ip-restriction":true,"syslog":true,"mqtt-proxy":true}, context: init_worker_by_lua*
2023/02/07 11:34:35 [warn] 112#112: *14 [lua] plugin.lua:252: load_stream(): new plugins: {"limit-conn":true,"ip-restriction":true,"syslog":true,"mqtt-proxy":true}, context: init_worker_by_lua*
2023/02/07 11:34:35 [warn] 51#51: *2 [lua] plugin.lua:252: load_stream(): new plugins: {"limit-conn":true,"ip-restriction":true,"syslog":true,"mqtt-proxy":true}, context: init_worker_by_lua*
2023/02/07 11:34:35 [warn] 87#87: *11 [lua] plugin.lua:252: load_stream(): new plugins: {"limit-conn":true,"ip-restriction":true,"syslog":true,"mqtt-proxy":true}, context: init_worker_by_lua*
2023/02/07 11:34:35 [warn] 53#53: *3 [lua] plugin.lua:252: load_stream(): new plugins: {"limit-conn":true,"ip-restriction":true,"syslog":true,"mqtt-proxy":true}, context: init_worker_by_lua*
2023/02/07 11:34:35 [warn] 59#59: *9 [lua] plugin.lua:252: load_stream(): new plugins: {"limit-conn":true,"ip-restriction":true,"syslog":true,"mqtt-proxy":true}, context: init_worker_by_lua*
2023/02/07 11:34:35 [warn] 64#64: *10 [lua] plugin.lua:252: load_stream(): new plugins: {"limit-conn":true,"ip-restriction":true,"syslog":true,"mqtt-proxy":true}, context: init_worker_by_lua*
2023/02/07 11:34:35 [warn] 56#56: *8 [lua] plugin.lua:252: load_stream(): new plugins: {"limit-conn":true,"ip-restriction":true,"syslog":true,"mqtt-proxy":true}, context: init_worker_by_lua*
2023/02/07 11:34:35 [warn] 107#107: *12 [lua] plugin.lua:252: load_stream(): new plugins: {"limit-conn":true,"ip-restriction":true,"syslog":true,"mqtt-proxy":true}, context: init_worker_by_lua*
2023/02/07 11:34:35 [warn] 116#116: *13 [lua] plugin.lua:252: load_stream(): new plugins: {"limit-conn":true,"ip-restriction":true,"syslog":true,"mqtt-proxy":true}, context: init_worker_by_lua*
2023/02/07 11:34:35 [warn] 133#133: *16 [lua] plugin.lua:252: load_stream(): new plugins: {"limit-conn":true,"ip-restriction":true,"syslog":true,"mqtt-proxy":true}, context: init_worker_by_lua*
2023/02/07 11:34:35 [warn] 97#97: *15 [lua] plugin.lua:252: load_stream(): new plugins: {"limit-conn":true,"ip-restriction":true,"syslog":true,"mqtt-proxy":true}, context: init_worker_by_lua*
2023/02/07 11:34:35 [warn] 67#67: *17 [lua] plugin.lua:252: load_stream(): new plugins: {"limit-conn":true,"ip-restriction":true,"syslog":true,"mqtt-proxy":true}, context: init_worker_by_lua*

Environment

monkeyDluffy6017 commented 1 year ago

2023/02/07 07:17:20 [emerg] 7419#7419: bind() to 0.0.0.0:9091 failed (98: Address already in use) It looks like that your port is occupied by other program?

amyrprv commented 1 year ago

The port was for Prometheus, I removed it from config.yaml and docker-compose and I get the same error.

monkeyDluffy6017 commented 1 year ago

Where did you get this error? Is there any error in the error.log?

Request Error Code: 10000
schema validate failed: schema not found, path: plugins.simple
amyrprv commented 1 year ago

No, I get this in the admin dashboard. When I tried to add or update a route.

monkeyDluffy6017 commented 1 year ago

Could you try to use curl command instead? https://apisix.apache.org/docs/apisix/admin-api/#example-api-usage

amyrprv commented 1 year ago

Yes, It worked with curl command, But why it won't work with the admin dashboard and how can I fix it?

monkeyDluffy6017 commented 1 year ago

I'm not familiar the admin dashboard, maybe you can create a issue in apisix dashboard? Anyway use the curl command is better.