c# - 使用 AzureWebJob 中的 Azure 管理 API

标签 c# azure azure-webjobs azure-management-api

我正在开发一个应用程序,当消息放置在 AzureQueue 上时,该应用程序需要运行 AzureWebJob 来部署站点的新实例。我正在使用 CertificateCloudeCredentials 来验证请求。我使用以下代码创建凭据:

var certificateString = "<the certificate string>";
var certificateString = ConfigurationManager.AppSettings["Base64Certificate"];
var certificate = new X509Certificate2(Convert.FromBase64String(certificateString));
var credentials = new CertificateCloudCredentials("67baa805-e391-4e9a-a26e-aa76d33f6475", certificate);
var managementClient =  new WebSiteManagementClient(credentials);

在我的开发计算机上,这工作正常,但是当我在 azure 上上传 WebJob 时,当我尝试向管理客户端实例发出请求时,出现异常。 异常消息显示:“消息:ForbiddenError:服务器无法验证请求。请验证证书是否有效并与此订阅关联。”

显然我需要在运行代码的计算机上安装证书,但由于这是在 Azzure WebApplication 上运行的 WebJob,我该如何实现这一点?

管理 API 的另一个身份验证选项是使用 TokenCredentials,但我无法在我的本地环境中进行这些工作。我已尝试本指南但无济于事https://msdn.microsoft.com/en-us/library/dn722415.aspx 。我也怀疑它是否有效,因为您需要使用 Azzure 帐户登录才能获取 token 。

那么..如何在 WebJob 中使用管理 API?

最佳答案

我认为 token 凭证是更好的选择。我有完整的样本here你可以用它来获取灵感。您需要设置一个服务主体,您可以通过 Azure 应用程序设置将其提供给您的应用程序。

关于c# - 使用 AzureWebJob 中的 Azure 管理 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35926256/

相关文章:

azure - 使用 .net core 2.2 进行我们的 bjob​​ 上的 TimerTrigger

azure - 我是否可以在同一部署槽中拥有具有通用应用程序设置名称但具有不同值的 Azure 网站和 webjobs?

c# - 使用 Entity Framework 在wpf中排序

c# - WPF RichTextBox - 选定的 block ?

php - Azure PHP SDK 抛出致命异常并出现套接字错误

azure - 将 Azure Functions 部署到多个函数中的特定函数而不覆盖其他函数

c# - 替代使用 InStr

c# - 将文本文件写入子文件夹

c# - Azure 函数异常 - 将日志写入表存储时出错 : Microsoft. Azure.Cosmos.Table.StorageException

c# - 为什么 Azure Function 应用程序中使用的 Microsoft.Azure.WebJobs.HttpTriggerAttribute 是参数属性而不是方法属性?