是否有办法为每个租户部署具有特定配置的单实例多租户感知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中不使用多租户因为每个目标只安装一个,但我们无法想象如何为每个租户存储和插入配置。
任何想法?
答案 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 transformation或a custom script完成。
SO是一个公共论坛,所以如果您想分享一些有关您项目的敏感信息,我建议您通过https://octopus.com/support与我们联系。
此致