我们如何使用代码发布动态生成的应用服务

时间:2018-08-08 10:22:41

标签: azure azure-web-app-service

我们如何使用代码发布动态生成的应用服务

在我的代码中,动态创建了Web应用程序服务。通过引用

https://docs.microsoft.com/en-us/rest/api/appservice/webapps/createorupdate

但是实际上,Web服务发布时包含空白数据。我们需要在创建应用程序服务时动态地发布带有代码详细信息的应用程序服务。我们该怎么办?

使用不同的Web应用程序为不同的用户发布相同的代码。当用户使用他/她的网站(动态创建)时,不要空白。有可能吗?

2 个答案:

答案 0 :(得分:1)

  

使用不同的Web应用程序为不同的用户发布相同的代码。当用户使用他/她的网站(动态创建)时,不要空白。有可能吗?

发布Web应用程序时,它是存储它的唯一存储库。因此,很难在一个发布中使用不同的Webapp来发布相同的代码。

此外,提供的文章字节是将zip文件部署到您的网络应用程序,该文件之前已生成为空白。所以我认为要实现它是不可能的。

您可以先发布空白数据,然后使用curlpowershell将所需的代码部署到Web应用程序。

更新

  

使用REST API部署ZIP文件

要部署,请向https://<app_name>.scm.azurewebsites.net/api/zipdeploy发送 POST 请求。 POST request必须在邮件正文中包含.zip文件。您可以通过使用HTTP BASIC身份验证在请求中提供应用的部署凭据。

string userName = "$xxxx";
string userPassword = "xxxxxxxxxxxxxxxxx";
string webAppName = "xxxx";
var base64Auth = Convert.ToBase64String(Encoding.Default.GetBytes($"{userName}:{userPassword}"));
var file = File.ReadAllBytes(@"C:\Users\xxx.zip");//zip path
MemoryStream stream = new MemoryStream(file);
using (var client = new HttpClient())
{
    client.DefaultRequestHeaders.Add("Authorization", "Basic " + base64Auth);
    client.DefaultRequestHeaders.Add("ContentType", "application/zip");
    var baseUrl = new Uri($"https://{webAppName}.scm.azurewebsites.net/");
    var requestURl = baseUrl + "api/zipdeploy";
    var httpContent = new StreamContent(stream);
    var response2 = client.PostAsync(requestURl, httpContent).Result;
}

enter image description here

答案 1 :(得分:0)

您可能可以探索的一个选择是,一旦配置了应用程序服务,便可以使用Kudu Zip Api部署代码/站点。

Deploying from a zip file using Kudu

相关问题