s4sdk - 错误:找不到文件 /home/vcap/app/xs-app.json
问题描述
正在尝试按照本教程安装 approuter:
将 approuter 推送到 CF 时,出现错误:
2019-04-29T08:39:34.43+0200 [APP/PROC/WEB/0] ERR /home/vcap/app/approuter/lib/environment.js:19
2019-04-29T08:39:34.43+0200 [APP/PROC/WEB/0] ERR throw new Error('File not found ' + xsappFile);
2019-04-29T08:39:34.43+0200 [APP/PROC/WEB/0] ERR ^
2019-04-29T08:39:34.43+0200 [APP/PROC/WEB/0] ERR Error: File not found /home/vcap/app/xs-app.json
这是我的 manifest.yml:
---
applications:
- name: xyz
command: 'node approuter/approuter.js'
host: xyz-93deb1cd-7b72-4060-94e7-30baef85d259
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://gfuowb4ett234agtuthorizations-srv.cfapps.eu10.hana.ondemand.com", "forwardAuthToken": true}]'
SAP_JWT_TRUST_ACL: '[{"clientid" : "*", "identityzone" : "*"}]'
services:
- my-xsuaa
- service-destination
这是我的 xs-app.json,它位于我的“approuter”文件夹中。
{
"routes": [{
"source": "/",
"target": "/",
"destination": "service-destination"
}]
}
当我将 xs-app.json 移动到预期的根文件夹中时,我收到以下错误消息:
xs-app.json/routes/0: Format validation failed (Route references unknown destination "service-destination")
解决方案
我猜approuter正在查看绑定的目标服务而不是目标环境变量。
我注意到有一个名为“service-destination”的目标服务实例,但是您已经在环境变量中定义了一个同名的目标。
任何一个都应该在场。
我建议要么在环境变量中维护目标并从服务部分中删除条目
---
applications:
- name: xyz
command: 'node approuter/approuter.js'
host: xyz-93deb1cd-7b72-4060-94e7-30baef85d259
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://gfuowb4ett234agtuthorizations-srv.cfapps.eu10.hana.ondemand.com", "forwardAuthToken": true}]'
SAP_JWT_TRUST_ACL: '[{"clientid" : "*", "identityzone" : "*"}]'
# remove the service-destination from here and unbind any destination service if already bound
services:
- my-xsuaa
或者不维护目标环境变量 - 而是在目标服务实例 GUI 中维护它(来自驾驶舱)
---
applications:
- name: xyz
command: 'node approuter/approuter.js'
host: xyz-93deb1cd-7b72-4060-94e7-30baef85d259
path: approuter
memory: 128M
buildpack: https://github.com/cloudfoundry/nodejs-buildpack
env:
TENANT_HOST_PATTERN: 'xyz(.*).cfapps.eu10.hana.ondemand.com'
SAP_JWT_TRUST_ACL: '[{"clientid" : "*", "identityzone" : "*"}]'
services:
- my-xsuaa
- service-destination
笔记:
保持目标名称和目标实例名称相同可能会导致很多混乱。
如果您遵循第一种方法,请手动取消绑定服务目标/目标实例。从服务部分中删除条目不会自动解除绑定。
推荐阅读
- sql - SQL 计数不同的输出不是所希望的
- python - Inserting multiple values into a database
- javascript - 带有标题后退按钮的反应导航抽屉导航器
- sql-server - 如何找出同一张表中特定状态的多个计数
- python - Python 3,打包的字节顺序/字顺序输出问题
- python - 如何在python数据框中执行包含条件的字符串
- vb.net - 运行时控件大小不同
- android - NetworkBoundResource 连续调用
- angular - Angular - 是否使用标签或按钮
- javascript - 数组长度返回 0