我想编写一个Web应用程序,允许用户编写C#脚本并使用Azure Functions执行它们。
我检查了Azure SDK文档,但没有找到用于管理Function App的任何nuget程序包。
有没有办法:
使用Azure SDK?如果没有,那将是另一种方式呢?
2019年7月8日更新
我在Azure SDK(Microsoft.Azure.Management.WebSites)中找到了“列表”和“删除”功能:
我测试了它们,它们起作用了。 问题在于创建方法_CreateFunctionWithHttpMessagesAsync(Msdn Documentation)
尚不清楚应传递哪些参数才能使其正常工作。 目前,我这样称呼它:
var response = await webClient.WebApps.CreateFunctionWithHttpMessagesAsync(ResourceGroupName, FunctionAppName, functionName, new FunctionEnvelope());
大约10到20秒,它会返回错误: “ Microsoft.Azure.Management.WebSites.Models.DefaultErrorResponseException:操作返回了无效的状态码'InternalServerError'”
我认为这与空的FunctionEnvelope有关。我尝试传递各种值,但没有一个起作用。
答案 0 :(得分:1)
AFAIK没有可用的SDK。但是REST API's
可以让您执行上述所有操作。
对于更新和部署,您可以使用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。