Azure 机器人部署问题

Issue with Azure Bot Deployment

我正在测试是否可以将虚拟机器人部署到 Azure Bot Services 并 运行 它跨多个渠道。我正在使用 Azure CLI 在 ubuntu 上部署机器人。我运行的命令是,(在Bot SDK官方文档中找到)

az deployment sub create --template-file "/home/abrar/Work/Bot_POC/testbot-1/deploymentTemplates/template-with-new-rg.json" --location centralindia --parameters appType="UserAssignedMSI" appId="blablabla" tenantId="blablabla2" existingUserAssignedMSIName="TitanBotName" existingUserAssignedMSIResourceGroupName="TitanBot" botId="/subscriptions/2d178cfc-3973-4e06-9ffe-15463849a46c/resourcegroups/TitanBot/providers/Microsoft.ManagedIdentity/userAssignedIdentities/TitanBotName" botSku=S1 newAppServicePlanName="titanbot" newWebAppName="TitanAssistBot" groupName="TitanBot" groupLocation="centralindia" newAppServicePlanLocation="centralindia" --name "TitanAssist"

我已经更改了 appId 和 tenantId 以防万一 post。我收到的错误是,

{'code': 'InvalidTemplate', 'target': '/subscriptions/2d178cfc-3973-4e06-9ffe-15463849a46c/resourceGroups/TitanBot/providers/Microsoft.Resources/deployments/storageDeployment', 'message': "Deployment template validation failed: 'The template resource '/subscriptions/2d178cfc-3973-4e06-9ffe-15463849a46c/resourcegroups/TitanBot/providers/Microsoft.ManagedIdentity/userAssignedIdentities/TitanBotName' for type 'Microsoft.BotService/botServices' at line '1' and column '2061' has incorrect segment lengths. A nested resource type must have identical number of segments as its resource name. A root resource type must have segment length one greater than its resource name. Please see https://aka.ms/arm-template/#resources for usage details.'.", 'additionalInfo': [{'type': 'TemplateViolation', 'info': {'lineNumber': 1, 'linePosition': 2061, 'path': 'properties.template.resources[2].type'}}]}

根据错误,我假设 template-with-new-rg.json 有一些问题。我从 Yeoman bot-builder-generator 创建一个空机器人得到了文件。检查文件后,我注意到它有几个错误。 Link 到文件 https://github.com/microsoft/BotBuilder-Samples/blob/main/samples/javascript_nodejs/02.echo-bot/deploymentTemplates/template-with-new-rg.json

我不确定从这里该怎么做,我尝试按照 VSCode 终端的建议修复 json 文件,修复这些文件后,我遇到了另一种类型的错误.

{'code': 'InvalidTemplate', 'message': "Deployment template validation failed: 'The template resource 'storageDeployment' at line '152' and column '9' is invalid. 'ResourceGroup' property is not supported for nested deployments with api-version older than '2017-05-10'. Please see https://aka.ms/arm-template/#resources for usage details.'.", 'additionalInfo': [{'type': 'TemplateViolation', 'info': {'lineNumber': 152, 'linePosition': 9, 'path': 'properties.template.resources[1]'}}]}

对我现在可以做什么有什么建议吗?

这里有一些错误,我可以立即看到。

首先,botid 是机器人的名称,而不是 ID 号或订阅号。在此处输入唯一的机器人名称,例如“TitanTestBot1”。此名称在 Azure 中必须是唯一的,因为 Azure Bot 资源无法在特定区域创建并且始终是全局的。

此外,您的服务计划名称也是titanbot。尝试给它一个更好的名字。

最后,您要告诉 Azure 您的托管身份(在创建机器人资源之前必须已经存在)所在的资源组称为 TitanBot,但您还说要创建名为 TitanBot 的机器人资源的新资源组。这两件事不可能都是真的。如果您希望机器人资源进入 TitanBot,您需要使用 preexisting-rg 模板,而不是 new-rg 模板。如果你想要一个新的资源组,它必须有一个新的名称。

此时,您应该仔细检查 Publish your bot to Azure 文档中的所有字段,并确保为每个字段提供唯一且正确的条目。