【问题标题】:API to add properties to Azure Webapp Application settings用于将属性添加到 Azure Webapp 应用程序设置的 API
【发布时间】:2017-12-11 09:41:08
【问题描述】:

我有一个在 Azure 应用服务计划上运行的 Web 应用。 Web 应用程序在 Web 应用程序的应用程序设置中定义了很多设置。现在我想复制该 Web 应用程序及其所有应用程序设置。我得到了 REST API 来列出任何 Web 应用程序 (/api/settings) 的所有可用设置。虽然有一个 POST 调用来添加/更新设置,但它并没有更新应用程序设置。

是否有任何 REST API 来添加/更新 Azure Web 应用的应用程序设置?

谢谢, 阿比拉姆

【问题讨论】:

    标签: azure azure-web-app-service azure-app-service-plans


    【解决方案1】:

    是否有任何 REST API 来添加/更新 Azure Web 应用的应用程序设置?

    是的,我们可以使用以下Update Application Settings REST API 更新应用程序设置

    Put https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resource group}/providers/Microsoft.Web/sites/{WebAppName}/config/appsettings?api-version=2016-08-01
    

    身体

    {
      "id": "subscriptions/{subscriptionId}/resourceGroups/{resource group}/providers/Microsoft.Web/sites/{WebAppName}/config/appsettings",
      "name": "appsettings",
      "type": "Microsoft.Web/sites/config",
      "location": "South Central US",
      "tags": {
        "hidden-related:/subscriptions/{subscriptionId}/resourceGroups/{groupName}/providers/Microsoft.Web/serverfarms/tomfreePlan": "empty"
      },
      "properties": {
        "WEBSITE_NODE_DEFAULT_VERSION": "6.9.1",
        "Test1": "testValue1" //Added value
      }
    }
    

    注意:我们可以使用下面的List Application Settings REST APIpost方式来列出appsetting body。

     Post https://management.azure.com/subscriptions/{subscription}/resourceGroups/CXP-{resourceGroup}/providers/Microsoft.Web/sites/{WebAppName}/config/appsettings/list?api-version=2016-08-01
    

    【讨论】:

    • 此 REST API 需要订阅 ID 和资源组。它还需要 Azure 帐户身份验证。但是我只有站点部署凭据,我只能控制站点而不是 Azure 帐户。 Kudus API /api/settings 说可以删除设置,但是不能删除
    • @user2768967 正如您所提到的,如果您想更新 Azure WebApp 应用程序设置,则需要 Azure 帐户身份验证。 Kudus API/api/settings 只是 kudu 网站 配置设置而不是 webapp 应用程序设置。你可能会弄错这两个api。
    【解决方案2】:

    据我所知,没有。但是您是否考虑过使用 ARM 模板编写 Web 应用设置脚本?这正是 ARM 模板的用途。

    下面列出了 Web 应用的 ARM 模板的属性部分的示例,它允许您编写 appSettings 和 connectionStrings 脚本:

    "properties": {
        "name": "YourWebAppsName",
        "serverFarmId": "[resourceId('Microsoft.Web/serverfarms', YourAppServicePlanName)]",
        "siteConfig": {
            "appSettings": [
                {
                  "name": "someAppSettingKey",
                  "value": "someAppSettingValue"
                },
                {
                  "name": "someOtherAppSettingKey",
                  "value": "someOtherAppSettingValue"
                }
            ],
            "connectionStrings": [
                {
                  "name": "defautlConnection",
                  "connectionString": "YourConnectionString",
                  "type": "2"
                },
            ]
        }
    

    部署 ARM 模板时,Azure 将确保目标资源的设置与模板中指定的设置相匹配。

    Visual Studio 具有用于开发和部署这些的项目类型。它是位于项目模板中云节点下的 Azure 资源组项目类型。

    作为额外的奖励,您可以将这些 ARM 模板与您的代码一起检查到源代码控制中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-24
      • 1970-01-01
      相关资源
      最近更新 更多