Пример скрипта Azure CLI. Создание приложения логики

Область применения: Azure Logic Apps (потребление)

Этот скрипт создает пример приложения логики с помощью расширения Logic Apps для Azure CLI (az logic). Подробное руководство по созданию приложений логики и управлению ими через Azure CLI см. в кратком руководстве по работе с Logic Apps в Azure CLI.

Предупреждение

Расширение Azure CLI Logic Apps в настоящее время экспериментальное, на него не предоставляется клиентская поддержка. Используйте это расширение CLI с осторожностью, особенно в рабочих средах.

Предварительные требования

Проверка предварительных условий

Перед началом работы проверьте среду, выполнив следующие действия.

Описание примера рабочего процесса

В этом примере файла определения рабочего процесса создается тот же базовый пример рабочего процесса приложения логики Потребление, что и в кратком руководстве по портал Azure.

Этот пример рабочего процесса выполняет следующее.

  1. Определяет схему $schema для приложения логики.

  2. Определяет триггер для приложения логики в списке триггеров triggers. Этот триггер выполняется каждые 3 часа (recurrence). Определенные действия активируются при публикации нового элемента (When_a_feed_item_is_published) в указанном RSS-канале (feedUrl).

  3. Определяет действие для приложения логики в списке действий actions. Это действие отправляет через Microsoft 365 сообщение электронной почты (Send_an_email_(V2)) со сведениями из элементов RSS-канала в соответствии с определениями в разделе текста (body) для входных данных действия (inputs).

Пример определения рабочего процесса

Перед запуском примера скрипта необходимо создать пример определения рабочего процесса.

  1. Создайте на локальном компьютере JSON-файл testDefinition.json.

  2. Скопируйте в этот JSON-файл следующее содержимое:

    
    {
        "definition": {
            "$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#",
            "actions": {
                "Send_an_email_(V2)": {
                    "inputs": {
                        "body": {
                            "Body": "<p>@{triggerBody()?['publishDate']}<br>\n@{triggerBody()?['title']}<br>\n@{triggerBody()?['primaryLink']}</p>",
                            "Subject": "@triggerBody()?['title']",
                            "To": "test@example.com"
                        },
                        "host": {
                            "connection": {
                                "name": "@parameters('$connections')['office365']['connectionId']"
                            }
                        },
                        "method": "post",
                        "path": "/v2/Mail"
                    },
                    "runAfter": {},
                    "type": "ApiConnection"
                }
            },
            "contentVersion": "1.0.0.0",
            "outputs": {},
            "parameters": {
                "$connections": {
                    "defaultValue": {},
                    "type": "Object"
                }
            },
            "triggers": {
                "When_a_feed_item_is_published": {
                    "inputs": {
                        "host": {
                            "connection": {
                                "name": "@parameters('$connections')['rss']['connectionId']"
                            }
                        },
                        "method": "get",
                        "path": "/OnNewFeed",
                        "queries": {
                            "feedUrl": "https://www.pbs.org/now/rss.xml"
                        }
                    },
                    "recurrence": {
                        "frequency": "Hour",
                        "interval": 3
                    },
                    "splitOn": "@triggerBody()?['value']",
                    "type": "ApiConnection"
                }
            }
        },
        "parameters": {
            "$connections": {
                "value": {
                    "office365": {
                        "connectionId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testResourceGroup/providers/Microsoft.Web/connections/office365",
                        "connectionName": "office365",
                        "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Web/locations/westus/managedApis/office365"
                    },
                    "rss": {
                        "connectionId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testResourceGroup/providers/Microsoft.Web/connections/rss",
                        "connectionName": "rss",
                        "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Web/locations/westus/managedApis/rss"
                    }
                }
            }
        }
    }
    
    
  3. Замените значения заполнителей реальными данными:

    1. Замените заполнитель адреса электронной почты ("To": "test@example.com"). Необходимо использовать адрес электронной почты, совместимый с соединителями Logic Apps. Дополнительные сведения см. в разделе Необходимые условия.

    2. Укажите дополнительные сведения о соединителе, если вы используете другой соединитель электронной почты, отличный от соединителя Office 365 Outlook.

    3. Замените реальными значениями для вашей подписки заполнители (00000000-0000-0000-0000-000000000000) в параметрах идентификаторов подключения (connectionId и id) в разделе connections ($connections).

  4. Сохраните изменения.

Пример скрипта

Примечание

Этот пример написан для оболочки bash. Если вы хотите выполнить этот пример в другой оболочке, например в PowerShell или в командной строке Windows, могут потребоваться некоторые изменения.

Перед запуском этого примера скрипта выполните следующую команду для подключения к Azure:


az login

Затем перейдите к каталогу, в котором вы создали определение рабочего процесса. Например, если JSON-файл определения рабочего процесса сохранен на рабочем столе локального компьютера, выполните:


cd ~/Desktop

Теперь запустите скрипт, который создаст приложение логики.


#!/bin/bash

# Create a resource group

az group create --name testResourceGroup --location westus

# Create your logic app

az logic workflow create --resource-group "testResourceGroup" --location "westus" --name "testLogicApp" --definition "testDefinition.json"

Очистка развертывания

Когда выполнение примера скрипта завершится, запустите следующую команду для удаления группы ресурсов со всеми вложенными ресурсами, включая приложение логики.


az group delete --name testResourceGroup --yes

Описание скрипта

Для создания группы ресурсов и приложения логики этот скрипт использует следующие команды.

Get-Help Примечания
az group create Создает группу ресурсов, в которой хранятся ресурсы приложения логики.
az logic workflow create Создает приложение логики на основе рабочего процесса, определенного в параметре --definition.
az group delete Удаляет группу ресурсов и все вложенные ресурсы.

Дальнейшие действия

Дополнительные сведения об Azure CLI см. в документации по Azure CLI.

Дополнительные примеры скриптов CLI для Logic Apps можно найти в браузере примеров кода Майкрософт.