在本地运行时,SAP CF CAPM连接服务不起作用

2020-08-13 09:57发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)专家们, 我设法使用Visua...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家们,

我设法使用Visual Studio代码将CF Business Application设置为在本地工作,在那里我可以运行 nodejs srv模块并从hana服务实例中检索数据。 我还能够从我的Cloud Foundry目标服务中检索目标信息(Url, Type:Onpremise ,用户名,密码...),我假设我输入的所有凭据默认为- env.json可以正常工作。 但是,只有连接服务似乎对我不起作用,因为当我调用Onpremise虚拟主机(在目标服务中定义)时,它始终会引发这种类型的错误(并且我正在使用sap-cf-axios模块依赖项 ):

 [2020-08-12T11:41:32.174Z]信息(环境访问器):未定义环境变量VCAP_APPLICATION。  [2020-08-12T11:41:32.177Z]信息(proxy-util):尝试从进程环境中获取http_proxy或HTTP_PROXY。 发现值不确定
 [2020-08-12T11:41:32.177Z]信息(proxy-util):在环境变量中找不到http的代理设置-未使用代理
 [2020-08-12T11:41:35.393Z]警告(目标访问器):设置了环境变量"目的地"。 将从此变量读取目标。 不建议将其用于生产性应用! 取消设置变量以从SAP Cloud Platform上的目标服务读取目标。
 [2020-08-12T11:41:35.394Z] WARN(目标访问器):无法找到以下项的服务绑定
 命名为" S4D"! 找到以下绑定:,dest-service,Connectivity-service。 如果您不使用SAP Extension Factory,则可以忽略此警告。
 [2020-08-12T11:41:35.397Z] WARN(环境访问器):无法将特定的XSUAA服务实例与给定的JWT匹配。 绑定了以下XSUAA实例:。 将选择以下内容:。 这可能会在系统的其他部分产生错误!
 [2020-08-12T11:41:39.308Z]信息(proxy-util):将使用来自连接服务的OnPrem目标代理设置。
 [2020-08-12T11:41:39.309Z] WARN(环境访问器):无法将特定的XSUAA服务实例与给定的JWT匹配。 绑定了以下XSUAA实例:。 将选择以下内容:。 这可能会在系统的其他部分产生错误!
 [2020-08-12T11:41:40.471Z] WARN(连接服务):无法创建" SAP-Connectivity-Authentication"标头:在当前请求上找不到JWT。 继续不带标题。 可能无法连接到本地系统。
 [2020-08-12T11:41:40.472Z]信息(proxy-util):将使用来自连接服务的OnPrem目标代理设置。
 [12-08-2020 18:42:26] [日志]错误:连接ETIMEDOUT 3.124.222.77:20003
     在TCPConnectWrap.afterConnect上[完成时](net.js:1141:16){
   errno:" ETIMEDOUT",
   代码:" ETIMEDOUT",
   syscall:"连接",
   地址:" 3.124.222.77",
   端口:20003,
   配置:{
     网址:"/img/sap/opu/odata/MY_ENTITYSET",
     方法:"获取",
     参数:{'sap-client':'110'},
     标头:{
       接受:" application/json,text/plain,*/*",
       授权:" Basic ",
       '代理授权':'载体',
       'Content-Type':'application/json',
       '用户代理':'axios/0.19.2',
       主持人:" s4d:44300"
     },
     transformRequest:[[功能:transformRequest]],
     transformResponse:[[功能:transformResponse]],
     超时:0,
     适配器:[功能:httpAdapter],
     xsrfCookieName:'XSRF-TOKEN',
     xsrfHeaderName:'X-XSRF-TOKEN',
     maxContentLength:-1,
     validateStatus:[功能:validateStatus],
     代理: {
       主持人:" connectivityproxy.internal.cf.eu10.hana.ondemand.com",
       端口:20003,
       通讯协定:「http」
     },
     baseURL:'http://s4d:44300',
     数据:未定义
   },
   要求:可写{
     _writableState:WritableState {
       objectMode:否,
       highWaterMark:16384,
       finalCalled:错误,
       needDrain:否,
       结尾:false,
       结束:错误,
       完成:错误,
       销毁:错误,
       encodeStrings:是的,
       defaultEncoding:'utf8',
       长度:0,
       写作:错误,
       软木塞:0,
       同步:是的,
       bufferProcessing:否,
       onwrite:[功能:绑定onwrite],
       writecb:null,
       writelen:0,
       afterWriteTickInfo:null,
       bufferedRequest:空,
       lastBufferedRequest:null,
       未决cb:0,
       预设:假,
       errorEmitted:错误,
       发出关闭:正确,
       autoDestroy:否,
       bufferedRequestCount:0,
       corkedRequestsFree:[对象]
     },
     可写:是的,
     _events:[对象:空原型] {
       响应:[功能:handleResponse],
       错误:[功能:handleRequestError]
     },
     _eventsCount:2
     _maxListeners:未定义,
     _options:{
       协议:" http:",
       maxRedirects:21,
       maxBodyLength:10485760,
       路径:'http://s4d:44300/sap/opu/odata/?sap-client = 110',
       方法:" GET",
       标头:[Object],
       代理:未定义,
       代理商:[对象],
       身份验证:未定义,
       主机名:" connectivityproxy.internal.cf.eu10.hana.ondemand.com",
       端口:20003,
       nativeProtocols:[Object],
       路径名:'http://s4d:44300/sap/opu/odata/',
       搜索:"?sap-client = 110"
     },
     _redirectCount:0,
     _redirects:[],
     _requestBodyLength:0,
     _requestBodyBuffers:[],
     _onNativeResponse:[功能],
     _currentRequest:ClientRequest {
       _events:[对象:空原型],
       _eventsCount:6
       _maxListeners:未定义,
       outputData:[],
       outputSize:0,
       可写:是的,
       _last:是的,
       chunkedEncoding:否,
       shouldKeepAlive:否,
       useChunkedEncodingByDefault:false,
       sendDate:否,
       _removedConnection:否,
       _removedContLen:否,
       _removedTE:否,
       _contentLength:0,
       _hasBody:是的,
       _预告片: '',
       完成:是的,
       _headerSent:是的,
       套接字:[套接字],
       连接:[Socket],
       _header:'GET http://s4d:44300/sap/opu/odata/?sap-client = 110 HTTP/1.1 \ r \ n'+
         '接受:应用程序/json,文本/纯文本,*/* \ r \ n'+
         '授权:基本'+
         '代理授权:承载'+
         '内容类型:application/json \ r \ n'+
         '用户代理:axios/0.19.2 \ r \ n'+
         '主机:s4d:44300 \ r \ n'+
         '连接:关闭\ r \ n'+
         '\ r \ n',
       _onPendingData:[功能:noopPendingOutput],
       代理商:[代理商],
       socketPath:未定义,
       方法:" GET",
       insecureHTTPParser:未定义,
       路径:'http://s4d:44300/sap/opu/odata/?sap-client = 110',
       _ended:错误,
       res:null,
       已中止:错误,
       timeoutCb:空,
       upgradeOrConnect:否,
       解析器:null,
       maxHeadersCount:null,
       repeatedSocket:否,
       _redirectable:[通告],
       [Symbol(kCapture)]:否,
       [Symbol(kNeedDrain)]:否,
       [符号(塞住)]:0,
       [Symbol(kOutHeaders)]:[对象:空原型]
     },
     _currentUrl:'http://connectivityproxy.internal.cf.eu10.hana.ondemand.com:20003/http://s4d:44300/sap/opu/odata/?sap-client=110',
     [Symbol(kCapture)]:错误
   },
   回应:未定义,
   isAxiosError:是的,
   toJSON:[功能]
 } 

[上面的问题日志已格式化为删除敏感信息]

通常,我能够使用webide的srv模块或使用已部署的nodejs应用程序成功运行我的nodejs代码,以使用本地系统中的数据。 因此,我不确定这个"连接ETIMEDOUT 3.124.222.77:20003"的原因是来自我的云连接器设置,还是来自我的本地nodejs环境。我在这里丢失了什么吗?

我的default-env.json基本如下(我还有另一个文件default-services.json,其中仅具有hana凭据部分-都在srv文件夹下):

 {
  " VCAP_SERVICES":{
  " hana":[
  {
  " label":" hana",
  "提供者":null,
  " plan":" hdi-shared",
  " name":" hdi",
  "标签":[
  " hana",
  "数据库",
  "关系的"
  ],
  " instance_name":" hdi",
  " binding_name":null,
  "凭据":{
   .......从我的云端铸造驾驶舱复制
 },
  " syslog_drain_url":null,
  " volume_mounts":[]
  }
  ],
  " xsuaa":[
  {
  " label":" xsuaa",
  "提供者":null,
  "计划":"申请",
  " name":" uaa",
  "标签":[
  " xsuaa"
  ],
  " instance_name":" uaa",
  " binding_name":null,
  "凭据":{
   .......从我的云端铸造驾驶舱复制
 },
  " syslog_drain_url":null,
  " volume_mounts":[]
  }
  ],
  "目的地":[
  {
  " label":"目的地",
  "提供者":null,
  " plan":" lite",
  " name":"目标服务",
  "标签":[
  "目的地",
  " conn",
  " connsvc"
  ],
  " instance_name":"目标服务",
  " binding_name":null,
  "凭据":{
   .......从我的云端铸造驾驶舱复制
 },
  " syslog_drain_url":null,
  " volume_mounts":[]
  }
  ],
  "连接性":[
  {
  " label":"连通性",
  "提供者":null,
  " plan":" lite",
  " name":" connectivity-service",
  "标签":[
  "连接性",
  " conn",
  " connsvc"
  ],
  " instance_name":"连接服务",
  " binding_name":null,
  "凭据":{
   .......从我的云端铸造驾驶舱复制
 },
  " syslog_drain_url":null,
  " volume_mounts":[]
  }
  ]
  }
 }
 

如果您曾经遇到过此类问题,请在评论部分给我一些提示。 任何有关此问题的建议,我们深表感谢。 谢谢您的时间!

此致

斯蒂芬

1条回答
太Q了
2020-08-13 10:41

嗨,斯蒂芬,

该功能不起作用,因为非SCP IP被代理服务阻止,并且这是所有云平台服务上常见的安全功能。 如果要在本地进行测试,则应仅使用服务的直接URL配置。 即:

"凭证":{
   " url":" your.on.prem.hostname/service"
 } 

一周热门 更多>