有没有一种使用Azure SDK管理Azure Function应用的方法?

时间:2019-06-27 15:11:17

标签: azure azure-functions azure-sdk-.net

我想编写一个Web应用程序,允许用户编写C#脚本并使用Azure Functions执行它们。

我检查了Azure SDK文档,但没有找到用于管理Function App的任何nuget程序包。

有没有办法:

  • 获取可用的天蓝色函数列表
  • 部署天蓝色函数
  • 更新天蓝色函数
  • 删除天蓝色函数

使用Azure SDK?如果没有,那将是另一种方式呢?


2019年7月8日更新

我在Azure SDK(Microsoft.Azure.Management.WebSites)中找到了“列表”和“删除”功能:

列表: Msdn Documentation

删除 Msdn Documentation

我测试了它们,它们起作用了。 问题在于创建方法_CreateFunctionWithHttpMessagesAsync(Msdn Documentation

尚不清楚应传递哪些参数才能使其正常工作。 目前,我这样称呼它:

        var response = await webClient.WebApps.CreateFunctionWithHttpMessagesAsync(ResourceGroupName, FunctionAppName, functionName, new FunctionEnvelope());

大约10到20秒,它会返回错误: “ Microsoft.Azure.Management.WebSites.Models.DefaultErrorResponseException:操作返回了无效的状态码'InternalServerError'”

我认为这与空的FunctionEnvelope有关。我尝试传递各种值,但没有一个起作用。

1 个答案:

答案 0 :(得分:1)

AFAIK没有可用的SDK。但是REST API's可以让您执行上述所有操作。

List Functions

Delete Function

对于更新和部署,您可以使用zip deployment for Azure Functions。

使用指向您的FunctionApp.zip->的msbuild命令生成csproj

/p:DeployOnBuild=true /p:DeployTarget=Package;CreatePackageOnPublish=true

上面将生成一个zip文件,可以在后面的部分中使用。

现在第二步是使用此api获取Publish credentials,如果得到响应,它将以下面的类格式

public class GetPublishCredentials
    {
        public string Id { get; set; }
        public string Name { get; set; }
        public string Type { get; set; }
        public string Location { get; set; }
        public Properties Properties { get; set; }
    }
    public class Properties
    {
        public string Name { get; set; }
        public string PublishingUserName { get; set; }
        public string PublishingPassword { get; set; }
        public object PublishingPasswordHash { get; set; }
        public object PublishingPasswordHashSalt { get; set; }
        public object Metadata { get; set; }
        public bool IsDeleted { get; set; }
        public string ScmUri { get; set; }
    }

获取凭据后,请按照以下代码{@ {1}}或deploy您的Azure函数

update

现在应该部署您的functionapp。