gpt4 book ai didi

azure - 如何在 Azure 中运行重复性任务,发出 HTTP 请求并将结果存储在存储容器中?

转载 作者:行者123 更新时间:2023-12-03 05:34:15 26 4
gpt4 key购买 nike

我想创建一个 Azure 任务,每 5 分钟向 API 发出一次 HTTP GET 请求(比方说)。作为此请求的结果返回的文件将存储在存储容器中。但是,我不知道执行此操作的最佳途径是什么。

我尝试过的:

  • 在Azure门户中创建了一个存储容器(用于接收返回的文件)
  • 尝试在 Azure DevOps 中创建管道。不确定在哪里添加此任务。
  • 阅读 Azure 资源,了解如何创建 taskbatch API .

问题是,我是 Azure 的新手,还不了解这一切如何运作的架构,所以我什至不确定要谷歌搜索什么关键字。

执行此 Azure 任务的最佳方式是什么?这是在 Azure DevOps 或 Azure 门户中完成的吗?哪个是更好的选择?最后,也是最重要的,您能否提供一个可在 Azure 环境中工作的简单示例 HTTP GET 任务?

最佳答案

整个过程:

1.正如Krzysztof Madej建议的那样,您可以使用 yaml 管道和 - cron: "*/5 * * * *" 每五分钟运行一次管道。但根据您的描述,您还应该启用 always: true ,以便即使源存储库没有更改,您的管道也可以运行。

2.此外,要使用该格式的计划,您需要禁用任何 CI 触发器或 PR 触发器。

如果您想仅使用计划触发器来运行管道,则必须通过在 YAML 文件中指定 pr: none 和 trigger: none 来禁用 PR 和持续集成触发器。

3.除了时间表(每5分钟一次)外,您还需要一个Powershell任务来调用其余API。获取响应,然后将响应写入新创建的 json 文件。(或文本文件)

4.之后,您可以使用Azure File Copy task将包含响应的文件上传到 Azure 存储容器。

这是我的最小工作示例:

pool:
vmImage: 'windows-latest'

schedules:
- cron: "*/5 * * * *"
displayName: Run every 5 mins
branches:
include:
- master
always: 'true'

steps:
- task: PowerShell@2
inputs:
targetType: 'inline'
script: |
#Call the rest api.
$url = "$($env:SYSTEM_TEAMFOUNDATIONCOLLECTIONURI)_apis/projects/$env:SYSTEM_TEAMPROJECTID/teams?api-version=5.1"
$response = Invoke-RestMethod -Uri $url -Method Get -Headers @{
Authorization = "Bearer $env:SYSTEM_ACCESSTOKEN"
}
#Get the response and then pass it into one spcific file.
write-host $($response | ConvertTo-Json -Depth 100)
$response | ConvertTo-Json -depth 100 | Out-File "$(System.DefaultWorkingDirectory)\Backup-$(Build.BuildId).json"
env:
SYSTEM_ACCESSTOKEN: $(System.AccessToken)

- task: AzureFileCopy@4
inputs:
SourcePath: '$(System.DefaultWorkingDirectory)\Backup-$(Build.BuildId).json'
azureSubscription: 'xxx'
Destination: 'AzureBlob'
storage: 'xxx'
blobPrefix: 'xxx'
ContainerName: 'xxx'

此外:

这是similar topic有关如何使用 AzureFileCopy 进行备份。您可以引用this link如果您遇到 AzureFileCopy 任务的权限问题。

关于azure - 如何在 Azure 中运行重复性任务,发出 HTTP 请求并将结果存储在存储容器中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63732094/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com