部署具有特定于租户的配置的多租户WebApi

时间:2018-06-08 19:57:18

标签: octopus-deploy

是否有办法为每个租户部署具有特定配置的单实例多租户感知Web api?

我们有一个Asp.net Web Api女巫通过JWT内部的声明识别租户,但进入web.config是每个租户的配置。实施例

<configuration>
<appSettings>
...
</appSettings>
<tenants>
   <tenant key="1">
      <add key="key1" value="false" />
   </tenant>
   <tenant key="2">
      <add key="key1" value="value2" />
   </tenant>
</tenants>
</configuration>

我们在Octopus中不使用多租户因为每个目标只安装一个,但我们无法想象如何为每个租户存储和插入配置。

任何想法?

1 个答案:

答案 0 :(得分:1)

完全披露:我为Octopus Deploy工作。

如果我理解正确,您有一个为多个租户提供服务的二进制文件,import React, { Component } from 'react'; import { View, Clipboard, Text, TouchableWithoutFeedback } from 'react-native'; import moment from 'moment'; import { colors } from '../../config'; let message; class ChatBubble extends Component { constructor(props) { super(props); message = this.props.message; } render() { return ( <View style={styles[message.direction].container}> <View style={styles.topContainerStyle}> <Text style={styles[message.direction].infoStyle}> {message.user.displayName} </Text> <Text style={styles[message.direction].infoStyle}> {moment(message.timeStamp).format('LT')} </Text> </View> <Text style={styles[message.direction].message}> {message.text} </Text> </View> ); } } const styles = { left: { container: { borderRadius: 20, borderBottomLeftRadius: 0, marginTop: 8, marginRight: 150, marginLeft: 10, paddingHorizontal: 10, paddingVertical: 5, alignSelf: 'flex-start', backgroundColor: colors.other.chatBubble, }, message: { color: 'black', padding: 10, paddingTop: 5, fontFamily: 'avenir_roman', fontSize: 16, }, infoStyle: { color: 'black', padding: 10, paddingBottom: 0, fontSize: 12, fontFamily: 'avenir_light', }, }, right: { container: { borderRadius: 20, borderBottomRightRadius: 0, marginTop: 8, marginRight: 10, marginLeft: 150, paddingHorizontal: 10, paddingVertical: 5, alignSelf: 'flex-end', backgroundColor: colors.secondary.blue, }, message: { color: 'white', padding: 10, paddingTop: 5, fontFamily: 'avenir_roman', fontSize: 16, }, infoStyle: { color: 'white', padding: 10, paddingBottom: 0, fontSize: 12, fontFamily: 'avenir_light', }, }, topContainerStyle: { flexDirection: 'row', justifyContent: 'space-between', }, }; export { ChatBubble };用于指定应用程序为哪些租户提供服务。

如果是这样,那么我建议将您的申请分成两个八达通项目。一个代表应用程序代码,另一个代表配置。配置项目将在Octopus中使用多租户为每个已部署的租户添加相关条目到web.config。这可以使用a config transformationa custom script完成。

SO是一个公共论坛,所以如果您想分享一些有关您项目的敏感信息,我建议您通过https://octopus.com/support与我们联系。

此致