Azure 函数的 Zip 部署成功但 Azure 中的函数为空

Zip deploy of Azure function was a success but Functions in Azure is empty

您好,我有一个 Azure 函数计时器,我正在尝试通过 ZIP 部署来部署它,它成功了,但是 Azure 中的函数是空的。

我用于部署的命令是 az functionapp deployment source config-zip -g $resourceGroupName -n $functionName --src $sourceZipPath

cmd 的JSON 响应如下。

{  "active": false,
  "author": "N/A",
  "author_email": "N/A",
  "complete": true,
  "deployer": "ZipDeploy",
  "end_time": "2022-03-25T12:37:54.9247211Z",
  "id": "373e929429a14bee8b6368949e922789",
  "is_readonly": true,
  "is_temp": false,
  "last_success_end_time": "2022-03-25T12:37:54.9247211Z",
  "log_url": "https://xxxx.scm.azurewebsites.net/api/deployments/latest/log",
  "message": "Created via a push deployment",
  "progress": "",
  "provisioningState": "Succeeded",
  "received_time": "2022-03-25T12:33:05.5662452Z",
  "site_name": "xxxx",
  "start_time": "2022-03-25T12:33:17.5130554Z",
  "status": 4,
  "status_text": "",
  "url": "https://xxxx.scm.azurewebsites.net/api/deployments/latest"
}

我可以看到文件结构中的所有文件(下面的屏幕截图)

不确定我哪里出错了。从 Visual Studio 2019 年开始部署时,它可以完美运行。

我检查了 post“https://Whosebug。com/questions/64032902/az-functionapp-deployment-reports-success-but-functions-view-in-azure-is-empt”并按照步骤操作,但没有成功。

任何人都可以建议我还能尝试什么。

我在使用本地 CLI 和 Azure CloudShell 中的 AZ CLI 部署 Azure 函数时尝试重现相同的问题:

az functionapp deployment source config-zip -g HariTestRG -n KrishNet6FuncApp --src "C:/Users/Hari/source/repos/DotNet6/TimerTrigger1205.zip"

根据此 GitHub Discussion,我了解到命令 az functionapp deployment source config-zip 在 AZ CLI 版本中存在问题,并尝试通过降级到 Azure CLI 的 2.28 版本但没有成功获得预期的结果。

Command to downgrade the Azure CLI version:

$ProgressPreference = 'SilentlyContinue'; Invoke-WebRequest -Uri https://azcliprod.blob.core.windows.net/msi/azure-cli-2.28.0.msi -OutFile .\AzureCLI.msi; Start-Process msiexec.exe -Wait -ArgumentList '/I AzureCLI.msi /quiet'; rm .\AzureCLI.msi

Function Apps 的此压缩推送部署的替代解决方法是使用 PowerShell 命令并且运行良好

更新答案

启用应用程序设置 SCM_DO_BUILD_DURING_DEPLOYMENTtrue 并使用 AZ CLI 部署 Azure Function Zip 后,部署成功并在 Azure 门户中显示函数以及文件wwwroot 文件夹。

AZ CLI 命令:

az functionapp deployment source config-zip -g HariTestRG -n KrishNet6FuncApp --src "C:/Users/Hari/source/repos/DotNet6/TimerTrigger1205.zip"

由此Microsoft Documentation,我们了解到在将 Function App 部署为 Zip Push 之前必须进行一些部署自定义,即默认情况下应用程序设置 SCM_DO_BUILD_DURING_DEPLOYMENT 为 false启用持续集成部署。

对于 PowerShell 解决方法,请参阅此 GitHub Page