如何在部署时为跨容器项目更改服务名称

2020-09-06 12:03发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好, 我正在一个项目中...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

我正在一个项目中,我想要一个单独的HDI DB模块,其中包含常见的类似主数据的维计算视图。 我的想法是通过跨容器访问更特定于业务的数据库模块(这些数据库具有自己的报告计算视图,但可以与主数据维视图结合使用)来使这些常用视图可重复使用。 通过遵循本教程,我可以使此工作有所工作:

https://developers.sap.com/tutorials/xsa-cross-container-access .html

我不清楚要如何为可能具有不同名称的 consumed-db 定义 service-name ? 例如,本教程中的示例使用了构建时服务名称,它看起来像 RHOWLES-9skqv35et1oio3vg-SflightExample-hdi_db_sflight ,但是在部署时将是 hdi_db_sflight 。 我们在 DEVELOPMENT 空间中进行开发,并在 DEPLOY 空间中进行部署,因此我认为在开发过程中我将不具有可见性来引用 hdi_db_sflight

示例YAML:

 ID:SflightCrossContainerExample
 _schema-version:" 2.0"
 版本:0.0.1

 模块:
  -名称:db_sflight_cc_example
    类型:hdb
    路径:db_sflight_cc_example
    要求:
     -名称:hdi_db_sflight_cc_example
       特性:
         TARGET_CONTAINER:'〜{hdi-container-name}'
     -名称:consumed-md-container
       组:SERVICE_REPLACEMENTS
       特性:
         密钥:consumpted-db
         服务:"〜{consumed-service-name}"

 资源:
  -名称:hdi_db_sflight_cc_example
    参数:
       配置:
          架构:SFLIGHT_CC_EXAMPLE
    特性:
       hdi-container-name:$ {服务名称}
    类型:com.sap.xs.hdi-container

  -名称:consumed-md-container
    类型:org.cloudfoundry.existing-service
    参数:
       服务名称:RHOWLES-9skqv35et1oio3vg-SflightExample-hdi_db_sflight
    特性:
       消费服务名称:" $ {service-name}" 

这是我可以使用xs部署标志实现的功能,还是必须在mtad.yaml部署描述符中执行的操作?

感谢您的帮助。

7条回答
hengyuye
2020-09-06 12:27

嘿,托马斯,

"您真的不应该在交叉容器引用中使用构建时服务名称。"

< p>这正是我要避免的事情。 昨天我确实浏览了.mtaext文档( https://help.sap.com /viewer/4505d0bdaf4948449b7f7379d24d0f0d/2.0.03/en-US/51ac525c78244282919029d8f5e2e35d.html ),但是由于考虑到以下警告,我无法成功使用它:

您可以 使用MTA部署扩展描述符将以下信息(在部署时)添加到MTA部署描述符中:

  • 属性元素,例如新属性或 参数。
  • 自开发/构建以来,尚未定义值的属性的值

,我希望它能够成功构建,我可以指向设计时或已部署的等效项(假设它也已部署),但这听起来像.mtaext要求我从中删除现有的service-name参数。 为了它mta.yaml 要使用的? 也许如果我们有Jenkins或其他CI/CD框架,它可能会为我删除.mtar,但是我们处于XSA的早期采用阶段,因此我们的部署目前是简单的xs cli语句。

我是否缺少一种方法让mtaext覆盖mta.yaml中的就地属性? 我的新手尝试使用.mtaext:

 _schema-version:'2.0'
 ID:SflightCrossContainerExample.config
 扩展:SflightCrossContainerExample


 资源:
  -名称:consumed-md-container
    特性:
       消耗的服务名称:db_sflight
 

另一个失败的尝试:

 _schema-version:" 2.0"
 ID:SflightCrossContainerExample.config
 扩展:SflightCrossContainerExample


 资源:
  -名称:consumed-md-container
    参数:
       服务名称:db_sflight
    特性:
       已消耗服务名称:'$ {service-name}'

即使使用xs deploy file.mtar -e extension.mtaext,它仍然会代替使用mta.yaml中引用的服务

一周热门 更多>