我希望在我的应用程序或代码中声明 .deployment 当我的代码被推送到scm kudu站点时,要安装或更新的特定站点扩展的文件。这可能吗?我特别想要 Microsoft.ApplicationInsights.AzureWebSites 站点扩展将自动安装为我部署的所有站点的一部分,而无需手动浏览到scm站点并从库中安装它。
.deployment
Microsoft.ApplicationInsights.AzureWebSites
zzlelutf1#
不能将站点扩展作为kudu git部署的一部分来安装,但可以作为arm模板的一部分来安装。你可以在这里找到一个完整的样品。这与任何其他站点配置基本相同。e、 设置应用程序设置,应用程序服务层,打开日志记录,websockets。。。所有这些都在kudu部署之外,但是可以使用一个arm模板来实现,该模板包含所有您想要的站点状态。
92vpleto2#
另一种方法是制作一个webjob,它可以创建siteextension文件夹,然后将siteextension文件复制到该文件夹中。作为部署的一部分,您只需要包含webjob。我们做了一些类似于stackify apm如何从一个站点扩展安装到azure web应用程序的事情。站点扩展创建一个webjob,该webjob实际上根据一些条件项更新站点扩展applicationhost转换。
gupuwyp23#
可以使用powershell完成,但有点不成熟(例如使用名为staging的staging slot):
Write-Host "Setting appsettings for Stackify on $AzureWebSite" $hash = @{} $hash['Stackify.ApiKey'] = "$licenceKey" $hash['Stackify.Environment'] = "$environment" $hash['Stackify.AppName'] = "$BaseWebAppName" if ($loadCertificates -eq 'True') { $hash['WEBSITE_LOAD_CERTIFICATES'] = "*" } Set-AzureWebsite -Name $AzureWebSite -Slot staging -AppSettings $hash ### Install Extension for Azure App### Write-Host "Installing Stackify on $AzureWebSite" $Kudu = "https://" + $AzureWebSite + "-staging.scm.azurewebsites.net/api/extensionfeed" # Here you can get a list for all Extensions available. $InstallNRURI = "https://" + $AzureWebSite + "-staging.scm.azurewebsites.net/api/siteextensions" # Install API EndPoint $slot = Get-AzureWebsite $AzureWebSite -Slot staging $base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $slot.PublishingUsername,$slot.PublishingPassword))) $invoke = Invoke-RestMethod -Uri $Kudu -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)} -Method get ###-InFile $filePath -ContentType "multipart/form-data" $id = ($invoke | ? {$_.id -match "stackify*"}).id ### Searching for Stackify ID Extension try { $InstallStackify = Invoke-RestMethod -Uri "$InstallNRURI/$id" -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)} -Method Put $Status = ($InstallStackify.provisioningState).ToString() + "|" + ($InstallStackify.installed_date_time).ToString() ### Status Write-Output "Stackify Installation Status : $Status" } catch{$_} Restart-AzureWebsite $AzureWebSite -Slot staging
3条答案
按热度按时间zzlelutf1#
不能将站点扩展作为kudu git部署的一部分来安装,但可以作为arm模板的一部分来安装。你可以在这里找到一个完整的样品。
这与任何其他站点配置基本相同。e、 设置应用程序设置,应用程序服务层,打开日志记录,websockets。。。所有这些都在kudu部署之外,但是可以使用一个arm模板来实现,该模板包含所有您想要的站点状态。
92vpleto2#
另一种方法是制作一个webjob,它可以创建siteextension文件夹,然后将siteextension文件复制到该文件夹中。作为部署的一部分,您只需要包含webjob。
我们做了一些类似于stackify apm如何从一个站点扩展安装到azure web应用程序的事情。站点扩展创建一个webjob,该webjob实际上根据一些条件项更新站点扩展applicationhost转换。
gupuwyp23#
可以使用powershell完成,但有点不成熟(例如使用名为staging的staging slot):