如何使用 PowerShell 中编写的队列触发 Azure 函数创建 Microsoft 团队?

How to create a Microsoft Team using a Queue Triggered Azure Function writed in PowerShell?

我想使用由 Azure 队列触发的 azure 函数创建一个团队。 不幸的是,当我 运行 代码无法在 Azure 函数中运行时。

我在想。有没有办法在 Azure 函数中使用 PowerShell 创建 Microsoft 团队?

Import-module MicrosoftTeams
$group = New-Team -MailNickname "teamTitle" -displayname "teamTitle" -Visibility "private"
Add-TeamUser -GroupId $group.GroupId -User "user@etc.com"
New-TeamChannel -GroupId $group.GroupId -DisplayName "General"

在本地工作。不在 Azure 函数中工作。

下面是我遇到的错误:

ERROR: Import-Module : The specified module 'MicrosoftTeams' was not loaded because no valid
module file was found in any module directory. At D:\home\site\wwwroot\CreateTeam\run.ps1:3
char:1 + Import-Module MicrosoftTeams +  [...]

谢谢

根据错误消息,您的函数应用没有安装 MicrosoftTeams 模块。您需要在 requirements.psd1 文件中包含对此模块的引用(有关详细信息,请参阅 https://docs.microsoft.com/azure/azure-functions/functions-reference-powershell#dependency-management)。

模块安装后。在您的脚本中使用以下代码来自动执行该过程。

$securedpassword = ConvertTo-SecureString $Password -AsPlainText -Force
$mycredentials = New-Object System.Management.Automation.PSCredential ($Username, $securedpassword )
$res = Connect-MicrosoftTeams -Credential $mycredentials

目前这个模块还没有原生集成到 powershell 下的 azure 函数中

要查看所有可用的包,请进入 App Service -> Advanced Tools -> DebugConsole -> Powershell 和 运行 :

Write-Output ‘Getting PowerShell Module’
$result = Get-Module -ListAvailable |
Select-Object Name, Version, ModuleBase |
Sort-Object -Property Name |
Format-Table -wrap |
Out-String
Write-output `n$result

要手动添加包,需要创建一个目录“Module”,与函数目录同级,它们会被自动预加载。

(https://docs.microsoft.com/en-us/azure/azure-functions/functions-reference-powershell 步骤“Function app-level Modules 文件夹”)