Как настроить свойство vcap.services для развертывания mtar приложения весенней загрузки в SAP CloudFoun dry? - PullRequest
0 голосов
/ 15 марта 2020

Я работаю над приложением Spring Boot, использующим SAP Cloud SDK для Java, и развертываю приложение в SAP CloudFoun dry. Приложение зависит от предоставляемого пользователем сервиса для конфигурации, и мы можем получить доступ к этому сервису, используя свойство vcap.services. Пример файла manifest.yml, который работает для меня, приведен ниже.

---
applications:

  - name: some-app-name
    buildpacks:
      - sap_java_buildpack
    env:
      SPRING_CLOUD_CONFIG_URI: ${vcap.services.config-server-uri.credentials.uri}
    services:
      - config-server-uri

В приведенном выше файле manifest.yml config-server-uri - это имя службы и переменная среды приложения SPRING_CLOUD_CONFIG_URI получает значение, используя $ {vcap.services.config-server-uri.credentials.uri} .

Теперь я хочу развернуть то же самое, что и приложение MTAR на платформе SAP Cloud Cloud Foun dry. Чтобы добиться этого, я настроил mta.yml, как показано ниже.

ID: some_id
_schema-version: '2.1'
description: some description
version: 0.0.1
parameters:
  keep-existing-routes: true
modules:
- name: some-app-name
  type: java
  properties:
     SPRING_CLOUD_CONFIG_URI: ${vcap.services.config-server-uri.credentials.uri}
  requires:
   - name: config-server-uri
resources:
 - name: config-server-uri
   type: org.cloudfoundry.user-provided-service

Однако развертывание с вышеуказанной конфигурацией mta.yml завершается с ошибкой как $ {vcap.services.config-server-uri.credentials. uri} для SPRING_CLOUD_CONFIG_URI не может быть разрешен.

Вместо этого, если я заменю $ {vcap.services.config-server-uri.credentials.uri} на фактический URL-адрес, развертывание mtar приложения работает хорошо.

Может кто-нибудь подсказать мне, что я делаю не так и как настроить / получить доступ к свойству vcap.services в mta.yml для развертывания mtar?

1 Ответ

2 голосов
/ 17 марта 2020

Я бы рекомендовал не читать / отображать эту переменную среды как часть manifest.yml или mta.yml, но читать значение как часть вашего приложения Spring, например, используя bootstrap .yml .

Следующая ссылка также предоставляет пример того, как настроить его для Cloud Foun dry: https://cloud.spring.io/spring-cloud-config/multi/multi__spring_cloud_config_client.html#_security_2

Если вы развертываете свои приложения в Cloud Foun dry лучший способ предоставить пароль - через учетные данные службы (например, в URI, поскольку его не нужно указывать в файле конфигурации). Следующий пример работает локально и для предоставляемой пользователем службы в Cloud Foun dry с именем configserver:

bootstrap .yml

spring:
  cloud:
    config:
     uri: ${vcap.services.configserver.credentials.uri:http://user:password@localhost:8888}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...