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:

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
GET
ogPOST
. 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 navnetmessage
. 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
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?