xs-app.json/routes/0: 格式验证失败(路由引用未知目的地 "service-destination")

xs-app.json/routes/0: Format validation failed (Route references unknown destination "service-destination")

正在按照本教程安装 approuter:

https://blogs.sap.com/2017/07/18/step-7-with-sap-s4hana-cloud-sdk-secure-your-application-on-sap-cloud-platform-cloudfoundry/

将批准者推送到 CF 时,出现目标错误:

xs-app.json/routes/0: Format validation failed (Route references unknown destination "service-destination")

这是我的 manifest.yml:

---
applications:
- name: xyz
  command: 'node approuter/approuter.js'
  host: xyz-93deb1cd-7b72-4060-94e7-21342342
  path: approuter
  memory: 128M
  buildpack: https://github.com/cloudfoundry/nodejs-buildpack
  env:
    TENANT_HOST_PATTERN: 'xyz(.*).cfapps.eu10.hana.ondemand.com'
    destinations: "[{"name":"service-destination", "url": "https://gfuowbasdatq19agtuthorizations-srv.cfapps.eu10.hana.ondemand.com", "forwardAuthToken": true}]"
    SAP_JWT_TRUST_ACL: '[{"clientid" : "*", "identityzone" : "*"}]'

  services:
    - my-xsuaa
    - service-destination

这是我的xs-app.json:

{
  "routes": [{
    "source": "/",
    "target": "/",
    "destination": "service-destination"
  }]
}

应用程序实际上在哪里搜索这个目的地?我也在我的 CF 帐户中创建了它,指向我的服务-url.

在 YAML(以及许多其他标记语言,例如 JSON)中,双引号内的双引号需要转义。 (参照the YAML spec section 7.3.1 and this blog post)

所以对于您来说,您的 destinations 变量有两个选项: 1.将里面的"全部替换成\"(比较麻烦,尤其是以后要换目的地) 2. 使用单引号作为边界。所以你的 destinations 变量的值看起来像这样:

'[{"name":"service-destination", "url": "https://gfuowbasdatq19agtuthorizations-srv.cfapps.eu10.hana.ondemand.com", "forwardAuthToken": true}]'