Tag: apiman

将APIMAN连接到外部ElasticSearch数据库以获取指标

我试图使用Docker-compose将APIMAN连接到外部弹性search数据库。 我遇到了一些问题(请参阅下面的日志输出)。 这里是configuration: -apiman.properties apiman.es.protocol=http apiman.es.host=MY_MACHINE_HOST apiman.es.port=9200 apiman.es.username=elasticsearch apiman.es.password= apiman.es.timeout=10000 apiman-manager.metrics.type=es apiman-manager.metrics.es.client-factory= apiman-manager.metrics.es.protocol=${apiman.es.protocol} apiman-manager.metrics.es.host=${apiman.es.host} apiman-manager.metrics.es.port=${apiman.es.port} apiman-manager.metrics.es.username=${apiman.es.username} apiman-manager.metrics.es.password=${apiman.es.password} apiman-manager.metrics.es.timeout=${apiman.es.timeout} ETC… 和日志 ERROR [io.undertow.request] (default task-28) UT005023: Exception handling request to /apiman/organizations/test/apis/test/versions/1.0/metrics/planUsage: org.jboss.resteasy.spi.UnhandledException: java.lang.RuntimeException: java.lang.IllegalArgumentException: name is empty at org.jboss.resteasy.core.ExceptionHandler.handleApplicationException(ExceptionHandler.java:76) at org.jboss.resteasy.core.ExceptionHandler.handleException(ExceptionHandler.java:212) at org.jboss.resteasy.core.SynchronousDispatcher.writeException(SynchronousDispatcher.java:168) at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:411) ETC… Caused by: java.lang.RuntimeException: java.lang.IllegalArgumentException: name is empty at io.apiman.manager.api.war.WarCdiFactory.provideMetricsESClientFactory(WarCdiFactory.java:255) at […]

Apiman不会恢复网关

你能否帮我解决以下问题。 我使用Apiman版本1.2.1 FROM jboss/wildfly:9.0.2.Final ENV APIMAN_VERSION 1.2.1.Final 我通过kubernetes公开了这个版本,因为我在同一个容器中使用了postgres。 一旦我第一次创build它,在apiman之后,我添加了组织/ API / ….和所有必要的人员。 我按下button来发布api,并可能检查它是完美的,所以我使用kubectl port-forward pod-name 8080:8080并可能通过浏览器http:localhost:8080/apiman-gateway/ORgId/bla/bla/bla/bla?givemedescriptionbyid=1 。 在这之后我去控制台杀死apiman pod,由于pod重启,同样的操作kubectl port-forward new-pod-name 8080:8080 ,我可以看到apiman的所有数据像组织,apis和所有其他工作人员已经在那里。 但是,如果您尝试再次调用网关,则会出现一个大问题,它会告诉您: {“responseCode”:500,“message”:“API未find。”,“trace”:“io.apiman.gateway.engine.beans.exceptions.InvalidApiException:找不到API。\ n \ tat io.apiman.gateway .engine.impl.ApiRequestExecutorImpl $ 3.handle(ApiRequestExecutorImpl.java:278)\ n \ tat io.apiman.gateway.engine.impl.ApiRequestExecutorImpl $ 3.handle(ApiRequestExecutorImpl.java:271)\ n \ tat io.apiman.gateway .engine.impl.SecureRegistryWrapper $ 1.handle(SecureRegistryWrapper.java:122)\ n \ tat io.apiman.gateway.engine.impl.SecureRegistryWrapper $ 1.handle(SecureRegistryWrapper.java:111)\ n \ tat io.apiman.gateway […]

链接Docker图像并按顺序执行

我正在用自己的图像扩展APIMan / Wildfly Docker镜像,这将会做两件事情: 1)将我的.war文件应用程序放到Wildfly standalone / deployments目录中 2)执行一系列将查询Wildfly服务器的cURL命令来configurationAPIMan。 最初,我尝试创build两个Docker镜像(第一个放在.war文件中,第二个放在cURL命令中),但是我错误地认为最内层的CMD指令会先执行,CMD会向外执行。 例如: ImageA: FROM jboss/apiman-wildfly:1.1.6.Final RUN /opt/jboss/wildfly/bin/add-user.sh admin admin –silent COPY /RatedRestfulServer/target/RatedRestfulServer-1.0-SNAPSHOT.war /opt/jboss/wildfly/standalone/deployments/ CMD ["/opt/jboss/wildfly/bin/standalone.sh", "-b", "0.0.0.0", "-bmanagement", "0.0.0.0", "-c", "standalone-apiman.xml"] 和 ImageB: FROM ImageA COPY /configure.sh /opt/jboss/wildfly/ CMD ["/opt/jboss/wildfly/configure.sh"] 我最初假设在运行时Wildfly / APIMAN将首先启动(根据ImageA CMD指令),然后运行我的自定义脚本(根据ImageB CMD指令)。 我假设这是不正确的,因为在整个层次结构中,只执行1个CMD指令(链中最外面的Dockerfile中的最后一个)? 于是,我试图将所有东西都合并到一个Dockerfile中(在构build过程中)启动Wildfly / APIMAN,运行cURL命令,closureswildfly服务器,然后CMD命令在运行时启动备份,Wildfly / APIMan进行configuration。 但是,这不起作用,因为当我启动Wildfly(作为构build的一部分)时,它控制着控制台并等待显示日志消息,因此构build从不完成。 如果我在RUN命令的末尾附加一个'&',它不会运行( Dockerfile:RUN会导致一个No op )。 […]