我如何在Azure Function应用上运行PnP脚本

时间:2019-08-27 20:58:17

标签: azure powershell sharepoint

我试图让用户通过Azure函数运行Powershell脚本。该脚本应使用用户提供的某些信息在SharePoint上创建一个网站。

我创建了一个Azure Function应用程序来运行某些PowerShell脚本。当我尝试运行代码时,它在http 502返回了错误Connect-PnPOnline 如果删除Connect-PnPOnline,则会收到200条响应。因此,我确定这与脚本中的Connect-PnPOnline有关。

我通过@Lee_MSFT Get PowerShell Script to Run SharePoint Commands on Azure关注了该帖子 并能够导入模块。

using namespace System.Net

param (
    [string]$projectnumber,
    [string]$projectname
)

$site = "https://xxxxx.sharepoint.com/sites/projects"

$projectsite = -join($site, "/", $projectnumber)
$projecttitle = -join($projectnumber, " ", $projectname)

Connect-PnPOnline -url $site 
...

我从Connect-PnPOnline -url $site得到500,从Connect-PnPOnline -url $site -UseWebLogin得到502

谁知道为什么在使用Connect-PnPOnline时出现5xx错误? 非常感谢!

1 个答案:

答案 0 :(得分:1)

确保已上传Azure功能的PnP PowerShell模块,然后使用下面的PowerShell连接SharePoint。

$siteURL = "https://tenant.sharepoint.com/sites/projects"    
$userId = "abc@tenant.onmicrosoft.com"    
$plainText= "*****"  
$pwd = ConvertTo-SecureString $plainText -AsPlainText -Force    
$creds = New-Object System.Management.Automation.PSCredential($userId,$pwd)  
Connect-PnPOnline -Url $siteURL -Credentials $creds 

或使用此:

Connect-PnPOnline -AppId $env:SPO_AppId -AppSecret $env:SPO_AppSecret -Url "https://tenant.sharepoint.com/sites/projects" 

SPO_AppId -将值设置为在租户上创建应用程序时在第一步中复制的客户端ID。

SPO_AppSecret -将值设置为在租户上创建应用程序时在第一步中复制的客户端密钥。

我建议您检查以下文章中的步骤。

Azure Functions For SharePoint Operations Using PnP PowerShell