Larsi
Larsi

Reputation: 4774

AzureFunctions binding to SendGrid

Trying to figure out how to use SendGrid from an azure function. Not much docs to find, but this is what I've tried:

#r "SendGrid"
using SendGrid.Helpers.Mail;
using System;

public static void Run(string myQueueItem, out Mail message, TraceWriter log)
{
    log.Info($"C# Queue trigger function processed: {myQueueItem}");
    message=new Mail();
}

I've hardcoded to, from, subject and body, together with api key in the integrate output section. This is my function.json:

{
"bindings": [
{
  "name": "myQueueItem",
  "type": "queueTrigger",
  "direction": "in",
  "queueName": "send-email-request",
  "connection": "myStorage"
},
{
  "type": "sendGrid",
  "name": "message",
  "apiKey": "SG.xxxxxxxxxxx",
  "direction": "out",
  "to": "me@gmail.com",
  "from": "me@gmail.no",
  "subject": "hardcoded",
  "text": "test213"
}
],
"disabled": false
}

I get the following error:

Function ($SendEmailOnQueueTriggered) Error: Microsoft.Azure.WebJobs.Host: Error indexing method 'Functions.SendEmailOnQueueTriggered'. Microsoft.Azure.WebJobs.Host: 'SG.xxxxxx' does not resolve to a value.
Session Id: 9426f2d7e4374c7ba7e0612ea5dc1814
Timestamp: 2017-01-07T12:18:01.930Z

I've granted the Apikey full access in SendGrid. Any ideas what I've missed?

Larsi

Upvotes: 2

Views: 1359

Answers (2)

Waqas Haneef
Waqas Haneef

Reputation: 11

Adding "AzureWebJobsSendGridApiKey" in your AppSettings via local.settings.json and in Configuration -> Application Setting via Azure Portal will work.

Upvotes: 1

Larsi
Larsi

Reputation: 4774

The ApiKey field is not the actual ApiKey, it should instead be the name of an AppSettings key defined in the "functions app settings".

Upvotes: 8

Related Questions