gpt4 book ai didi

Azure DevOps 使用 Azure Function 应用程序管道自托管代理

转载 作者:行者123 更新时间:2023-12-03 02:00:33 25 4
gpt4 key购买 nike

我正在尝试弄清楚是否可以将 Azure Function 应用程序制作为自托管代理以用于管道运行目的。

https://learn.microsoft.com/en-us/azure/devops/pipelines/agents/linux-agent?view=azure-devops

根据这篇文章,您可以将任何装有 Linux 的计算机变成一台。但是,我想避免使用专用虚拟机。是否可以让函数应用充当自托管代理?我找不到任何相关信息。

最佳答案

发布评论作为帮助社区的答案。

无法直接将 Azure Function 应用程序转换为自托管代理,因为 Azure Function 是一种无服务器资源,可以根据触发器的要求进行扩展和缩减。另一种方法是 Dockerize 您的 Function 应用程序并在 Docker Function 中运行自托管代理,引用 - Run a self-hosted agent in Docker - Azure Pipelines | Microsoft Learn

用于功能应用资源的专用应用服务计划也是如此,我部署了一个专用应用服务功能应用,如下所示:-

我创建了一个目录来下载代理并运行以下部分中的命令:-

enter image description here

现在,我访问了我的函数应用 > 左 Pane > 开发工具 > 高级工具 > 转到 > 调试控制台 > Powershell > powershell 终端将打开并键入以下命令:-

我的功能应用程序与专用计划:-

enter image description here

enter image description here

mkdir agent

输出:-

enter image description here

创建代理目录后,我运行以下命令在我的应用程序服务计划中下载代理,但它失败且不受支持,因为它发出警告以提高 Azure 支持,请参阅下文:-

命令reference1reference2

[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]::Tls12
Invoke-WebRequest -Uri 'https://vstsagentpackage.azureedge.net/agent/3.220.2/vsts-agent-win-x64-3.220.2.zip' -UseBasicParsing

输出:- 错误

Invoke-WebRequest : Win32 internal error "The handle is invalid" 0x6 occurred 
PS C:\home> while reading the console output buffer. Contact Microsoft Customer Support
Services.
At line:1 char:1
+ Invoke-WebRequest -Uri 'https://vstsagentpackage.azureedge.net/agent/ ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ReadError: (:) [Invoke-WebRequest], HostExceptio
n
+ FullyQualifiedErrorId : ReadConsoleOutput,Microsoft.PowerShell.Commands.
InvokeWebRequestCommand

enter image description here

我在本地计算机中下载了代理,并将其直接拖到 kudu 控制台中,并尝试运行命令来安装代理,但由于应用服务控制台需要 Console.Read 而再次失败 请参阅以下内容:-

enter image description here

代理文件已转移到应用服务计划:-

enter image description here

enter image description here

代理文件已成功传输,现在我运行以下命令但失败:-

命令:-

./config.cmd

enter image description here

错误:-

enter image description here

Cannot read keys when either application does not have a console or when console input has been redirected. Try Console.Read.

由于我们无法更改安装 Azure 自托管代理的默认代码并写入 Console.Read,因此这种情况是不可能的。除了 Dockerizing Function 之外的另一种选择是托管单个 Windows 或 Linux VM 作为自托管代理,并在其中本地创建 Function 应用程序并通过 Azure Devops 管道运行它。

关于Azure DevOps 使用 Azure Function 应用程序管道自托管代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76306713/

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