Dela via


Skapa parametrar mellan miljöer för arbetsflödesindata i Azure Logic Apps

Gäller för: Azure Logic Apps (Förbrukning + Standard)

När du behöver abstrakta värden som kan ändras i arbetsflöden i utvecklings-, test- och produktionsmiljöer kan du definiera arbetsflödesparametrar. När du använder dessa parametrar i stället för miljöspecifika variabler kan du fokusera mer på att utforma arbetsflödets affärslogik och sedan infoga miljöspecifika variabler senare.

Den här artikeln visar hur du skapar, använder och redigerar parametrar för logikapparbetsflöden för flera klientorganisationer och för arbetsflöden för standardlogikappar med en klientorganisation. Du får också lära dig hur du hanterar miljövariabler.

Mer information om Azure Logic Apps för flera klientorganisationer och enskilda klientorganisationer finns i Single-tenant versus multitenant in Azure Logic Apps (Enkel klientorganisation jämfört med flera klientorganisationer i Azure Logic Apps).

Förutsättningar

Parametrar för förbrukning jämfört med standardarbetsflöden för logikappar

För arbetsflöden för både förbrukning och standardlogikapp kan du definiera parametrar med hjälp av arbetsflödesdesignern. När du har definierat en parameter kan du referera till parametern från alla arbetsflöden eller anslutningar i samma logikappresurs.

I arbetsflöden för logikappar för flera klienters konsumtion skapar och använder du parametrar i designern. Sedan definierar och ställer du in miljövariablerna i din Azure Resource Manager-mall (ARM-mall) och mallparametrar. I det här scenariot måste du definiera och ange parametrarna vid distributionen. Det här kravet innebär att även om du bara behöver ändra en variabel måste du distribuera om logikappens ARM-mall.

I standardlogikapparbetsflöden för en klientorganisation kan du arbeta med miljövariabler både vid körning och distribution med hjälp av parametrar och appinställningar. Appinställningar innehåller globala konfigurationsalternativ för alla arbetsflöden i samma logikappresurs. Mer information finns i Redigera värd- och appinställningar för en klientbaserad logikapp.

Viktigt!

När du använder känslig information, till exempel anslutningssträngar som innehåller användarnamn och lösenord, ser du till att använda det säkraste autentiseringsflödet som är tillgängligt. I standardarbetsflöden för logikappar stöds till exempel inte säkra datatyper, till exempel securestring och secureobject. Microsoft rekommenderar att du autentiserar åtkomst till Azure-resurser med en hanterad identitet när det är möjligt och tilldelar en roll som har minsta möjliga behörighet.

Om den här funktionen inte är tillgänglig ska du skydda anslutningssträngar på andra sätt, till exempel Azure Key Vault, som du kan använda med appinställningar. Du kan sedan direkt referera till säkra strängar, till exempel anslutningssträng och nycklar. På samma sätt som ARM-mallar, där du kan definiera miljövariabler vid distributionen, kan du definiera appinställningar i logikappens arbetsflödesdefinition. Du kan sedan samla in dynamiskt genererade infrastrukturvärden, till exempel anslutningsslutpunkter och lagringssträngar. Mer information finns i Programtyper för Microsofts identitetsplattform.

Appinställningar har storleksgränser. Du kan inte heller referera till dem från vissa områden i Azure Logic Apps. Parametrar erbjuder ett bredare utbud av användningsfall än appinställningar, till exempel stöd för stora värdestorlekar och komplexa objekt.

Om du till exempel använder Visual Studio Code som utvecklingsverktyg för att köra arbetsflöden lokalt kan du definiera parametrar med hjälp av filenparameters.json . Du kan sedan referera till valfri parameter i den här parameterfilen från valfritt arbetsflöde i projektets workflow.json-fil eller från valfritt anslutningsobjekt i projektets connections.json-fil . I följande lista beskrivs vanliga användningsfall:

  • Ha en testparametrarfil som innehåller alla värden som du använder under testningen. Vid distributionen ersätter du testparametrarfilen med filen med produktionsparametrar.

  • Parametrisera olika delar av din connections.json-fil. Du kan sedan kontrollera connections.json-filen i källkontrollen och hantera eventuella anslutningar via dinparameters.json-fil .

  • Parametrisera komplexa objekt, till exempel JSON-objektet authentication . Du kan till exempel ersätta authentication objektvärdet med en sträng som innehåller ett enda parameteruttryck, till exempel @parameters('api-auth').

  • Granska och redigera appinställningarna i projektets local.settings.json-fil . Referera sedan till de här appinställningarna i dina parametrar.

Kommentar

Överväg att använda parametrar som standard sätt att parameterisera värden i stället för appinställningar. På så sätt kan du följa rekommendationen att referera till appinställningar från dina parametrar när du behöver lagra säkra nycklar eller strängar. Du kan använda båda alternativen i din lösning genom att använda parametrar för att referera till appinställningar.

Definiera, använda och redigera parametrar

Den här proceduren beskriver hur du arbetar med parametrar för arbetsflöden för förbrukning eller standardlogikapp i Azure-portalen.

  1. Öppna logikappresursen i Azure Portal.

    • För Standard-logikappar går du till menyn på resurspanelen under Arbetsflöden och väljer Arbetsflöden.

      På sidan Arbetsflöden väljer du det tomma arbetsflödet för att öppna designern.

    • För konsumtionslogikappar går du till resurspanelens meny under Utvecklingsverktyg och väljer designverktyget för att öppna arbetsflödet.

  2. I designerverktygsfältet väljer du Parametrar.

    Skärmbild som visar Azure-portalen med arbetsflödesdesignern öppen och Parametrar i designerns verktygsfält markerat.

  3. I fönstret Parametrar väljer du Skapa parameter.

  4. Ange följande information om parametern som ska skapas:

    Fastighet Obligatoriskt Beskrivning
    Namn Ja Namnet på parametern som ska skapas.
    Typ Ja Datatypen för parametern, till exempel Array, Bool, Float, Int, Object och String.

    Obs! I standardarbetsflöden för logikappar stöds inte säkra datatyper, till exempel securestring och secureobject.
    Värde (standard) Ja Värdet för parametern.

    I Arbetsflöden för standardlogikapp anger du parametervärdet. Arbetsflödeslogik, anslutningsinformation och parametervärden finns inte på en enda plats. Designern måste kunna lösa parametervärdena innan arbetsflödet läses in.
    Standardvärde (förbrukning) Ja Standardvärdet för parametern. Du måste ange standardparametervärdet. Arbetsflödeslogik, anslutningsinformation och parametervärden finns inte på en enda plats. Designern måste kunna lösa parametervärdena innan arbetsflödet läses in.

    Viktigt: Undvik att ange ett standardvärde för datatyperna Secure Object och Secure String eftersom värdet lagras som oformaterad text.
    Verkligt värde (förbrukning) Nej Det faktiska värdet för parametern.

    I följande exempel visas en definition för en strängparameter:

    Skärmbild som visar Azure-portalen med arbetsflödesdesignern och fönstret Parametrar med en exempelparameterdefinition.

  5. När du är klar stänger du fönstret Parametrar . Spara arbetsflödet så att du sparar den nya parameterdefinitionen.

Följ dessa steg om du vill referera till parametern från en utlösare eller åtgärd i ett arbetsflöde för samma logikapp:

  1. Öppna önskat arbetsflöde i designern och välj utlösaren eller åtgärden.

  2. I informationsfönstret går du till fliken Parametrar och väljer i den egenskap där du vill använda parametern i den egenskapens redigeringsruta. Välj blixtikonen för att öppna listan med dynamiskt innehåll.

  3. Välj den tidigare skapade parametern under Parametrar i listan.

    Skärmbild som visar den skapade parametern i listan med dynamiskt innehåll.

Så här visar eller redigerar du parametrar i samma logikapp:

  1. Öppna ett arbetsflöde i arbetsflödesdesignern. För konsumtionslogikappar, välj Utvecklingsverktyg>Logikappdesigner. För Standard-logikappar väljer du Arbetsflöden>arbetsflöden och sedan ett arbetsflöde för att öppna designern.

  2. I designerverktygsfältet väljer du Parametrar.

    Fönstret Parametrar öppnas och visar alla parametrar som du har definierat i logikappen.

  • Endast standardarbetsflöden: Om du vill visa eller redigera i mass-JSON går du till menyn på resurspanelen och väljer Parametrar. I fönstret Parametrar väljer du Redigera i JSON.

    JSON-vyn Parametrar öppnas och visar alla parametrar som du har definierat från arbetsflöden i logikappen.

Visual Studio-koden

Den här proceduren beskriver hur du arbetar med parametrar för standardlogikapparbetsflöden med hjälp av Visual Studio Code.

  1. I en JSON-fil på projektrotnivå med namnet parameters.json definierar du alla parametrar och deras värden. Den här filen har ett objekt som innehåller nyckel/värde-par . Varje nyckel är namnet på varje parameter. Varje värde är strukturen för parametern. Varje struktur måste innehålla både en type och value en deklaration.

    Viktigt!

    Din parameters.json-fil måste definiera och inkludera alla parametrar och deras värden som du refererar till eller använder någon annanstans i projektet. Det här kravet omfattar arbetsflödesdefinitioner och anslutningar.

    I följande exempel visas en grundläggande parameterfil:

    {
        "responseString": { 
            "type": "string", 
            "value": "hello" 
        },
        "functionAuth": { 
            "type": "object", 
            "value": { 
                "type": "QueryString", 
                "name": "Code", 
                "value": "@appsetting('<AzureFunctionsOperation-FunctionAppKey>')" 
            }
        }
     }
    

    Kommentar

    I filen parameters.json @appsetting är den enda giltiga uttryckstypen.

  2. Om du vill referera till parametrar i dina utlösar- eller åtgärdsindata använder du uttrycket @parameters('<parameter-name>').

Parameterisera anslutningsfil

Om du vill parametrisera din connections.json fil ersätter du värdena för literaler, till exempel ConnectionRuntimeUrl, med ett enda parameters() uttryck, @parameters('api-runtimeUrl')till exempel . I filen connections.json är de enda giltiga uttryckstyperna @parameters och @appsetting.

Viktigt!

Om du parameteriserar connections.json-filen under utvecklingen blir designerupplevelsen begränsad, både lokalt och i Azure Portal. Om du behöver använda designern för utveckling använder du en icke-parameteriserad connections.json fil i stället. Ersätt sedan med den parametriserade filen i dina distributionspipelines. Körningen fungerar fortfarande med parameterisering. Designerförbättringar är under utveckling.

I följande exempel visas en parametriserad connections.json fil som använder både appinställningar och parametrar. Den här exempelfilen använder en parameter för det komplexa blob_auth autentiseringsobjektet och appinställningarna för de andra värdena.

Du vill använda parametrar där det är möjligt. Eftersom appinställningar genereras under distributionen och är enklare att dynamiskt fylla i i en utvecklingspipeline bör du använda appinställningar över parametrar i det här scenariot. I det här fallet kan du använda en parameter för autentiseringsobjektet eftersom det är osannolikt att du refererar till parametern i arbetsflödet:

{
   "serviceProviderConnections": {
      "serviceBus": {
         "parameterValues": {
            "connectionString": "@appsetting('serviceBus_connectionString')"
        },
        "serviceProvider": {
           "id": "/serviceProviders/serviceBus"
        },
        "displayName": "servicebus"
     }
   },
   "managedApiConnections": {
      "azureblob": {
         "api": {
            "id": "/subscriptions/@{appsetting('WORKFLOWS_SUBSCRIPTION_ID')}/providers/Microsoft.Web/locations/@{appsetting('WORKFLOWS_LOCATION_NAME')}/managedApis/azureblob"
         },
         "connection": {
            "id": "/subscriptions/@{appsetting('WORKFLOWS_SUBSCRIPTION_ID')}/resourceGroups/@{appsetting('WORKFLOWS_RESOURCE_GROUP_NAME')}/providers/Microsoft.Web/connections/azureblob"
         },
         "connectionRuntimeUrl": "@appsetting('BLOB_CONNECTION_RUNTIMEURL')",
         "authentication": "@parameters('blob_auth')"
      }
   }
}

Kommentar

När du har ett uttryck som är infogat med oformaterad text ska du använda det interpolerade formatet för uttrycket genom att omsluta uttrycket med klammerparenteser ({}). Det här formatet hjälper till att undvika parsningsproblem.

Om du till exempel har "<text>/@<function-name>('<parameter-name>')/<text>"använder du följande version i stället: "<text>/@{<function-name>('<parameter-name>')}/<text>".

Mer information finns i Överväganden för att använda funktioner.

Hantera parameterfiler

Normalt behöver du hantera flera versioner av parameterfiler. Du kan använda målvärden för olika distributionsmiljöer, till exempel utveckling, testning och produktion. Att hantera dessa parameterfiler fungerar ofta som att hantera ARM-mallparametrar. När du distribuerar till en specifik miljö höjer du upp motsvarande parameterfil, vanligtvis via en pipeline för DevOps.

Kör följande kommando för att dynamiskt ersätta parameterfiler med hjälp av Azure CLI:

az functionapp deploy --resource-group MyResourceGroup --name MyLogicApp --src-path C:\parameters.json --type static --target-path parameters.json

Om du har ett NuGet-baserat logikappsprojekt måste du uppdatera projektfilen (<logic-app-name.csproj>) för att inkludera parameterfilen i byggutdata, till exempel:

<ItemGroup>
  <None Update="parameters.json">
    <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
  </None>
</ItemGroup>

Kommentar

För närvarande är det inte tillgängligt att dynamiskt ersätta parameterfiler i Azure-portalen eller arbetsflödesdesignern.

Mer information om hur du konfigurerar dina logikappar för DevOps-distributioner finns i följande artiklar:

Hantera appinställningar

I Standard logic apps innehåller appinställningar globala konfigurationsalternativ för alla arbetsflöden i samma logikapp. När du kör arbetsflöden lokalt i Visual Studio Code kan du komma åt dessa appinställningar som lokala miljövariabler i filen local.settings.json . Du kan sedan referera till dessa appinställningar i dina parametrar.

I följande avsnitt beskrivs hur du lägger till, uppdaterar eller tar bort appinställningar för Visual Studio Code, Azure-portalen, Azure CLI och ARM-mallen (Bicep).

Granska appinställningar med hjälp av Azure-portalen

Följ dessa steg om du vill granska appinställningarna för logikappresursen i Azure Portal:

  1. Öppna logikappresursen i Azure Portal.

  2. Välj Miljövariabler under Inställningar på menyn på resurspanelen.

  3. På sidan Miljövariabler går du till fliken Appinställningar och granskar appinställningarna för logikappen.

  4. Om du vill visa alla värden väljer du Visa värden. Om du vill visa ett enda värde väljer du det värdet.

Följ dessa steg för att lägga till en ny inställning:

  1. Under Programinställningar väljer du + Lägg till.

  2. Som Namn anger du nyckeln eller namnet för den nya inställningen.

  3. För Värde anger du värdet för den nya inställningen.

  4. Om det behövs väljer du Distributionsplatsinställningen.

  5. När du är redo att skapa det nya nyckel/värde-paret väljer du Använd.

Granska appinställningar med Hjälp av Azure CLI

Om du vill granska dina aktuella appinställningar med hjälp av Azure CLI kör du kommandot . az logicapp config appsettings list Kontrollera att kommandot innehåller parametrarna --name -n och --resource-group -g , till exempel:

az logicapp config appsettings list --name MyLogicApp --resource-group MyResourceGroup

Om du vill lägga till eller uppdatera en appinställning med hjälp av Azure CLI kör du kommandot az logicapp config appsettings set. Kontrollera att kommandot innehåller parametrarna --name n och --resource-group -g . Följande kommando skapar till exempel en inställning med en nyckel med namnet CUSTOM_LOGIC_APP_SETTING med värdet 12345:

az logicapp config appsettings set --name MyLogicApp --resource-group MyResourceGroup --settings CUSTOM_LOGIC_APP_SETTING=12345 

Granska och definiera appinställningar i en Resource Manager- eller Bicep-fil

Om du vill granska och definiera dina appinställningar i en ARM-mall eller Bicep-fil letar du upp logikappens resursdefinition och uppdaterar appSettings JSON-objektet. Den fullständiga resursdefinitionen finns i ARM-mallreferensen.

I det här exemplet visas filinställningar för antingen ARM-mallar eller Bicep-filer:

"appSettings": [
    {
        "name": "string",
        "value": "string"
    },
    {
        "name": "string",
        "value": "string"
    },
    <...>
],