繁体   English   中英

从 nifi 连接到代理后面的外部 HTTP api

[英]Connecting to an external HTTP api behind a proxy from nifi

我在 Amazon Linux 2 EC2 中有一个apache/nifi:latest实例。 作为参考,请参阅本指南: 此处

我有一个QuerySalesforceObject 1.18.0使用 StandardOauth2AccessTokenProvider。

销售人员对象

oauth2 提供者 url 配置在https://test.salesforce.com/services/oauth2/token

Oauth 图像

我可以curl这个 url 从盒子里和从 docker 容器里面就好了(我没有超时)。

[root@ip-10-229-18-107 \~\]# docker exec -it nifi_container_persistent /bin/sh

printenv | grep -i proxy

HTTPS_PROXY=http://proxy.MY_DOMAIN.com:3128

no_proxy=localhost,127.0.0.1,MY_DOMAIN.com,.amazonaws.com

NO_PROXY=localhost,127.0.0.1, MY_DOMAIN.com,.amazonaws.com

https_proxy=http://proxy.MY_DOMAIN.com:3128

http_proxy=http://proxy.MY_DOMAIN.com:3128

HTTP_PROXY=http://proxy.MY_DOMAIN.com:3128

curl https://test.salesforce.com/services/oauth2/token

{"error":"unsupported_grant_type","error_description":"grant type not supported"}#

但是当我运行任务时,oauth2 失败并出现错误

java.io.UncheckedIOException: OAuth2 access token request failed

Caused by: java.net.SocketTimeoutException: connect timed out

错误信息

这让我相信代理设置没有被 class 接受。我该如何解决这个问题?

这是关于这个 class 的更多信息: https://nifi.apache.org/docs/nifi-docs/components/org.apache.nifi/nifi-oauth2-provider-nar/1.17.0/org.883528382088.0 .StandardOauth2AccessTokenProvider/index.html

在 Nifi 中使用代理连接 HTTP 资源的标准方法是通过StandardProxyConfigurationServicehttps://nifi.apache.org/docs/nifi-docs/components/org.apache.nifi/nifi-proxy-configuration-nar/1.19 .1/org.apache.nifi.proxy.StandardProxyConfigurationService/index.html

如果一个组件没有这个属性,那么就意味着它不支持它。

您可以尝试使用 /opt/nifi/nifi-current/conf/bootstrap.conf 将代理设置引导到/opt/nifi/nifi-current/conf/bootstrap.conf中。 但是没有标准,不能保证对代理的支持。 实现(错误和所有)取决于库。 aws-java-sdk版本。 例如,1x 有一个错误,其中nonProxyHosts不被接受。 https://github.com/aws/aws-sdk-java/issues/2797

java.arg.18=-Dhttp.nonProxyHosts="foo|localhost|*.bar.org"
java.arg.19=-Dhttp.proxyHost=proxy.foo.com
java.arg.20=-Dhttp.proxyPort=123
java.arg.21=-Dhttp.proxyUser=foo
java.arg.22=-Dhttp.proxyPassword=bar

java.arg.23=-Dhttps.nonProxyHosts="foo|localhost|*.bar.org"
java.arg.24=-Dhttps.proxyHost=proxy.foo.com
java.arg.25=-Dhttps.proxyPort=123
java.arg.26=-Dhttps.proxyUser=foo
java.arg.27=-Dhttps.proxyPassword=bar

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM