使用spring-cloud-cloudfoundry-service-broker
我们开发了service broker
最初我们在application.yml
文件中定义了目录项,这些目录项被捆绑在jar中,这一切都很有效。
我们考虑在将服务推送到manifest.yml
时通过cloud foundry
文件提供,而不是在jar文件中捆绑目录项。
但遗憾的是,应用程序没有获取manigest.yml
文件中指定的目录项。您能告诉我们如何通过manifest.yml
文件提供目录项吗?
我已将我的代码段复制到此处。
CatalogConfig.java
@ConfigurationProperties(prefix = "catalog")
@Component
public class CatalogConfig {
private List<ServiceDefinitionProxy> services;
public CatalogConfig() {
super();
}
@Bean
Catalog catalog() {
return new Catalog(services.stream().map(s -> s.unproxy())
.collect(Collectors.toList()));
}
public CatalogConfig(List<ServiceDefinitionProxy> services) {
super();
this.services = services;
}
public List<ServiceDefinitionProxy> getServices() {
return services;
}
public void setServices(List<ServiceDefinitionProxy> services) {
this.services = services;
}
public ServiceDefinitionProxy findServiceDefinition(String serviceId) {
return services.stream().filter(s -> s.getId().equals(serviceId))
.findFirst().get();
}
}
Manifest.yml
---
applications:
- name: my-service-broker
memory: 512M
instances: 1
host: my-service-broker
path: target/my-service-broker-1.0.0-SNAPSHOT.jar
env:
SPRING_PROFILES_DEFAULT: cloud
catalog:
services:
- id: f1478faa-d980-11e5-b5d2-0a1d41d68578
name: api-marketpace
description: API Marketplace
bindable: true
planUpdatable: true
head-type: api
tags:
- api
- Manage API Marketplace
metadata:
displayName: API Marketplace
imageUrl: https://my-service-broker.cf.com/images/logo.PNG
longDescription: API Marketplace.
providerDisplayName: API Team
documentationUrl: https://wikihub.com/display/ASC/Training
supportUrl: https://wikihub.com/display/ASC/Training
plans:
- id: f1478faa-d980-11e5-b5d2-0a1d41d68579
name: unlimited
description: free
metadata:
costs:
- amount:
usd: 0.00
unit: PER MONTH
bullets:
- Basic Unlimited
dashboardClient:
id: api-marketpace
secret: secret
redirectUrl: https://api.cf.com/
答案 0 :(得分:2)
那不行。
manifest.yml
文件由cf
CLI专门用于在将应用推送到CF时提供选项。部署的应用程序永远不会看到此文件或其任何内容。事实上,CF平台本身永远不会看到文件或其内容 - 它完全由客户端的CLI处理。
application.yml
文件由Spring Boot使用,内容通过@ConfigurationProperties
和其他方式提供给应用。
这是两个完全独立的概念和机制,两者都碰巧使用YAML数据格式。