Övning – Publicera en funktion i Azure med core tools

Slutförd

I den här övningen skapar du en funktionsapp i Azure och publicerar vårt projekt.

Skapa en funktionsapp

Viktigt!

Procedurerna i den här lektionen beror på arbete som slutförts i enhet 3. Sandbox-miljön för den här modulen måste vara aktiv. Sandbox-miljön ger dig kostnadsfri, tillfällig åtkomst till Azure och Azure CLI.

Azure Cloud Shell bör redan vara inloggad på ditt konto och konfigurerats. Om sandbox-miljön inte är aktiv har du förlorat nödvändig åtkomst, resurser och utdata som du behöver. Gå tillbaka och slutför enhet 3.

Innan du kan publicera koden till en funktionsapp med Core Tools måste du skapa appen i Azure med hjälp av Azure CLI från Cloud Shell.

Om du vill skapa en funktionsapp i Azure kör du följande kommandon i Azure Cloud Shell.

RESOURCEGROUP="<rgn>[sandbox resource group]</rgn>"
STORAGEACCT=learnstorage$(openssl rand -hex 5)
FUNCTIONAPP=learnfunctions$(openssl rand -hex 5)

az storage account create \
  --resource-group "$RESOURCEGROUP" \
  --name "$STORAGEACCT" \
  --kind StorageV2 \
  --location centralus

az functionapp create \
  --resource-group "$RESOURCEGROUP" \
  --name "$FUNCTIONAPP" \
  --storage-account "$STORAGEACCT" \
  --runtime node \
  --consumption-plan-location centralus \
  --functions-version 4

Dessa kommandon gör följande:

  • De första tre raderna högst upp skapar gränssnittsvariabler med värden som vi använder upprepade gånger i följande kommandon.

    • För resursgrupp anger du den grupp som skapats åt dig av sandbox-miljön. Detta bör redan vara rätt värde baserat på din aktuella sandbox-miljö.
    • Namnen på lagringskontot och funktionsappen innehåller $(openssl rand -hex 5), som genererar en slumpmässig sträng med fem tecken, för att säkerställa att namnen uppfyller kravet på att vara globalt unika samt andra namngivningskrav för tjänsten.
  • az storage account create skapar ett Azure Storage-konto som funktionsappen använder. Ett lagringskonto är en separat Azure-resurs som måste skapas innan funktionsappen kan skapas.

  • az functionapp create skapar funktionsappen. Den nya appen använder (JavaScript)-körningen node , som körs serverlös i en förbrukningsvärdplan.

Kommentar

Kommandot az functionapp create försöker också automatiskt skapa en Application Insights-instans för övervakning av körningar i funktionsappen. Eftersom arbetsytebaserade Application Insights-resurser för närvarande inte kan finnas i sandbox-miljön fungerar dina funktioner, men körningsloggarna skickas inte till Application Insights.

Publicera till Azure

Nu när du har skapat funktionsappen i Azure kan du publicera projektet till den med Core Tools.

Kör följande kommandon i Cloud Shell för att publicera. Kör cd först för att se till att du fortfarande är i funktionsprojektmappen innan du publicerar.

cd ~/loan-wizard
func azure functionapp publish "$FUNCTIONAPP" --force

Kommentar

Om det här kommandot visar ett fel som inte kan hitta din app väntar du två minuter och försöker igen. Det tar några sekunder innan nya funktionsappar blir synliga för Core Tools efter att de har skapats.

Dessutom lägger --force du till kommandot för att uppdatera funktionsappversionens matchningsfel.

Till skillnad från föregående övning, där du tillfälligt var värd för din funktion lokalt från Core Tools, är funktionen nu live på webben. Den är fortfarande globalt tillgänglig tills sandbox-miljön för den här självstudien upphör att gälla. Eftersom HTTP-slutpunkten har definierats med en anonymous auktoriseringsnivå kan den nås av vem som helst på webben.

Kör funktionen

Funktionen har nu publicerats i Azure och kan anropas var som helst. Som en HTTP-utlöst funktion som svarar på GET-begäranden kan den köras från valfri webbläsare.

  1. Kör följande kommando för att hämta begärande-URL:en:

    func azure functionapp list-functions "$FUNCTIONAPP" --show-keys
    
  2. Klistra in URL:en från utdata på en ny webbläsarflik. Du ser samma utdata som du observerade när du körde funktionen lokalt utan att ange rätt frågesträngsparametrar. Inga nycklar ingår i utdata när du använder en anonymous auktoriseringsnivå.

  3. Lägg till ?principal=5000&rate=.035&term=36 i slutet av URL:en och välj Retur. Se till att du bevarar parametern om den code finns. Resultatet som returneras är 6300.000000000001, som förväntat.