3. Send en beskjed til slack

Nå skal vi lage en funksjon i vår app som kan sende en beskjed til en kanal i slack.

  • Opprett en webhook i slack:

Finne frem til å opprette slack webhook
  • I Visual Studio Code - klikk for å lage ny funksjon:

  • Gi funksjonen et navn: f.eks PostMessageToSlack

  • Oppgi et namespace: f.eks Slack.Function

  • Funksjonen kan være Anonymous

  • Som standard vil funksjonen akseptere både GETog POST. Vi skal bare sende inn en melding så vi kan endre den til kun å trigge på POST:

public static async Task<IActionResult> Run(
    [HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = null)] HttpRequest req,ILogger log)
  • Ta bort det autogenererte innholdet i funksjonen

  • Vi ønsker å ta imot en melding i payload sendt inn til funksjonen på POST. Egenskapen i payloaden gir vi navnet message. For å hente ut dette legger du inn følgende i din funksjon:

//read out the message from the body sent in by POST
string requestBody = await new StreamReader(req.Body).ReadToEndAsync();
dynamic data = JsonConvert.DeserializeObject(requestBody);
var message = data?.message;
  • Videre lager vi payload for å sende til slack

//create slack payload and serialize
var payloadToSlack = new{ text = message};
var jsonPayLoad = JsonConvert.SerializeObject(payloadToSlack);
  • Send den serialiserte meldingen til slack ved å benytte webhook'en som du har laget tidligere

//post message to slack
var webhook = "https://replace.with.your.webhook.url";
using(var client = new HttpClient())
{
    var result = await client.PostAsync(webhook, new StringContent(jsonPayLoad, Encoding.UTF8, "application/json"));
}
  • Da gjenstår det bare å returnere statuskode før vi kan teste funksjonen

return new AcceptedResult();
  • Nå kan du teste funksjonen lokalt ved å trykke F5 i Visual Studio Code. Se etter din lokale URL i output vinduet. Benytt f.eks Postman for å lage en request mot den nye funksjonen din. Payload bør se slik ut:

{
	'message':'this is the message to send to slack'
}
  • Dersom det fungerer som du ønsker er det på tide å deploye til Azure

klikk for å deploye din funksjon til Azure
  • Når du har klikket deploy er det viktig at du velger din funksjonsapp i listen som vises. Etter du har valgt den, vil funksjonen publiseres.

Last updated

Was this helpful?