我已经创建了带有队列触发器的测试 Azure 函数。当我在本地模拟器中运行此功能时,它可以工作。但是当我在 Azure 上部署它时,它看起来不起作用(消息没有从队列中删除)。
功能
[FunctionName("Function1")]
public static void Run([QueueTrigger("azurefunc", Connection = "StorageConnectionString")]string myQueueItem, TraceWriter log)
{
log.Info($"C# Queue trigger function processed: {myQueueItem}");
// PERFORMANCE TEST
for (int i = 0; i < 10000; i++)
{
for (int j = 0; j < 9000; j++)
{
// Do nothing.
// Or do something
string myAwesomeTempString = "How are you";
myAwesomeTempString += "?";
}
}
try
{
var queueMessage = new CloudQueueMessage (myQueueItem);
QueueApi.DeleteMessage (QueueApi.AzureFunctionStorageQueue, queueMessage);
}
catch
{
}
}
local.settings.json
{"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "AZURE_STORAGE_CONNECTION_STRING",
"AzureWebJobsDashboard": "AZURE_STORAGE_CONNECTION_STRING",
"StorageConnectionString": "AZURE_STORAGE_CONNECTION_STRING",
"serviceBusAccount": "SERVICE_BUS_CONNECTION_STRING"
}}
QueueApi 的一部分
/// <summary>
/// Creates instance of Queue Storage
/// </summary>
/// <param name="queueName">Name of queue storage</param>
/// <returns>The instance of queue storage</returns>
private static CloudQueue CreateStorageQueue (string queueName)
{
CloudStorageAccount storageAccount = CloudStorageAccount.Parse ("AZURE_STORAGE_CONNECTION_STRING");
CloudQueueClient queueClient = storageAccount.CreateCloudQueueClient ();
CloudQueue queue = queueClient.GetQueueReference (queueName);
queue.CreateIfNotExists ();
return queue;
}
我创建Azure Service Bus帐户只是为了测试另一种方法,但我真的更愿意使用Azure Storage Queue。
谁能帮帮我吗?
紫衣仙女
相关分类