首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用Devops CI/CD管道和ARM模板在Azure门户中创建资源

如何使用Devops CI/CD管道和ARM模板在Azure门户中创建资源
EN

Stack Overflow用户
提问于 2021-03-25 13:13:20
回答 2查看 111关注 0票数 2

我正在创建基于qnamaker的聊天机器人,为此我准备了用于创建和部署资源的ARM模板。

创建所有资源后,将使用PowerShell脚本创建知识库。

当我从本地PowerShell工具执行PowerShell脚本时,这个过程运行得很好。

现在,我想对此部署流程执行CI/CD,以便可以自动执行部署流程

通过azure ARM模板部署任务可以通过管道创建资源并部署到Azure,但我不确定在基于最近创建的qnamaker服务创建资源后如何执行负责创建知识库的PowerShell脚本

非常感谢您的帮助

EN

回答 2

Stack Overflow用户

发布于 2021-03-25 15:06:15

您可以参考Create a CI/CD pipeline for .NET with the Azure DevOps Project中的逐步实验来创建管道。

如果您需要有关ARM模板的帮助(如果您遇到了某些问题),您可以查看A quick guide on writing your Azure Resource Manager (ARM) Templates.并快速入门。

票数 0
EN

Stack Overflow用户

发布于 2021-03-27 02:27:15

请澄清您的问题是在ARM创建实际资源后创建和培训QnA Maker知识库?可能有多种方法可以做到这一点,但以下是我所做的。首先,我使用的是Azure CLI Task version 2.*,它简化了一些初始步骤。对于后续的一些步骤,您可能会使用常规的PowerShell。我选择了all作为PowerShell脚本类型和内联脚本。这些部分中的每一个我都作为单独的任务来完成,但您可能可以将所有这些都作为一个任务来完成。不过,我喜欢能够看到如果发生了什么事情,哪一步会失败。

首先,您需要获取认知服务的密钥

代码语言:javascript
运行
复制
$QNAKEY= & az cognitiveservices account keys list -g "YOUR_RESOURCE_GROUP" --name "YOUR_QNA_RESOURCE_NAME" --query key1 -o tsv
Write-Output("##vso[task.setvariable variable=QNA_KEY;]$QNAKEY")

接下来,您需要创建知识库。我已经通过我的项目存储库中的json文件为我的项目播种了信息。您可以从任何地方执行此操作,或者只创建一个空白KB (我认为)。注意:我在这里检查KB是否存在;KB名称不必是唯一的,所以如果您不这样做,您将最终创建许多重复的KB。

代码语言:javascript
运行
复制
$header = @{
  "Content-Type"="application/json"
  "Ocp-Apim-Subscription-Key"="$(QNA_KEY)"
}

$res = Invoke-RestMethod -Uri "https://westus.api.cognitive.microsoft.com/qnamaker/v4.0/knowledgebases" -Method 'Get' -Headers $header

$kb = $res.knowledgebases | Where-Object name -eq "YOUR_KB_NAME"

Write-Host $res.knowledgebases
Write-Host $kb

if (!$kb) {
    Write-Host "KB does not exist, so creating new KB"
    $body = Get-Content '$(System.DefaultWorkingDirectory)/PATH_TO_MY_MODEL.json' | Out-String
    Invoke-RestMethod -Uri "https://westus.api.cognitive.microsoft.com/qnamaker/v4.0/knowledgebases/create" -Method 'Post' -Body $body -Headers $header
}

最后,您可能希望发布您的知识库。对于LUIS,我认为你需要首先训练它(通过单独的命令行界面任务),但是QnA Maker你应该能够直接发布。我将此作为依赖阶段来执行,以确保在尝试发布之前创建了知识库。

代码语言:javascript
运行
复制
$QNAKEY= & az cognitiveservices account keys list -g "YOUR_RESOURCE_GROUP" --name "YOUR_QNA_RESOURCE_NAME" --query key1 -o tsv

$header = @{
  "Content-Type"="application/json"
  "Ocp-Apim-Subscription-Key"="$QNAKEY"
}

$res = Invoke-RestMethod -Uri "https://westus.api.cognitive.microsoft.com/qnamaker/v4.0/knowledgebases" -Method 'Get' -Headers $header

$kb = $res.knowledgebases | Where-Object name -eq "YOUR_KB_NAME"
$qnaId = $kb.id

Invoke-RestMethod -Uri "https://westus.api.cognitive.microsoft.com/qnamaker/v4.0/knowledgebases/$qnaId" -Method 'Post' -Headers $header

就是这样!此时,您的QnA Maker知识库应该已创建、发布并准备就绪。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66793451

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档