F#: Extract key value pairs from an app config file

The following snippet extracts key value pairs from the AppSettings section of an app config file: let appSettings = ConfigurationManager.AppSettings let serviceKeys = ConfigurationManager.AppSettings.AllKeys |> Seq.filter (fun k -> k.ToString().EndsWith "Fn") |> Seq.map (fun k -> (k,appSettings.GetValues(k).First())) <appSettings> <add key="MyAzureFn" value="some_value_1"/> <add key="MyOtherAzureFn" value="some_value_2"/> <add key="MyThirdAzureFn" value="some_value_3"/> </appSettings>

Storing Azure Function API Keys

I have recently been deploying Azure Functions and have required API keys for invoking other Azure Functions with in the service. I first created a registry for storing API keys: module KeyRegistry let mutable keyFor : Map<string,string> = Map.ofSeq <| seq [] I then created the following class to register the API keys: using System; …

Deploying Azure SignalR

Update the upstream URL pattern so that it contains the SignalR extension key: The SignalR extension key can be found under App Keys: Appendix: using System.Threading.Tasks; using Microsoft.Azure.WebJobs; using Microsoft.Azure.WebJobs.Extensions.Http; using Microsoft.AspNetCore.Http; using Microsoft.Azure.WebJobs.Extensions.SignalRService; using Microsoft.AspNetCore.SignalR; using Microsoft.Extensions.Logging; using static AzureSignalR.LocationReporting.Language; namespace AzureSignalR.Functions { public class LocationHub : ServerlessHub { const string NewMessageTarget = "newMessage"; …

Azure SignalR Client – Group connection

SignalR Client using Microsoft.AspNetCore.SignalR.Client; using static OrderRequest.Core; namespace SignalR.Support { public enum Connection { IsDisconnected, IsConnecting, IsConnected, } public class ClientSignalR { static ClientSignalR _clientSignalR; public static ClientSignalR Instance { get { if (_clientSignalR == null) { _clientSignalR = new ClientSignalR(); } return _clientSignalR; } } private ClientSignalR() { } public event Action<object> OnMessageReceived; HubConnection …

F# SQLProvider: In Action

Intro There's an F# library that provides an ORM experience that is arguably superior to Entity Framework. This library is the SqlProvider. Establishing Connection The following code establishes a connection to SQL Server: namespace DevOps.DataGateway open FSharp.Data.Sql module SqlConnection = //---------------------------------------------------------------------------------------------------- // UPDATE CONNECTION STRING !!! //---------------------------------------------------------------------------------------------------- [<Literal>] let string = "Data Source=MY_MACHINE_NAME\SqlExpress;Initial Catalog=DevOps;Integrated Security=True" …

Twilio Integration with F#

Intro I decided to document some Twilio integration details for a hobby project that I'm working on. Sms Module Here's the core module for sending an Sms via Twilio: namespace CourierPayroll.DataGateway open Twilio open Twilio.Types open Twilio.Rest.Api.V2010.Account open CourierPayroll.DataTransfer module Sms = let formattedNumber (toPhone:string) = let usaCode = "+1" let phoneWithPrefix = if toPhone.Chars …

Azure Monitor – Query Logs

Logs Navigation 1. Select the Azure Functions app 2. Under Configured Features, select Application Insights 3. Select "Logs" from the Navigation bar Logs Query The following query attempts to pull 10 'Trace' records that contain the word "location" with a severity-level of "1", and sorts them in descending order: