创建新Slot时更改WebApp AppSetting值

时间:2017-09-29 09:11:20

标签: powershell azure azure-deployment-slots

为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。

1 个答案:

答案 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

enter image description here

question会有所帮助。