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

g52tjvyc  于 2023-05-29  发布在  其他
关注(0)|答案(1)|浏览(160)

我试图弄清楚是否有可能将Azure Function应用程序制作成自托管代理以用于管道运行目的。
https://learn.microsoft.com/en-us/azure/devops/pipelines/agents/linux-agent?view=azure-devops
根据这篇文章,你可以把任何一台装有Linux的计算机变成一台。但是,我希望避免使用专用的虚拟机。有没有可能让一个功能应用程序充当自托管代理?我找不到这方面的资料。

kuhbmx9i

kuhbmx9i1#

发表评论作为一个答案,以帮助社区。

无法将Azure Function应用直接转换为自托管代理,因为Azure Function是一种无服务器资源,可以根据触发器的要求进行扩展和缩小。另一种方法是将Function应用程序Dockerize并在Docker Function中运行自托管代理,参考-在Docker中运行自托管代理- Azure Pipelines| Microsoft学习

用于Function应用程序资源的专用应用程序服务计划也是如此,我部署了一个专用应用程序服务Function应用程序,如下所示:-
我创建了一个目录来下载代理并运行下面部分中的命令:

现在,我访问了我的函数应用程序>左窗格>开发工具>高级工具> Go >调试控制台> Powershell > powershell终端将打开以下命令类型:-

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

mkdir agent

输出:-

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

[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

***我在本地机器上下载了代理,直接拖到kudu控制台,尝试运行命令安装代理,但又失败了,因为应用服务控制台需要控制台。改为阅读***参考如下:-

代理文件已传输到应用程序服务计划:-

代理文件传输成功,现在我运行下面的命令,它失败了:-

命令:-

./config.cmd

错误:-

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管道运行它。

相关问题