AWS, Lambda & Variabili d'ambiente

Il mio studio sulle AWS Lambda -come anticipato nel corso del mese di Ottobre- prosegue in maniera tranquilla approfittando dei momenti di tranquillità lavorativa. In questo post vorrei mostrare un passaggio interessante e spesso necessario per distinguere la fase di sviluppo e l’eseguire il tutto sul cloud AWS.

environmentVariables

Di cosa parlo? Come anticipato dal titolo parlo delle environmentVariables.

Grazie alle variabili di ambiente è possibile specificare delle configurazioni diverse in base all’ambiente in cui si opera senza dovere modificare il codice sorgente.

launchSettings

Come primo passaggio dobbiamo aprire il file launchSettings.json presente nella cartella Properties ed aggiungere la sezione environmentVariables come nel seguente esempio

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
{
  "profiles": {
    "Mock Lambda Test Tool": {
      "commandName": "Executable",
      "commandLineArgs": "--port 5050",
      "workingDirectory": ".\\bin\\$(Configuration)\\netcoreapp3.1",
      "executablePath": "%USERPROFILE%\\.dotnet\\tools\\dotnet-lambda-test-tool-3.1.exe",
      "environmentVariables": {
        "PersonalKEY": "PersonalValue"
      }
    }
  }
}

L’area di interesse per il nostro articolo è la seguente. Si tratta di un dictionary chiave/ valore. Possiamo aggiungerne a piacere.

1
2
3
4
5
"environmentVariables": {
    "PersonalKEY": "PersonalValue",
    "PersonalKEY2": "PersonalValue2",
    "PersonalKEY3": "PersonalValue3",
}

Semplice, vero? Adesso che ho scoperto l’esistenza del file launchSettings direi di si. Abituato alle Azure Functions continuavo a modificare il file aws-lambda-tools-defaults.json convinto fosse quello.

Coding

Per leggere (e potere poi usare) il valore di “PersonalKEY” dovremmo scrivere solamente la seguente riga di codice.

1
var personalKey = System.Environment.GetEnvironmentVariable("PersonalKEY");

Ed ora provate ad indovinare? Modificando il file json corretto il GetEnvironmentVariable funziona correttamente!

AWS & Environment Variables

Ora viene la parte più interessante di tutte. Come configuro le Environment Variables sulla Console AWS nella specifica AWS Lambda?

Il tutto si risolve in pochissimi passaggi. Quali?

  • Tab Configurazione
  • Voce Variabili di ambiente e selezionare Modifica

Ora vi troverete davanti ad una nuova pagina Variabili di ambiente con la descrizione:

Puoi definire le variabili di ambiente come coppie chiave-valore accessibili dal codice funzione. Sono utili per archiviare le impostazioni della configurazione senza necessità di cambiare il codice funzione. Ulteriori informazioni

A questo punto non dovrete fare altro che selezionare Aggiungi variabili di ambiente e replicare la lista di Key/ Value inseriti precedentemente nel file launchSettings.json.