xs-app.json / маршруты / 0: проверка формата не удалась (маршрут ссылается на неизвестный пункт назначения «service-destination») - PullRequest
0 голосов
/ 26 апреля 2019

пытается установить approuter в настоящее время, следуя этому руководству:

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

При перемещении approuter к CF я получаю ошибку назначения:

xs-app.json / route / 0: проверка формата не удалась (маршрут ссылается на неизвестное место назначения "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.

1 Ответ

0 голосов
/ 29 апреля 2019

В YAML (как и во многих других языках разметки, например, JSON) двойные кавычки внутри двойных кавычек должны быть экранированы. (См. спецификацию YAML , раздел 7.3.1 и это сообщение в блоге )

Так что для вас есть две опции для вашей переменной destinations: 1. Замена всех " внутри на \" (относительно громоздко, особенно если вы хотите изменить пункты назначения в будущем) 2. Используйте одинарные кавычки в качестве границ. Таким образом, значение вашей переменной destinations будет выглядеть так:

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