once you have zip package with published Azure functions which can be automated quite easy as well, you may use zipdeploy Kudu API in order to upload it to your Azure function app:
$kuduApiAuthorisationToken = Execute-WithRetry -SleepTime 10 { Get-Kudu-Api-Authorisation-Header-Value $RG $webAppName }
$kuduApiUrl = "https://$webAppName.scm.azurewebsites.net/api/zipdeploy"
Execute-WithRetry -SleepTime 10 {
Invoke-RestMethod -Uri $kuduApiUrl `
-Headers @{"Authorization"=$kuduApiAuthorisationToken;"If-Match"="*"} `
-Method POST `
-InFile $localPath `
-ContentType "multipart/form-data" | Out-Null
More information can be found e.g. here: Interacting with Azure Web Apps Virtual File System using PowerShell and the Kudu API.