# 5. Legg melding på kø

På samme måte som en funksjon kan motta melding fra kø kan vi også sende melding til en kø.

* Opprett en ny HTTP-triggered funksjon i ditt prosjekt
  * f.eks `SendToQueue`
  * denne funksjonen kan også være `Anonymous`&#x20;

![](/files/-LeQnKK7Pg_ZtNqzLe_X)

* Endre signaturen til å bare trigge på `POST` og ta bort innholdet i den genererte funksjonen:

```csharp
[FunctionName("SendToQueueFunc")]
public static async Task<IActionResult> Run(
            [HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = null)] HttpRequest req,
            ILogger log)
{
            
}
```

* For å kunne sende en melding til en kø må vi i funksjonen ta i mot en referanse til køen. Fra tidligere har vi allerede opprettet `myqueue`så denne kan vi benytte oss av nå.
* Legg til en parameter i funksjonen som gir deg tilgang til køen:

```csharp
[Queue ("myqueue", Connection = "AzureWebJobsStorage")] ICollector<string> myQueue
```

* Signaturen i funksjonen bør da se slik ut:

```csharp
[FunctionName("SendToQueueFunc")]
public static async Task<IActionResult> Run(
    [HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = null)] HttpRequest req,
    [Queue ("myqueue", Connection = "AzureWebJobsStorage")] ICollector<string> myQueue,
    ILogger log)
{
            
}
```

* Nå har vi en referanse til køen og kan legge en melding på den
* Start med å definere meldingen og serialisèr den til `JSON`:

```csharp
var messageToSendToQueue= new{ text = "the message I want to send"};
var jsonMessage= JsonConvert.SerializeObject(messageToSendToQueue);
```

* Meldingen kan nå legges på køen:

```csharp
myQueue.Add(jsonMessage);
```

* Legg inn returkode til slutt:

```csharp
return new OkResult();
```

* Den komplette funksjonen ser da slik ut:

```csharp
[FunctionName("SendToQueueFunc")]
public static async Task<IActionResult> Run(
    [HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = null)] HttpRequest req,
    [Queue ("myqueue", Connection = "AzureWebJobsStorage")] ICollector<string> myQueue,
    ILogger log)
{
    var messageToSendToQueue= new{ text = "the message I want to send"};
    var jsonMessage= JsonConvert.SerializeObject(messageToSendToQueue);

    myQueue.Add(jsonMessage);

    return new OkResult();
}
```

* Trykk `F5`for å starte funksjonen slik at vi kan teste å legge en melding på køen
* Siden vi nå har laget to funksjoner mot samme kø vil vi kunne sende en melding med den siste funksjonen vi opprettet og den vil bli lest ut av den funksjonen vi lagde tidligere
* I output fra oppstart av funksjonene vi du kunne se at lokalt kjører nå HTTP funksjonen, f.eks slik

![](/files/-Le_Mo_w61HILMkaHxOW)

* Benytt PostMan eller lignende til å gjøre et kall mot denne adressen hos deg
* Du skal få `200 OK`tilbake og i konsollet i Visual Studio Code bør du se at meldingen ble sendt av en funksjon og mottatt av den andre:

![](/files/-Le_NaGmpXW530yyIS4p)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://serverless-workshop.gitbook.io/azure/5.-send-melding-fra-funksjon.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
