为Azure WebApp创建新Slot时,如何成功更改一个或多个AppSettings?
docs for New-AzureRmWebAppSlot
表示有一个名为New-AzureRmWebApp
的参数,但这不起作用。
应该注意的是,链接的文档似乎错误地引用了New-AzureRmWebAppSlot -ResourceGroupName $resourceGroupName -Name $webAppName -Slot $slotName -AppSettingsOverrides @{"FUNCTION_APP_EDIT_MODE" = "readwrite"} -ErrorAction Stop
Cmdlet,因此我无法确定参数是否实际有效(尽管它似乎被接受而没有错误)。
这是我正在运行的代码。
export class StartContainer extends Component {
constructor(props) {
super(props);
this.state = {
showModal: false
};
}
handleOpenModal = () => {
console.log("Here")
//this.setState({ showModal: true }, () =>{ console.log(this.state) });
this.setState(() => {
console.log("Changing state")
return { showModal: true }
});
}
handleCloseModal = () => {
console.log(this.state.showModal)
this.setState( );
}
render() {
console.log(this.state)
return (
<div>
<StartComponent handleModalOpen={this.handleOpenModal} />
<ReactModal
isOpen={this.state.showModal}
contentLabel="Minimal Modal Example"
>asda
<button onClick={this.handleCloseModal}>Close Modal</button>
</ReactModal>
</div>
)
}
}
是否还有其他人遇到过这种看似不正确的行为,如果有的话,您是如何解决的?
我的Azure版本是3.5.0。
答案 0 :(得分:3)
您可以先创建Slot,然后使用Set-AzureRmWebAppSlot
更改AppSetting。以下脚本适用于我。
$myResourceGroup = "shuiapp"
$mySite = "shuicli"
$slotName = "Test1"
$webApp = Get-AzureRMWebAppSlot -ResourceGroupName $myResourceGroup -Name $mySite -Slot $slotName
$appSettingList = $webApp.SiteConfig.AppSettings
$hash = @{}
ForEach ($kvp in $appSettingList) {
$hash[$kvp.Name] = $kvp.Value
}
$hash['ExistingKey2'] = "NewValue12"
Set-AzureRMWebAppSlot -ResourceGroupName $myResourceGroup -Name $mySite -AppSettings $hash -Slot $slotName
question会有所帮助。