我正在努力与 Azure Batch API 集成,并根据我传递的凭据构建客户端对象。我想知道的是如何测试连接是否有效以及凭据是否正确?我在 API 上看不到任何可以执行此操作的内容。您只需创建 BatchClient 对象,然后对其调用操作来列出作业、池等,如果您的初始凭据错误,所有这些都会失败并出现复杂的错误。我希望能够在尝试任何其他操作之前测试不正确的凭据。有谁知道该怎么做吗?
var client = BatchClient.Open(new BatchSharedKeyCredentials(
string.Format("https://{0}.{1}.batch.azure.com",
_primaryBatchAccountName,
_primaryRegion),
_primaryBatchAccountName,
_primaryBatchAccountKey));
这是创建客户端对象的代码。但即使您传递给它完全错误的值,它也不会抛出任何错误。仅当您尝试对其执行任何操作时才会出现错误。
最佳答案
BatchClient
不会保持持久连接“打开”。它只是在需要时(即当您使用方法时)向目标端点发出 REST 请求。
据我所知,在您尝试使用 BatchClient
与服务器实际通信之前,无法确定您是否拥有“正确”的凭据值或端点数据。这是因为客户端实际上不可能知道哪些端点是有效的,也不可能知道“有效”凭据是什么样子,或者您指定的凭据是否正确(服务器必须验证这一点)。
我能提出的最佳建议是尝试发出一个简单的 API 调用(例如 ListJobs 或其他东西)并确保它成功完成。这应该验证您的 BatchClient
正在工作。
关于c# - Azure Batch客户端,如何测试有效性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33085648/