当前位置: 首页 > 知识库问答 >
问题:

使用Azure Power Shell将应用设置添加到现有Azure Web应用程序

韦正业
2023-03-14

我想编写一个使用azure power shell运行的脚本来自动添加Web应用程序配置

蔚蓝的

它看起来像key="value"

我写这个脚本

###########################
# MyApp Config Automation #
###########################

#Begin

$subscriptionName="MySubscriptionName"
$webSiteName="MyWebAppName"
$storageAccountName="StorageAccountName"
########################################
$userName = "myaccount@outlook.com"
$securePassword = ConvertTo-SecureString -String "mypass" -AsPlainText -Force
#####################################
$cred = New-Object System.Management.Automation.PSCredential($userName, $securePassword)
#####################################
Add-AzureAccount -Credential $cred 
Select-AzureSubscription -SubscriptionName $subscriptionName -Default
#####################################
Get-AzureWebsite -Name $webSiteName

#End

但我知道上面的脚本只是获取我的Web应用程序,现在我需要访问MyWebApp

编辑:该脚本可以自动创建新的web应用程序并向其添加应用程序设置:

##############################################
# Creating website and Adding Configs Script #
##############################################

$webSiteName="mywebsite"
$storageAccountName="storageaccount"
$subscriptionName="mysubsc"
$userName = "myaccount"
$securePassword = ConvertTo-SecureString -String "mypass" -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential($userName, $securePassword)
Add-AzureAccount -Credential $cred 
Select-AzureSubscription -SubscriptionName $subscriptionName -Default

New-AzureWebsite -Name $webSiteName
New-AzureStorageAccount –StorageAccountName $storageAccountName -Location "South Central US"
$ClientId="dfgdf6"
$Password="ffefe"
$StorageAccountKey = Get-AzureStorageKey -StorageAccountName $storageAccountName
$AppSettings = @{"StorageAccountPrimary" = $StorageAccountKey.Primary;"StorageAccountSecondary" = $StorageAccountKey.Secondary;"ida:ClientId"=$ClientId;"ida:Password"=$Password}

Set-AzureWebsite -Name $webSiteName -AppSettings $AppSettings

共有3个答案

公良运锋
2023-03-14

这些答案显示了它们的年龄,因为原始的电源外壳和 AzureRM 都已弃用。若要使用 Az 强势外壳模块执行此操作,它看起来像这样:

Connect-AzAccount
$site = Get-AzWebApp -Name foo-com-dev-as
$oldSettings = ($site.SiteConfig.AppSettings | % { $h = @{} } { $h[$_.Name] = $_.Value } { $h })

$newSettings = @{ StorageAccountPrimary = $StorageAccountKey.Primary
                  StorageAccountSecondary = $StorageAccountKey.Secondary
                  "ida:ClientId" = $ClientId
                  "ida:Password" = $Password }

Set-AzWebApp -ResourceGroupName foo-com-dev-rg -Name foo-com-dev-as -AppSettings ($oldSettings + $newSettings)

  1. 连接 AzAccount - 连接到 Azure 帐户,如果需要选择订阅,则可能需要执行后续步骤
  2. $site = Get-AzWebApp... - 检索要修改的站点
  3. $oldSettings... - 获取所有现有设置并将其放入哈希表中
    1. $site。SiteConfig.AppSettings |% - 通过 ForEach-Object 的速记别名对每个设置进行管道(传递)
    2. { $h = @{} } - 通过 -Begin 位置参数创建一个 HashTable
    3. { $h[$_.Name] = $_Value } - 为$site中的每个值向 HashTable 中添加一个命名值。SiteConfig.AppSettings 通过 -Process positional 参数
    4. { $h } - 通过 -End 位置参数将新填充的 HashTable 返回到左侧的变量

薛华奥
2023-03-14

首先设置这两个变量。

$myResourceGroup = 'RESOURCE_GROUP_NAME'
$mySite = 'SITE_NAME'

然后切换到新的资源管理器模式,并登录到您的帐户。

Switch-AzureMode AzureResourceManager
Get-AzureAccount

然后检索应用设置。(请注意,后退刻度线 (') 表示新行。

(Invoke-AzureResourceAction -ResourceGroupName $myResourceGroup `
 -ResourceType Microsoft.Web/sites/Config -Name $mySite/appsettings `
 -Action list -ApiVersion 2015-08-01 -Force).Properties

要更新设置,首先将它们放入变量中。

$props = (Invoke-AzureResourceAction -ResourceGroupName $myResourceGroup `
 -ResourceType Microsoft.Web/sites/Config -Name $mySite/appsettings `
 -Action list -ApiVersion 2015-08-01 -Force).Properties

要使用<code>设置AzureWebsite

 $hash = @{}
 $props | Get-Member -MemberType NoteProperty | % { $hash[$_.Name] = $props.($_.Name) }

现在在哈希表中添加/更新值。

$hash.NewKey = "NewValue"
$hash.ExistingKey = "NewValue"

然后切换回服务管理模式并提交设置。

Switch-AzureMode AzureServiceManagement
Set-AzureWebsite -Name $mySite -AppSettings $hash
$myResourceGroup = 'RESOURCE_GROUP_NAME'
$mySite = 'SITE_NAME'

Switch-AzureMode AzureResourceManager
Get-AzureAccount

(Invoke-AzureResourceAction -ResourceGroupName $myResourceGroup `
 -ResourceType Microsoft.Web/sites/Config -Name $mySite/appsettings `
 -Action list -ApiVersion 2015-08-01 -Force).Properties

$props = (Invoke-AzureResourceAction -ResourceGroupName $myResourceGroup `
 -ResourceType Microsoft.Web/sites/Config -Name $mySite/appsettings `
 -Action list -ApiVersion 2015-08-01 -Force).Properties

 $hash = @{}
 $props | Get-Member -MemberType NoteProperty | % { $hash[$_.Name] = $props.($_.Name) }

$hash.NewKey = "NewValue"
$hash.ExistingKey = "NewValue"

Switch-AzureMode AzureServiceManagement
Set-AzureWebsite -Name $mySite -AppSettings $hash

Azure 服务管理器和 Azure 资源管理器不适合在同一会话中使用。目前,后者似乎不允许通过设置 Azure 资源更新应用设置。以上是一种解决方法。另一种方法是使用 Azure CLI 而不是超级外壳。

危烨煜
2023-03-14

以下是基于12/2015 Azure PowerShell命令的更新。示例是特定于插槽的设置,如果您想要全局设置,请使用Get/Set AzureRmWebApp并删除-slot参数

$myResourceGroup = 'PartsUnlimitedMRP'
$mySite = 'centpartsunlimited'

$webApp = Get-AzureRMWebAppSlot -ResourceGroupName $myResourceGroup -Name $mySite -Slot production
$appSettingList = $webApp.SiteConfig.AppSettings

$hash = @{}
ForEach ($kvp in $appSettingList) {
    $hash[$kvp.Name] = $kvp.Value
}

$hash['NewKey'] = "NewValue"
$hash['ExistingKey'] = "NewValue"

Set-AzureRMWebAppSlot -ResourceGroupName $myResourceGroup -Name $mySite -AppSettings $hash -Slot production
 类似资料:
  • 问题内容: 我一直在开发React应用程序,现在我需要Redux来处理它的某些方面。 阅读了一堆教程之后,我相当着迷于如何使“更智能”的组件“笨拙”以及如何将功能移入我的动作和化简器中。 因此,例如,应用程序的一个方面更多是待办事项列表样式。 我的课程之一是这样开始的: 因此,如您所见,这是非常繁重的逻辑。我已经开始通过在索引文件中添加来添加Redux ,并制作了一个基本的reducers文件,该

  • 我有一个工作应用程序,我想添加语音命令。当前应用程序定期(定时器)通过蓝牙来回传输数据。用户可以按按钮和NumberPickers来修改通过蓝牙发送的数据。还有从蓝牙链接接收到的数据,并显示在文本视图中。此应用程序目前工作正常。 我想做的是添加语音命令功能,以便用户可以选择按下按钮/数字选择器,或者可以仅使用语音命令更改值。 我测试了一些可以在各种网站上找到的从语音到文本的例子。我成功地测试了一个

  • 我有一个现有的Spring应用程序,它是一个web应用程序,我正在尝试向它添加一个REST API。 我不知道如何连接所有东西,使其工作 我在网上添加了一个条目。xml。最初,servlet类指向我创建的DispatcherServlet,但我将其指向org。springframework。网状物servlet。我在网上找到的基于DispatcherServlet的东西。 网状物xml rest-

  • 我很难知道如何将我的JFXPanel(它是一个mp3播放器)集成到一个现有的Swing应用程序中,该应用程序是一个JFrame,其中添加了几个不同的JPanel。我对JavaFX是一个完全的noob,它与Swing非常不同。 我能够得到下面的代码来运行和做我想做的事情。它将播放mp3文件从一个目录,我有他们包含在。这是某人编写的示例中的代码。我的问题是,这段代码创建了JFrame,有main方法和

  • 在我的昂首阔步的UI中,当我单击“试用”并执行一个请求时,请求是在没有任何令牌的情况下发送的。 问题--有什么方法可以查询登录请求并将授权令牌添加到Swagger UI请求中吗?

  • 我在Kubernetes服务的默认命名空间上安装了一个python应用程序。它使用starlette\u exporter,并向Prometheus公开endpoint。当我访问endpoint时,我看到: 我还在库伯内特斯服务的命名空间上安装了。它没有自定义,我使用此命令进行安装: 要将我的应用程序指标添加到Prometheus堆栈中,我可以在Grafana仪表板上跟踪它们,有哪些必要步骤?据我