Langganan Azure sebagai sumber Event Grid

Artikel ini menyediakan properti dan skema untuk peristiwa langganan Azure. Untuk pengantar skema peristiwa, lihat Skema peristiwa Azure Event Grid.

Langganan dan grup sumber daya Azure mengeluarkan jenis peristiwa yang sama. Jenis peristiwa terkait dengan perubahan atau tindakan sumber daya. Perbedaan utamanya adalah grup sumber daya mengeluarkan peristiwa untuk sumber daya dalam grup sumber daya, dan langganan Azure mengeluarkan peristiwa untuk sumber daya di seluruh langganan.

Peristiwa sumber daya dibuat untuk operasi PUT, PATCH, POST, dan DELETE yang dikirim ke management.azure.com. Operasi GET tidak membuat peristiwa. Operasi yang dikirim ke sarana data (seperti myaccount.blob.core.windows.net) tidak membuat peristiwa. Peristiwa tindakan menyediakan data peristiwa untuk operasi seperti mencantumkan kunci untuk sumber daya.

Saat Anda berlangganan peristiwa untuk langganan Azure, titik akhir Anda menerima semua peristiwa untuk langganan tersebut. Peristiwa dapat mencakup peristiwa yang ingin Anda lihat, seperti memperbarui komputer virtual, tetapi juga peristiwa yang tidak penting untuk Anda, seperti menulis entri baru dalam riwayat penyebaran. Anda dapat menerima semua peristiwa di titik akhir dan menulis kode yang memproses peristiwa yang ingin Anda tangani. Atau, Anda dapat mengatur filter saat membuat langganan peristiwa.

Untuk menangani peristiwa secara terprogram, Anda dapat mengurutkan peristiwa dengan melihat nilai operationName. Misalnya, titik akhir peristiwa Anda mungkin hanya memproses peristiwa untuk operasi yang sama dengan Microsoft.Compute/virtualMachines/write atau Microsoft.Storage/storageAccounts/write.

Subjek peristiwa adalah ID sumber daya untuk sumber daya yang menjadi target operasi. Agar dapat memfilter peristiwa untuk sumber daya, berikan ID sumber daya tersebut saat membuat langganan peristiwa. Untuk memfilter menurut jenis sumber daya, gunakan nilai dalam format berikut: /subscriptions/<subscription-id>/resourcegroups/<resource-group>/providers/Microsoft.Compute/virtualMachines

Tipe kejadian yang tersedia

Langganan Azure mengeluarkan peristiwa pengelolaan dari Azure Resource Manager, seperti saat VM dibuat atau akun penyimpanan dihapus.

Jenis peristiwa Deskripsi
Microsoft.Resources.ResourceActionCancel Muncul saat tindakan atau sumber daya dibatalkan.
Microsoft.Resources.ResourceActionFailure Muncul saat tindakan atau sumber daya gagal.
Microsoft.Resources.ResourceActionSuccess Muncul saat tindakan atau sumber daya berhasil.
Microsoft.Resources.ResourceDeleteCancel Muncul saat operasi penghapusan dibatalkan. Peristiwa ini terjadi saat penyebaran templat dibatalkan.
Microsoft.Resources.ResourceDeleteFailure Muncul saat operasi penghapusan gagal.
Microsoft.Resources.ResourceDeleteSuccess Muncul saat operasi penghapusan berhasil.
Microsoft.Resources.ResourceWriteCancel Muncul saat operasi pembuatan atau pembaruan dibatalkan.
Microsoft.Resources.ResourceWriteFailure Muncul saat operasi pembuatan atau pembaruan gagal.
Microsoft.Resources.ResourceWriteSuccess Muncul saat operasi pembuatan atau pembaruan berhasil.

Contoh peristiwa

Contoh berikut menampilkan skema untuk peristiwa ResourceWriteSuccess. Skema yang sama digunakan untuk peristiwa ResourceWriteFailure dan ResourceWriteCancel dengan nilai yang berbeda untuk eventType.

[{
  "subject": "/subscriptions/{subscription-id}/resourcegroups/{resource-group}/providers/Microsoft.Storage/storageAccounts/{storage-name}",
  "topic": "/subscriptions/{subscription-id}",
  "type": "Microsoft.Resources.ResourceWriteSuccess",
  "time": "2018-07-19T18:38:04.6117357Z",
  "id": "4db48cba-50a2-455a-93b4-de41a3b5b7f6",
  "data": {
    "authorization": {
      "scope": "/subscriptions/{subscription-id}/resourcegroups/{resource-group}/providers/Microsoft.Storage/storageAccounts/{storage-name}",
      "action": "Microsoft.Storage/storageAccounts/write",
      "evidence": {
        "role": "Subscription Admin"
      }
    },
    "claims": {
      "aud": "{audience-claim}",
      "iss": "{issuer-claim}",
      "iat": "{issued-at-claim}",
      "nbf": "{not-before-claim}",
      "exp": "{expiration-claim}",
      "_claim_names": "{\"groups\":\"src1\"}",
      "_claim_sources": "{\"src1\":{\"endpoint\":\"{URI}\"}}",
      "http://schemas.microsoft.com/claims/authnclassreference": "1",
      "aio": "{token}",
      "http://schemas.microsoft.com/claims/authnmethodsreferences": "rsa,mfa",
      "appid": "{ID}",
      "appidacr": "2",
      "http://schemas.microsoft.com/2012/01/devicecontext/claims/identifier": "{ID}",
      "e_exp": "{expiration}",
      "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname": "{last-name}",
      "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname": "{first-name}",
      "ipaddr": "{IP-address}",
      "name": "{full-name}",
      "http://schemas.microsoft.com/identity/claims/objectidentifier": "{ID}",
      "onprem_sid": "{ID}",
      "puid": "{ID}",
      "http://schemas.microsoft.com/identity/claims/scope": "user_impersonation",
      "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier": "{ID}",
      "http://schemas.microsoft.com/identity/claims/tenantid": "{ID}",
      "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name": "{user-name}",
      "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn": "{user-name}",
      "uti": "{ID}",
      "ver": "1.0"
    },
    "correlationId": "{ID}",
    "resourceProvider": "Microsoft.Storage",
    "resourceUri": "/subscriptions/{subscription-id}/resourcegroups/{resource-group}/providers/Microsoft.Storage/storageAccounts/{storage-name}",
    "operationName": "Microsoft.Storage/storageAccounts/write",
    "status": "Succeeded",
    "subscriptionId": "{subscription-id}",
    "tenantId": "{tenant-id}"
  },
  "specversion": "`1.0"

}]

Contoh berikut menampilkan skema untuk peristiwa ResourceDeleteSuccess. Skema yang sama digunakan untuk peristiwa ResourceDeleteFailure dan ResourceDeleteCancel dengan nilai yang berbeda untuk eventType.

[{
  "subject": "/subscriptions/{subscription-id}/resourceGroups/{resource-group}/providers/Microsoft.Storage/storageAccounts/{storage-name}",
  "source": "/subscriptions/{subscription-id}",
  "type": "Microsoft.Resources.ResourceDeleteSuccess",
  "time": "2018-07-19T19:24:12.763881Z",
  "id": "19a69642-1aad-4a96-a5ab-8d05494513ce",
  "data": {
    "authorization": {
      "scope": "/subscriptions/{subscription-id}/resourceGroups/{resource-group}/providers/Microsoft.Storage/storageAccounts/{storage-name}",
      "action": "Microsoft.Storage/storageAccounts/delete",
      "evidence": {
        "role": "Subscription Admin"
      }
    },
    "claims": {
      "aud": "{audience-claim}",
      "iss": "{issuer-claim}",
      "iat": "{issued-at-claim}",
      "nbf": "{not-before-claim}",
      "exp": "{expiration-claim}",
      "_claim_names": "{\"groups\":\"src1\"}",
      "_claim_sources": "{\"src1\":{\"endpoint\":\"{URI}\"}}",
      "http://schemas.microsoft.com/claims/authnclassreference": "1",
      "aio": "{token}",
      "http://schemas.microsoft.com/claims/authnmethodsreferences": "rsa,mfa",
      "appid": "{ID}",
      "appidacr": "2",
      "http://schemas.microsoft.com/2012/01/devicecontext/claims/identifier": "{ID}",
      "e_exp": "262800",
      "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname": "{last-name}",
      "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname": "{first-name}",
      "ipaddr": "{IP-address}",
      "name": "{full-name}",
      "http://schemas.microsoft.com/identity/claims/objectidentifier": "{ID}",
      "onprem_sid": "{ID}",
      "puid": "{ID}",
      "http://schemas.microsoft.com/identity/claims/scope": "user_impersonation",
      "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier": "{ID}",
      "http://schemas.microsoft.com/identity/claims/tenantid": "{ID}",
      "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name": "{user-name}",
      "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn": "{user-name}",
      "uti": "{ID}",
      "ver": "1.0"
    },
    "correlationId": "{ID}",
    "httpRequest": {
      "clientRequestId": "{ID}",
      "clientIpAddress": "{IP-address}",
      "method": "DELETE",
      "url": "https://management.azure.com/subscriptions/{subscription-id}/resourceGroups/{resource-group}/providers/Microsoft.Storage/storageAccounts/{storage-name}?api-version=2018-02-01"
    },
    "resourceProvider": "Microsoft.Storage",
    "resourceUri": "/subscriptions/{subscription-id}/resourceGroups/{resource-group}/providers/Microsoft.Storage/storageAccounts/{storage-name}",
    "operationName": "Microsoft.Storage/storageAccounts/delete",
    "status": "Succeeded",
    "subscriptionId": "{subscription-id}",
    "tenantId": "{tenant-id}"
  },
  "specversion": "1.0"
}]

Contoh berikut menampilkan skema untuk peristiwa ResourceActionSuccess. Skema yang sama digunakan untuk peristiwa ResourceActionFailure dan ResourceActionCancel dengan nilai yang berbeda untuk eventType.

[{   
  "subject": "/subscriptions/{subscription-id}/resourceGroups/{resource-group}/providers/Microsoft.EventHub/namespaces/{namespace}/AuthorizationRules/RootManageSharedAccessKey",
  "source": "/subscriptions/{subscription-id}",
  "type": "Microsoft.Resources.ResourceActionSuccess",
  "time": "2018-10-08T22:46:22.6022559Z",
  "id": "{ID}",
  "data": {
    "authorization": {
      "scope": "/subscriptions/{subscription-id}/resourceGroups/{resource-group}/providers/Microsoft.EventHub/namespaces/{namespace}/AuthorizationRules/RootManageSharedAccessKey",
      "action": "Microsoft.EventHub/namespaces/AuthorizationRules/listKeys/action",
      "evidence": {
        "role": "Contributor",
        "roleAssignmentScope": "/subscriptions/{subscription-id}",
        "roleAssignmentId": "{ID}",
        "roleDefinitionId": "{ID}",
        "principalId": "{ID}",
        "principalType": "ServicePrincipal"
      }     
    },
    "claims": {
      "aud": "{audience-claim}",
      "iss": "{issuer-claim}",
      "iat": "{issued-at-claim}",
      "nbf": "{not-before-claim}",
      "exp": "{expiration-claim}",
      "aio": "{token}",
      "appid": "{ID}",
      "appidacr": "2",
      "http://schemas.microsoft.com/identity/claims/identityprovider": "{URL}",
      "http://schemas.microsoft.com/identity/claims/objectidentifier": "{ID}",
      "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier": "{ID}",       "http://schemas.microsoft.com/identity/claims/tenantid": "{ID}",
      "uti": "{ID}",
      "ver": "1.0"
    },
    "correlationId": "{ID}",
    "httpRequest": {
      "clientRequestId": "{ID}",
      "clientIpAddress": "{IP-address}",
      "method": "POST",
      "url": "https://management.azure.com/subscriptions/{subscription-id}/resourceGroups/{resource-group}/providers/Microsoft.EventHub/namespaces/{namespace}/AuthorizationRules/RootManageSharedAccessKey/listKeys?api-version=2017-04-01"
    },
    "resourceProvider": "Microsoft.EventHub",
    "resourceUri": "/subscriptions/{subscription-id}/resourceGroups/{resource-group}/providers/Microsoft.EventHub/namespaces/{namespace}/AuthorizationRules/RootManageSharedAccessKey",
    "operationName": "Microsoft.EventHub/namespaces/AuthorizationRules/listKeys/action",
    "status": "Succeeded",
    "subscriptionId": "{subscription-id}",
    "tenantId": "{tenant-id}"
  },
  "specversion": "1.0"
}]

Properti kejadian

Sebuah peristiwa memiliki data tingkat atas berikut ini:

Properti Tipe Deskripsi
source string Jalur sumber daya lengkap ke sumber kejadian. Bidang ini tidak dapat ditulis. Event Grid memberikan nilai ini.
subject string Jalur yang ditentukan penerbit ke subjek kejadian.
type string Salah satu jenis kejadian terdaftar untuk sumber kejadian ini.
time string Waktu peristiwa dibuat berdasarkan waktu UTC penyedia.
id string Pengidentifikasi unik untuk peristiwa tersebut.
data object Data peristiwa langganan.
specversion string Versi spesifikasi skema CloudEvents.

Objek data memiliki properti berikut:

Properti Tipe Deskripsi
authorization object Otorisasi yang diminta untuk operasi.
claims object Properti klaim. Untuk mengetahui informasi selengkapnya, lihat Spesifikasi JWT.
correlationId string ID operasi untuk pemecahan masalah.
httpRequest object Detail operasi. Objek ini hanya disertakan saat memperbarui sumber daya yang ada atau menghapus sumber daya.
resourceProvider string Penyedia sumber daya untuk operasi.
resourceUri string URI sumber daya dalam operasi.
operationName string Operasi yang dilakukan.
status string Status operasi.
subscriptionId string ID langganan sumber daya.
tenantId string ID tenant sumber daya.

Tutorial dan cara kerja

Judul Deskripsi
Tutorial: Azure Automation dengan Azure Event Grid dan Microsoft Teams Buat komputer virtual yang mengirim kejadian. Kejadian memicu runbook Automation yang menandai komputer virtual dan memicu pesan yang dikirim ke saluran Microsoft Teams.
Cara: langganan peristiwa melalui portal Gunakan portal untuk berlangganan peristiwa untuk langganan Azure.
Azure CLI: berlangganan peristiwa untuk langganan Azure dengan Sampel skrip yang membuat langganan Event Grid ke langganan Azure dan mengirim peristiwa ke WebHook.
PowerShell: berlangganan peristiwa untuk langganan Azure dengan Sampel skrip yang membuat langganan Event Grid ke langganan Azure dan mengirim peristiwa ke WebHook.

Langkah berikutnya