Сетка событий фильтрует события для всех функций Azure в подписке

Я пытаюсь отфильтровать события в сетке событий, чтобы они запускались только при изменении функции Azure в моей подписке (например, при изменении конфигурации, обновлении кода или создании / удалении новой функции).

Сценарий PowerShell, который я использую, выглядит следующим образом:

# Provide an endpoint for handling the events. Must be formatted "https://your-endpoint-URL"
$myEndpoint = "https://myendpoint-function.azurewebsites.net"
$subscriptionId = "abcde-34df-4493-9477-notrealid980"

$eventSubscriptionName = "FunctionConfigChanges"

# Select the Azure subscription you want to subscribe to. You need this command only if the 
# current subscription is not the one you wish to subscribe to.
Set-AzContext -Subscription $subscriptionId

$includedEventTypes = "Microsoft.Resources.ResourceActionSuccess", "Microsoft.Resources.ResourceDeleteSuccess", "Microsoft.Resources.ResourceWriteSuccess"
$AdvancedFilters = @{operator="StringContains"; key="Subject"; Values=@("providers/Microsoft.Web/sites")}
New-AzEventGridSubscription -Endpoint $myEndpoint -EventSubscriptionName $eventSubscriptionName -IncludedEventType $includedEventTypes -AdvancedFilter $AdvancedFilters

Это фильтрует все функции и веб-сайты (отметьте $AdvancedFilters). Есть ли способ отфильтровать событие только для функций Azure? Приветствуется любая помощь по решениям в Azure CLI, на портале, Powershell или .net sdk.


person dushyantp    schedule 15.06.2020    source источник


Ответы (1)


Для ваших требований можно использовать следующие свойства, обратите внимание, что operationName и action находятся в объекте данных:

  1. Создание функции:

    "eventType":"Microsoft.Resources.ResourceWriteSuccess"
    "operationName":"Microsoft.Web/sites/functions/write"
    
  2. Функция удаления:

    "eventType":"Microsoft.Resources.ResourceDeleteSuccess"   
    "operationName":"Microsoft.Web/sites/functions/delete"
    
  3. Код обновлен (файл run.csx):

    "eventType":"Microsoft.Resources.ResourceWriteSuccess"
    "operationName":"Microsoft.Web/sites/hostruntime/vfs/run.csx/write"
    
  4. Конфигурация изменена:

    "eventType":"Microsoft.Resources.ResourceWriteSuccess"
    "operationName":"Microsoft.Web/sites/config/write"
    

    Обратите внимание, что подписку на тему Служба приложений (в настоящее время в предварительном просмотре) мы можем фильтровать по следующим свойствам:

    "eventType":"Microsoft.Web.AppUpdated"
    "action":"ChangedAppSettings
    

Подписчик может найти имя приложения-функции (службы приложений) и конкретную функцию в свойстве subject.

В следующем примере показана настройка свойств фильтрации на основе вышеуказанных требований:

"filter": {
  "subjectBeginsWith": "",
  "subjectEndsWith": "",
  "includedEventTypes": [
    "Microsoft.Resources.ResourceWriteSuccess",
    "Microsoft.Resources.ResourceDeleteSuccess"
  ],
"advancedFilters": [
  {
    "values": [
      "Microsoft.Web/sites/functions/write",
      "Microsoft.Web/sites/functions/delete",
      "Microsoft.Web/sites/hostruntime/vfs/run.csx/write",
      "Microsoft.Web/sites/config/write"
    ],
    "operatorType": "StringIn",
    "key": "Data.operationName"
  }
]

}

person Roman Kiss    schedule 17.06.2020
comment
Привет спасибо за это Это именно то, что я искал. Приносим извинения за задержку подтверждения был занят. - person dushyantp; 19.06.2020