json - Azure 资源管理器 : Web App Slots Config: App Service Authentication

标签 json azure web-applications azure-resource-manager azure-deployment-slots

我在将应用服务身份验证应用于我的 Web 应用程序插槽时遇到问题。

我收到的错误如下:

“类型“Microsoft.WindowsAzure.ResourceStack.Frontdoor.Common.Entities.TemplateGenericProperty`1[System.String]”的模板资源“webapptest1a/authconfig”位于第“1”行和“8107”列段长度不正确。嵌套资源类型的段数必须与其资源名称相同。根资源类型的段长度必须比其资源名称大一”

这是我的代码,我认为它非常正确。我发现很难找到 Web 应用程序插槽配置的引用。我有 Microsoft 文档,并且遵循了它,但没有运气。

这是我的代码:

{
        "type": "Microsoft.Web/sites/slots/config",
        "name": "[concat(parameters('webAppName'),'/authconfig')]",
        "apiVersion": "2018-11-01",
        "location": "[resourceGroup().location]",
        "dependsOn": [
            "[parameters('webAppName')]",
            "[concat(parameters('sqlDatabase'), 'constr')]"
        ],
         "properties": {
            "enabled": true,
            "runtimeVersion": "~1",
            "unauthenticatedClientAction": "RedirectToLoginPage",
            "tokenStoreEnabled": true,
            "allowedExternalRedirectUrls": null,
            "defaultProvider": "AzureActiveDirectory",
            "clientId": null,
            "clientSecret": null,
            "clientSecretCertificateThumbprint": null,
            "issuer": null,
            "allowedAudiences": [
                "https://webapptest1a-staging.azurewebsites.net"
            ],
            "additionalLoginParams": null,
            "isAadAutoProvisioned": false,
            "googleClientId": null,
            "googleClientSecret": null,
            "googleOAuthScopes": null,
            "facebookAppId": null,
            "facebookAppSecret": null,
            "facebookOAuthScopes": [
            ""
            ],
            "twitterConsumerKey": null,
            "twitterConsumerSecret": null,
            "microsoftAccountClientId": null,
            "microsoftAccountClientSecret": null,
            "microsoftAccountOAuthScopes": [
            ""
            ]
            }
        },

我真的很震惊,我已经尝试了很多变体,但我还没有接近。

我将名称更改为几个不同的变体,然后我收到了不同的错误,但与命名约定有关。

"name": "[concat(parameters('webAppName'), '/appsettings')]",

我还将“取决于”两次更改为:

"[parameters('webAppName')]",
                "[concat(parameters('sqlDatabase'), 'constr')]"

致:

"[concat('Microsoft.Web/sites/', parameters('webAppName'))]",
            "[concat(parameters('sqlDatabase'), 'constr')]"

我真的被困住了!希望得到一些指导。

谢谢

最佳答案

正如错误所示,“根级资源的名称中必须比资源类型少一个段”。您在此处传递的资源名称不正确。由于 Type 的段长度为 4,Name 的段长度必须为 3。因此,在配置名称中,您还必须传递插槽名称,如下所示(您可以更改根据您的模板的插槽名称和配置名称)

[concat(parameters('webAppName'), '/staging/web')]

请检查以下示例以供引用:

{
    "type": "Microsoft.Web/sites/slots/config",
    "apiVersion": "2018-11-01",
    "name": "[concat(parameters('webAppName'), '/staging/web')]",
    "location": "East US",
    "dependsOn": [
        "[resourceId('Microsoft.Web/sites/slots', parameters('webAppName'), 'staging')]",
        "[resourceId('Microsoft.Web/sites', parameters('webAppName'))]"
    ],
    "properties": {
        "numberOfWorkers": 1,
        "defaultDocuments": [
            "Default.htm",
            "Default.html",
            "Default.asp",
            "index.htm",
            "index.html",
            "iisstart.htm",
            "default.aspx",
            "index.php",
            "hostingstart.html"
        ],
        "netFrameworkVersion": "v4.0",
        "requestTracingEnabled": false,
        "remoteDebuggingEnabled": false,
        "remoteDebuggingVersion": "VS2019",
        "httpLoggingEnabled": false,
        "logsDirectorySizeLimit": 35,
        "detailedErrorLoggingEnabled": false,
        "publishingUsername": "$mytestap345__staging",
        "scmType": "None",
        "use32BitWorkerProcess": true,
        "webSocketsEnabled": false,
        "alwaysOn": false,
        "managedPipelineMode": "Integrated",
        "virtualApplications": [
            {
                "virtualPath": "/",
                "physicalPath": "site\\wwwroot",
                "preloadEnabled": false
            }
        ],
        "loadBalancing": "LeastRequests",
        "experiments": {
            "rampUpRules": []
        },
        "autoHealEnabled": false,
        "localMySqlEnabled": false,
        "ipSecurityRestrictions": [
            {
                "ipAddress": "Any",
                "action": "Allow",
                "priority": 1,
                "name": "Allow all",
                "description": "Allow all access"
            }
        ],
        "scmIpSecurityRestrictions": [
            {
                "ipAddress": "Any",
                "action": "Allow",
                "priority": 1,
                "name": "Allow all",
                "description": "Allow all access"
            }
        ],
        "scmIpSecurityRestrictionsUseMain": false,
        "http20Enabled": false,
        "minTlsVersion": "1.2",
        "ftpsState": "AllAllowed",
        "reservedInstanceCount": 0
    }
}

关于json - Azure 资源管理器 : Web App Slots Config: App Service Authentication,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62686570/

相关文章:

azure - Azure云服务访问权限和持久存储中的Web角色?

javascript - 无法使用http模块nodejs azure函数执行http请求

java - 我在哪里可以在线找到包含(大部分)完整的 Java 单元测试套件的开源 Web 应用程序实现?

python - 解析包含创建 Django Q 对象逻辑的字符串

php - 如何通过 PHP 使用 Azure 开放数据

ios - 使用 AFNetworking 2.0 发布 JSON 数据

azure - 如何: Connect to Windows Azure SQL Server Database Through Windows virtual machin

session - Gorilla session 文件系统存储找不到 session 文件

json - 在 SAPUI5 中显示嵌套的 JSON 数据(sap.m 表)

java - JSON 编码/解码包含对象列表的对象(Java、JSON/Jackson)