我需要一个 Azure 存储帐户才能 运行 Web 作业吗?
Do I need an Azure Storage Account to run a WebJob?
所以我对使用 Azure 还很陌生,有些事情我不太了解。其中之一是 Azure 存储帐户。
我的 Web 作业一直停止并出现以下错误 "Unhandled Exception: System.InvalidOperationException: The account credentials for '[account_name]' are incorrect." 然而了解错误并不是问题所在,至少我是这么认为的。问题在于理解为什么我需要一个 Azure 存储帐户来克服它。
请继续阅读,因为我会尝试引导您完成到目前为止采取的步骤。希望你能更清楚真正的问题。
在我努力在 Azure 上部署 WebJob 的过程中,到目前为止我们已经创建了以下资源:
- 应用服务计划
- 应用服务
- SQL 服务器
- SQL 数据库
我正在使用以下代码片段来防止我的 Web 作业退出:
JobHostConfiguration config = new JobHostConfiguration();
config.DashboardConnectionString = null;
new JobHost(config).RunAndBlock();
据我从其他来源了解,仪表板连接字符串是可选的,但 AzureWebJobsStorage 连接字符串是必需的。
我尝试使用找到的配置在门户中设置所需的连接字符串 here。
DefaultEndpointsProtocol=[http|https];AccountName=myAccountName;AccountKey=myAccountKey
进一步观察,我发现 this answer 清楚地说明了我将在何处获取所需的值,即 an/my 缺少 Azure 存储帐户。
那么现在提出实际问题:当我似乎拥有 WebJob 所需的所有资源时,为什么还需要 Azure 存储帐户 运行?它有什么作用?它是计费的东西吗,因为我认为我们已经在应用服务计划中定义了它。我已经尝试阅读 here 上的 Azure 存储帐户,但我需要更多帮助来理解它与一切的关系。
来自文档:
Azure 存储帐户提供用于在云中存储队列和 blob 数据的资源。
WebJobs SDK 也使用它来存储仪表板的日志记录数据。
Refer to the getting started guide and documentation for further information
答案是否定的,你没有。您可以拥有一个 WebJob 运行 而无需绑定到 Azure 存储帐户。正如 Murray 提到的,您的 WebJob 仪表板确实使用存储帐户来记录数据,但这是完全独立的。
您的问题的答案是 "No",当您尝试设置和 运行 Azure 网络作业时,并非必须使用 Azure 存储。
如果您使用的是 JobHost
或 JobHostConfiguration
,那么存储帐户确实存在依赖关系。
示例代码片段如下。
class Program
{
static void Main()
{
Functions.ExecuteTask();
}
}
public class Functions
{
[NoAutomaticTrigger]
public static void ExecuteTask()
{
// Execute your task here
}
}
所以我对使用 Azure 还很陌生,有些事情我不太了解。其中之一是 Azure 存储帐户。
我的 Web 作业一直停止并出现以下错误 "Unhandled Exception: System.InvalidOperationException: The account credentials for '[account_name]' are incorrect." 然而了解错误并不是问题所在,至少我是这么认为的。问题在于理解为什么我需要一个 Azure 存储帐户来克服它。
请继续阅读,因为我会尝试引导您完成到目前为止采取的步骤。希望你能更清楚真正的问题。
在我努力在 Azure 上部署 WebJob 的过程中,到目前为止我们已经创建了以下资源:
- 应用服务计划
- 应用服务
- SQL 服务器
- SQL 数据库
我正在使用以下代码片段来防止我的 Web 作业退出:
JobHostConfiguration config = new JobHostConfiguration();
config.DashboardConnectionString = null;
new JobHost(config).RunAndBlock();
据我从其他来源了解,仪表板连接字符串是可选的,但 AzureWebJobsStorage 连接字符串是必需的。
我尝试使用找到的配置在门户中设置所需的连接字符串 here。
DefaultEndpointsProtocol=[http|https];AccountName=myAccountName;AccountKey=myAccountKey
进一步观察,我发现 this answer 清楚地说明了我将在何处获取所需的值,即 an/my 缺少 Azure 存储帐户。
那么现在提出实际问题:当我似乎拥有 WebJob 所需的所有资源时,为什么还需要 Azure 存储帐户 运行?它有什么作用?它是计费的东西吗,因为我认为我们已经在应用服务计划中定义了它。我已经尝试阅读 here 上的 Azure 存储帐户,但我需要更多帮助来理解它与一切的关系。
来自文档:
Azure 存储帐户提供用于在云中存储队列和 blob 数据的资源。
WebJobs SDK 也使用它来存储仪表板的日志记录数据。
Refer to the getting started guide and documentation for further information
答案是否定的,你没有。您可以拥有一个 WebJob 运行 而无需绑定到 Azure 存储帐户。正如 Murray 提到的,您的 WebJob 仪表板确实使用存储帐户来记录数据,但这是完全独立的。
您的问题的答案是 "No",当您尝试设置和 运行 Azure 网络作业时,并非必须使用 Azure 存储。
如果您使用的是 JobHost
或 JobHostConfiguration
,那么存储帐户确实存在依赖关系。
示例代码片段如下。
class Program
{
static void Main()
{
Functions.ExecuteTask();
}
}
public class Functions
{
[NoAutomaticTrigger]
public static void ExecuteTask()
{
// Execute your task here
}
}