Azure 队列触发器功能 - 本地集成
Azure Queue Trigger Function - Local Integration
我正在使用 Visual Studio 创建一个简单的队列触发 azure 函数。我正在将它与我的存储帐户连接起来,但由于某种原因它无法正常工作。感谢任何帮助。
这是我的代码:(由 VS 自动生成)
[FunctionName("QueueTest")]
public static void Run([QueueTrigger("my-queue", Connection = "")]string myQueueItem, TraceWriter log)
{
log.Info($"C# Queue trigger function processed: {myQueueItem}");
}
这是我的local.settings.json
{
"IsEncrypted": false,
"Values":{
"AzureWebJobsStorage":"DefaultEndpointsProtocol=https;AccountName=accountname;AccountKey=accountkey"
}
}
您需要将队列存储帐户的连接字符串添加到 local.settings.json,然后提供连接字符串的名称作为 QueueTrigger 的连接参数,例如在 local.settings.json
"Values": {
"AzureWebJobsStorage": "DefaultEndpointsProtocol=https;AccountName=accountname;AccountKey=accountkey",
"MyStorage": "DefaultEndpointsProtocol=https;AccountName=accountname2;AccountKey=accountkey2;EndpointSuffix=core.windows.net"
}
并在您的代码中
[QueueTrigger("my-queue", Connection = "MyStorage")]string myQueueItem
队列触发器默认使用 AzureWebJobsStorage
帐户。您需要做的只是从属性中删除 Connection
参数:
[FunctionName("QueueTest")]
public static void Run([QueueTrigger("my-queue")]string myQueueItem, TraceWriter log)
{
log.Info($"C# Queue trigger function processed: {myQueueItem}");
}
理想情况下,如果您是 Windows
用户,请使用 Azure Storage Emulator 连接到本地队列。然后更改 local.settings.json
文件中的连接字符串:
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "UseDevelopmentStorage=true",
"AzureWebJobsDashboard": "UseDevelopmentStorage=true",
}
}
如果您不是 Windows 用户,则必须连接到托管在 Azure 平台上的队列。为此,找到链接到您的函数的存储帐户并从他的设置中复制连接字符串(存储帐户 -> 访问密钥 -> 连接字符串)
所以我想通了这个问题。所有配置都很好。问题是,我的函数应用程序的 Azure 函数版本是 1,但由于某些原因,可能是因为最新 SDK/WebJobs,版本 1 无法正常工作。因此,我不得不使用 AzureFunctionVersion 2 创建另一个函数应用程序并且一切正常。
我正在使用 Visual Studio 创建一个简单的队列触发 azure 函数。我正在将它与我的存储帐户连接起来,但由于某种原因它无法正常工作。感谢任何帮助。
这是我的代码:(由 VS 自动生成)
[FunctionName("QueueTest")]
public static void Run([QueueTrigger("my-queue", Connection = "")]string myQueueItem, TraceWriter log)
{
log.Info($"C# Queue trigger function processed: {myQueueItem}");
}
这是我的local.settings.json
{
"IsEncrypted": false,
"Values":{
"AzureWebJobsStorage":"DefaultEndpointsProtocol=https;AccountName=accountname;AccountKey=accountkey"
}
}
您需要将队列存储帐户的连接字符串添加到 local.settings.json,然后提供连接字符串的名称作为 QueueTrigger 的连接参数,例如在 local.settings.json
"Values": {
"AzureWebJobsStorage": "DefaultEndpointsProtocol=https;AccountName=accountname;AccountKey=accountkey",
"MyStorage": "DefaultEndpointsProtocol=https;AccountName=accountname2;AccountKey=accountkey2;EndpointSuffix=core.windows.net"
}
并在您的代码中
[QueueTrigger("my-queue", Connection = "MyStorage")]string myQueueItem
队列触发器默认使用 AzureWebJobsStorage
帐户。您需要做的只是从属性中删除 Connection
参数:
[FunctionName("QueueTest")]
public static void Run([QueueTrigger("my-queue")]string myQueueItem, TraceWriter log)
{
log.Info($"C# Queue trigger function processed: {myQueueItem}");
}
理想情况下,如果您是 Windows
用户,请使用 Azure Storage Emulator 连接到本地队列。然后更改 local.settings.json
文件中的连接字符串:
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "UseDevelopmentStorage=true",
"AzureWebJobsDashboard": "UseDevelopmentStorage=true",
}
}
如果您不是 Windows 用户,则必须连接到托管在 Azure 平台上的队列。为此,找到链接到您的函数的存储帐户并从他的设置中复制连接字符串(存储帐户 -> 访问密钥 -> 连接字符串)
所以我想通了这个问题。所有配置都很好。问题是,我的函数应用程序的 Azure 函数版本是 1,但由于某些原因,可能是因为最新 SDK/WebJobs,版本 1 无法正常工作。因此,我不得不使用 AzureFunctionVersion 2 创建另一个函数应用程序并且一切正常。