使用 cloudFoundryOperations 获取 cloud foundry 用户提供者服务的 serviceInstanceName 和 serviceKeyName
get serviceInstanceName and serviceKeyName for cloud foundry user provider serves by using cloudFoundryOperations
我正在尝试获取 Cloud Foundry 中的 UPS 凭证:
使用:
Mono<ServiceKey> serviceKey = (Mono<ServiceKey>) cloudFoundryOperations
.services()
.getServiceKey(
GetServiceKeyRequest.builder()
.serviceKeyName("digital_cassandra")
.serviceInstanceName("2a5aa377-e992-4f88-9f85-d9cec5c3bea9")
.build())
.subscribe();
serviceKey.map(serviceKey1 -> {
System.out.println(serviceKey1.getCredentials().toString());
return serviceKey1.getCredentials().get(0);
});
但没有打印任何内容。
如何通过 cloudFoundryOperations 获取 serviceKeyName 和 serviceInstanceName?
我需要在 space.
中打印所有 serviceKeyName 和 serviceInstanceName
.serviceInstanceName("2a5aa377-e992-4f88-9f85-d9cec5c3bea9")
应该是真实的名字,不是guid。像“my-key”或任何你给密钥起的名字。
but nothing printed. how to fet the serviceKeyName and serviceInstanceName by cloudFoundryOperations?
如果您只想打印到控制台,请尝试这样的操作:
cloudFoundryOperations
.services()
.getServiceKey(GetServiceKeyRequest.builder()
.serviceInstanceName("reservation-db")
.serviceKeyName("cf-mysql")
.build())
.doOnNext(key -> {
System.out.println("Key:");
System.out.println(" " + key.getName() + " (" + key.getId() + ")");
key.getCredentials().forEach((k, v) -> {
System.out.println(" " + k + " => " + v);
});
})
.block();
GetServiceKeyRequest 确定查找哪个服务密钥。 doOnNext
调用允许您检查但不使用密钥,它可以很好地打印出来。然后示例调用 .block()
等待结果,这很好,因为这只是一个示例。但是,您不想在实际代码中这样做。您可能想要 subscribe()
变体之一(您也可以将 subscribe()
换成 doOnNext()
,这取决于您的代码在做什么)。
i need to print all the serviceKeyName and serviceInstanceName in my space.
获取所有服务实例的所有密钥:
cloudFoundryOperations
.services()
.listInstances()
.doOnNext(si -> {
System.out.println(" " + si.getName() + " (" + si.getId() + ")");
})
.flatMap((ServiceInstanceSummary si) -> {
return ops
.services()
.listServiceKeys(ListServiceKeysRequest.builder()
.serviceInstanceName(si.getName())
.build())
.doOnNext(key -> {
System.out.println("Key:");
System.out.println(" " + key.getName() + " (" + key.getId() + ")");
key.getCredentials().forEach((k, v) -> {
System.out.println(" " + k + " => " + v);
});
});
})
.blockLast();
这个正在枚举所有服务实例,打印 name/id,然后使用 flatMap
出去获取每个服务实例的服务密钥。然后它将它们全部合并为一个Flux<ServiceKey>
。 doOnNext()
仅用于打印。您不一定非要这样做。您可以通过多种方式使用结果,例如将其收集到列表中或订阅它,这只是一个很好的例子。使用最适合您的代码的方法。
我正在尝试获取 Cloud Foundry 中的 UPS 凭证: 使用:
Mono<ServiceKey> serviceKey = (Mono<ServiceKey>) cloudFoundryOperations
.services()
.getServiceKey(
GetServiceKeyRequest.builder()
.serviceKeyName("digital_cassandra")
.serviceInstanceName("2a5aa377-e992-4f88-9f85-d9cec5c3bea9")
.build())
.subscribe();
serviceKey.map(serviceKey1 -> {
System.out.println(serviceKey1.getCredentials().toString());
return serviceKey1.getCredentials().get(0);
});
但没有打印任何内容。 如何通过 cloudFoundryOperations 获取 serviceKeyName 和 serviceInstanceName? 我需要在 space.
中打印所有 serviceKeyName 和 serviceInstanceName.serviceInstanceName("2a5aa377-e992-4f88-9f85-d9cec5c3bea9")
应该是真实的名字,不是guid。像“my-key”或任何你给密钥起的名字。
but nothing printed. how to fet the serviceKeyName and serviceInstanceName by cloudFoundryOperations?
如果您只想打印到控制台,请尝试这样的操作:
cloudFoundryOperations
.services()
.getServiceKey(GetServiceKeyRequest.builder()
.serviceInstanceName("reservation-db")
.serviceKeyName("cf-mysql")
.build())
.doOnNext(key -> {
System.out.println("Key:");
System.out.println(" " + key.getName() + " (" + key.getId() + ")");
key.getCredentials().forEach((k, v) -> {
System.out.println(" " + k + " => " + v);
});
})
.block();
GetServiceKeyRequest 确定查找哪个服务密钥。 doOnNext
调用允许您检查但不使用密钥,它可以很好地打印出来。然后示例调用 .block()
等待结果,这很好,因为这只是一个示例。但是,您不想在实际代码中这样做。您可能想要 subscribe()
变体之一(您也可以将 subscribe()
换成 doOnNext()
,这取决于您的代码在做什么)。
i need to print all the serviceKeyName and serviceInstanceName in my space.
获取所有服务实例的所有密钥:
cloudFoundryOperations
.services()
.listInstances()
.doOnNext(si -> {
System.out.println(" " + si.getName() + " (" + si.getId() + ")");
})
.flatMap((ServiceInstanceSummary si) -> {
return ops
.services()
.listServiceKeys(ListServiceKeysRequest.builder()
.serviceInstanceName(si.getName())
.build())
.doOnNext(key -> {
System.out.println("Key:");
System.out.println(" " + key.getName() + " (" + key.getId() + ")");
key.getCredentials().forEach((k, v) -> {
System.out.println(" " + k + " => " + v);
});
});
})
.blockLast();
这个正在枚举所有服务实例,打印 name/id,然后使用 flatMap
出去获取每个服务实例的服务密钥。然后它将它们全部合并为一个Flux<ServiceKey>
。 doOnNext()
仅用于打印。您不一定非要这样做。您可以通过多种方式使用结果,例如将其收集到列表中或订阅它,这只是一个很好的例子。使用最适合您的代码的方法。