Cvičení – nasazení a export pracovního postupu Azure Logic Apps pomocí šablony ARM
V předchozím cvičení jsme nasadili aplikaci logiky pomocí základní šablony Azure Resource Manageru. Tato šablona byla nepružná v tom, že vše bylo pevně zakódováno. Pokud chcete například změnit název pracovního postupu nebo umístění nasazení aplikace, musíte šablonu upravit. Ve scénářích, ve kterých máte ve skriptovém prostředí více nasazení, se ruční úprava šablony stává těžkopádná. Lepším řešením je zadávat hodnoty pro přizpůsobení nasazení prostředků jako parametry.
Aktualizace šablony, aby se používaly parametry šablony
Zkopírujte základní šablonu, kterou jsme použili v předchozím cvičení, pomocí následujícího
cp
příkazu:cp basic-template.json template-with-params.json
Otevřete šablonu v integrovaném editoru pomocí následujícího
code
příkazu:code template-with-params.json
Prvním krokem je přidání parametrů, abychom mohli snadno přizpůsobit název a umístění aplikace, kde se aplikace spouští.
parameters
Nahraďte oddíl v šabloně následujícím fragmentem kódu, který přidá dva nové parametry alogicAppName
location
:"parameters": { "logicAppName": { "type": "string", "metadata": { "description": "The name of the logic app to create." } }, "location": { "type": "string", "defaultValue": "[resourceGroup().location]", "metadata": { "description": "Location for all resources." } } },
Oba parametry jsou řetězce. Pro parametr neposkytujeme výchozí hodnotu
logicAppName
, což znamená, že je potřeba zadat jednu hodnotu v době nasazení. Naproti tomu je nepovinný,location
protože zadáme výchozí hodnotu.Výchozí hodnota parametru
location
je umístění skupiny prostředků, do které je aplikace nasazená. Tuto hodnotu získáme odkazem na vlastnost location ze skupiny prostředků, kterou vrátí funkce šablonyresourceGroup()
. Výrazy začínají a končí levou a pravou závorkou ([ ]
) v uvedeném pořadí. Hodnota výrazu se vyhodnotí při dokončení nasazení šablony. Výraz může vrátit řetězec, celé číslo, logickou hodnotu, pole nebo objekt. V šabloně můžete definovat maximálně 256 parametrů.Teď, když jsme definovali dva nové parametry, použijeme je v šabloně nahrazením pevně zakódovaných hodnot odkazy na nové parametry.
name
Nahraďte polelocation
v oddílu prostředků šablony tak, aby používaly naše nové parametry, jak je znázorněno v následujícím fragmentu kódu:"name": "[parameters('logicAppName')]", "location": "[parameters('location')]",
Nahraďte oddíl
outputs
v dolní části šablony následujícím kódem. Aktualizujeme hodnotulogicAppUrl
proměnné šablony tak, aby používalalogicAppName
také parametr, jak je znázorněno v následujícím fragmentu kódu:"outputs": { "logicAppUrl": { "type": "string", "value": "[listCallbackURL(concat(resourceId('Microsoft.Logic/workflows/', parameters('logicAppName')), '/triggers/manual'), '2017-07-01').value]" } }
Stisknutím kláves Ctrl + S uložte změny do template-with-params.json.
Nasazení prostředku aplikace logiky pomocí parametrizované šablony
Existují dva způsoby, jak pomocí příznaku --parameters
v příkazu az deployment group create
během nasazení předat parametry šabloně. Můžeme předat identifikátor URI souboru vzdálených parametrů nebo název místního souboru. Použijeme místní soubor.
Vytvoření souboru JSON s parametry
Vytvořte nový soubor volaný
params.json
v integrovaném editoru kódu pomocí následujícího příkazu:code params.json
Vložte následující KÓD JSON do params.json a stisknutím kláves Ctrl + S uložte provedené změny.
{ "logicAppName": { "value": "myLogicApp" } }
Ověření šablony
V Cloud Shellu spusťte
az deployment group validate
příkaz k ověření šablony:az deployment group validate \ --resource-group "<rgn>[sandbox resource group name]</rgn>" \ --template-file template-with-params.json \ --parameters @params.json
Argument
--template-file
odkazuje na místní šablonu. Název souboru šablony je template-with-params.json.Jako výstup se zobrazí velký blok JSON, který vám řekne, že šablona prošla ověřením.
Azure Resource Manager vyplní parametry šablony a zkontroluje, jestli by se šablona úspěšně spustila ve vašem předplatném.
Pokud se ověření nezdařilo, zobrazí se ve výstupu podrobný popis selhání.
Nasazení šablony s parametry z místního souboru
Spuštěním následujícího příkazu v Cloud Shellu nasaďte prostředek aplikace logiky s názvem aplikace převzatým ze souboru params.json . V souboru
location
params.json není parametr nastavený, takže se použije výchozí hodnota.az deployment group create \ --resource-group "<rgn>[sandbox resource group name]</rgn>" \ --template-file template-with-params.json \ --parameters @params.json
Nasazení bude chvíli trvat a průběh můžete sledovat v příkazovém řádku Cloud Shellu. Až se nasazení dokončí, měli byste ve výsledku JSON vidět
provisioningState
s hodnotouSucceeded
.Pokud chcete vidět aplikaci v akci, vyhledejte ve výsledku JSON hodnotu logicAppUrl. Vyberte adresu URL nebo ji zkopírujte a vložte ji do nového okna prohlížeče. Na stránce se zobrazí zpráva Hello Azure Logic Apps Template! .
Nasazení šablony s parametry z příkazového řádku
Místo provádění úprav souboru s parametry při každém nasazování z příkazového řádku můžeme parametry zadávat v řetězci JSON na příkazovém řádku.
Spuštěním následujícího příkazu v Cloud Shellu nasaďte prostředek aplikace logiky s názvem aplikace a jeho umístěním předaným jako řetězec JSON na příkazovém řádku:
az deployment group create \ --resource-group "<rgn>[sandbox resource group name]</rgn>" \ --template-file template-with-params.json \ --parameters '{ "logicAppName": {"value":"MyLogicApp2"}, "location": {"value":"East US"}}'
Nasazení bude chvíli trvat a průběh můžete sledovat v příkazovém řádku Cloud Shellu. Až se nasazení dokončí, měli byste ve výsledku JSON vidět
provisioningState
s hodnotouSucceeded
.Pokud chcete vidět aplikaci v akci, vyhledejte ve výsledku JSON hodnotu logicAppUrl. Vyberte adresu URL a vložte ji do nového okna prohlížeče. Na stránce se zobrazí zpráva Hello Azure Logic Apps Template! .
Spuštěním následujícího příkazu zobrazte seznam všech pracovních postupů Azure Logic Apps, které jsme zatím nasadili:
az resource list \ --resource-group "<rgn>[sandbox resource group name]</rgn>" \ --resource-type Microsoft.Logic/workflows \ --query [*].[name,location] --output tsv
Tento příkaz vypíše dva pracovní postupy Azure Logic Apps, které jsme zatím nasadili, a to vše ze šablony.
Aktualizace akce aplikace v šabloně Azure Resource Manageru
Teď se zaměříme na to, aby naše aplikace prováděla trochu víc než pouhé vracení statické zprávy. Aplikaci ponecháme jako pracovní postup aktivovaný protokolem HTTP, který stále vrátí odpověď HTTP. Pojďme předat některé hodnoty s požadavkem a nechat aplikaci provést výpočet. Provedeme základní výpočet oblasti. Předpokládejme, že předávané vstupy představují výšku a šířku obdélníku a vrátit se má jeho plocha. Pak nasadíme novou aplikaci a podíváme se, jak běží.
Spuštěním následujícího příkazu v Cloud Shellu otevřete template-with-params.json v integrovaném editoru:
code template-with-params.json
relativePath
Přidejte pole do části vstupů triggeru požadavku HTTP, jak je znázorněno v následujícím fragmentu kódu:"inputs": { "method": "GET", "relativePath": "{width}/{height}", "schema": {} }
Položka
relativePath
určuje parametry, které má adresa URL koncového bodu HTTP přijímat. V tomto případě definujeme dva parametry, šířku a výšku. Tyto hodnoty parametrů použijeme k výpočtu oblasti a vrácení výsledku.Aktualizujte text akce Odpovědi následujícím řádkem:
"body": "Response from @{workflow().name} Total area = @{mul( int(triggerOutputs()['relativePathParameters']['height']) , int(triggerOutputs()['relativePathParameters']['width']) )}",
Aktualizovaná odpověď provádí následující úlohy:
Vytiskne název prostředku aplikace logiky. Odpověď volá
workflow()
funkci, která vrátí informace o pracovním postupu. Z tohoto výsledku odkazujeme na vlastnost name.Vrátí součin celočíselného ekvivalentu pro řetězcové hodnoty výšky a šířky z parametrů adresy URL. Tento úkol používá
mul()
funkci aint()
převodní funkci.
Stisknutím kláves Ctrl + S uložte změny do template-with-params.json.
Po provedení těchto změn pomocí příkazu v Cloud Shellu
az deployment group validate
šablonu ověřte. V tomto příkladu nastavíme název aplikace na CalculateArea pomocí vloženého parametru.az deployment group validate \ --resource-group "<rgn>[sandbox resource group name]</rgn>" \ --template-file template-with-params.json \ --parameters '{ "logicAppName": {"value":"CalculateArea"}}'
Spuštěním následujícího příkazu nasaďte tyto změny do aplikace logiky CalculateArea. Vynecháme hodnotu parametru
location
a použijeme výchozí hodnotu.az deployment group create \ --resource-group "<rgn>[sandbox resource group name]</rgn>" \ --template-file template-with-params.json \ --parameters '{ "logicAppName": {"value":"CalculateArea"}}'
Nasazení bude chvíli trvat, ale průběh můžete sledovat na příkazovém řádku Cloud Shellu. Až se nasazení dokončí, měli byste ve výsledku JSON vidět
provisioningState
s hodnotouSucceeded
.Pokud chcete vidět aplikaci v akci, vyhledejte ve výsledku JSON hodnotu logicAppUrl. Vyberte adresu URL a vložte ji do nového okna prohlížeče.
Aktualizujte adresu URL v prohlížeči tak, že změníte
/triggers/manual/paths/invoke?api
na/triggers/manual/paths/invoke/{width}/{height}?api
, kde {width} a {height} jsou celočíselné hodnoty pro šířku a výšku plochy, kterou chceme vypočítat. Například/triggers/manual/paths/invoke/6/7?api
. Odpověď z aplikace zobrazí název pracovního postupu a počítanou oblast, jak je znázorněno na následujícím snímku obrazovky:Poznámka:
Nezapomeňte nahradit pouze odkazované části adresy URL v předchozím kroku. Ponechte veškerý text na obou stranách tak, jak je.
Spuštěním následujícího příkazu zobrazte seznam všech pracovních postupů Azure Logic Apps, které jsme zatím nasadili:
az resource list \ --resource-group "<rgn>[sandbox resource group name]</rgn>" \ --resource-type Microsoft.Logic/workflows \ --query [*].[name,location] --output tsv
V tomto cvičení jsme nastavili větší flexibilitu pro šablonu pomocí parametrů. Tyto parametry jsme zadali na příkazovém řádku a pomocí místního souboru. Aktualizovali jsme také akci, kterou náš jednoduchý pracovní postup provádí, a to přímo změnou body
odpovědi, kterou pošleme zpět.
V Cloud Shellu si můžete parametry a soubory šablony stáhnout z GitHubu pomocí následujících příkazů curl
.
curl https://github.com/MicrosoftDocs/mslearn-logic-apps-and-arm-templates/blob/master/calculate-area/params.json > params-final.json
curl https://github.com/MicrosoftDocs/mslearn-logic-apps-and-arm-templates/blob/master/calculate-area/template.json > template-with-params-final.json