Azure Notification Hubs kimeneti kötések az Azure Functionshez
Ez a cikk bemutatja, hogyan küldhet leküldéses értesítéseket az Azure Notification Hubs-kötések használatával az Azure Functionsben. Az Azure Functions támogatja a Notification Hubs kimeneti kötéseit.
Konfigurálnia kell a Notification Hubs szolgáltatást a használni kívánt platformértesítési szolgáltatáshoz (PNS). További információ arról, hogyan kérhet leküldéses értesítéseket az ügyfélalkalmazásban a Notification Hubsból: Rövid útmutató: Leküldéses értesítések beállítása értesítési központban.
Fontos
A Google elavult Google Cloud Messaging (GCM) a Firebase Cloud Messaging (FCM) javára. A Notification Hubs kimeneti kötései azonban nem támogatják az FCM-et. Ha az FCM használatával szeretne értesítéseket küldeni, használja a Firebase API-t közvetlenül a függvényben, vagy használjon sablonértesítéseket.
Csomagok: Functions 1.x
Fontos
Az Azure Functions-futtatókörnyezet 1.x verziójának támogatása 2026. szeptember 14-én megszűnik. Javasoljuk, hogy a teljes támogatás érdekében migrálja az alkalmazásokat a 4.x-es verzióra.
A Notification Hubs-kötések a Microsoft.Azure.WebJobs.Extensions.NotificationHubs NuGet csomag 1.x-es verziójában érhetők el. A csomag forráskódja az azure-webjobs-sdk-extensions GitHub-adattárban található.
Az alábbi táblázat bemutatja, hogyan adhat támogatást a kimeneti kötéshez az egyes fejlesztési környezetekben.
Fejlesztői környezet | Támogatás hozzáadása a Functions 1.x-ben |
---|---|
Helyi fejlesztés: C# osztálykódtár | A csomag telepítése |
Helyi fejlesztés: C# szkript, JavaScript, F# | Automatikus |
Portál fejlesztése | Automatikus |
Csomagok: Functions 2.x és újabb
A kimeneti kötés nem érhető el a Functions 2.x és újabb verzióiban.
Példa: sablon
Az elküldött értesítések lehetnek natív értesítések vagy sablonértesítések. A natív értesítések egy adott ügyfélplatformot céloznak meg, a kimeneti kötés tulajdonságában platform
konfigurálva. A sablonértesítések több platformot is megcélzhatnak.
Sablon példák az egyes nyelvekhez:
- C#-szkript: kimenő paraméter
- C# szkript: aszinkron
- C#-szkript: JSON
- C#-szkript: kódtártípusok
- F#
- JavaScript
Példa C#-szkriptsablonra: out parameter
Ez a példa egy olyan sablonregisztrációról küld értesítést, amely egy helyőrzőt message
tartalmaz a sablonban:
using System;
using System.Threading.Tasks;
using System.Collections.Generic;
public static void Run(string myQueueItem, out IDictionary<string, string> notification, TraceWriter log)
{
log.Info($"C# Queue trigger function processed: {myQueueItem}");
notification = GetTemplateProperties(myQueueItem);
}
private static IDictionary<string, string> GetTemplateProperties(string message)
{
Dictionary<string, string> templateProperties = new Dictionary<string, string>();
templateProperties["message"] = message;
return templateProperties;
}
Példa C#-szkriptsablonra: aszinkron
Ha aszinkron kódot használ, a kimenő paraméterek nem engedélyezettek. Ebben az esetben a sablonértesítés visszaküldésére használható IAsyncCollector
. Az alábbi kód egy aszinkron példa az előző példára:
using System;
using System.Threading.Tasks;
using System.Collections.Generic;
public static async Task Run(string myQueueItem, IAsyncCollector<IDictionary<string,string>> notification, TraceWriter log)
{
log.Info($"C# Queue trigger function processed: {myQueueItem}");
log.Info($"Sending Template Notification to Notification Hub");
await notification.AddAsync(GetTemplateProperties(myQueueItem));
}
private static IDictionary<string, string> GetTemplateProperties(string message)
{
Dictionary<string, string> templateProperties = new Dictionary<string, string>();
templateProperties["user"] = "A new user wants to be added : " + message;
return templateProperties;
}
Példa C#-szkriptsablonra: JSON
Ez a példa egy olyan sablonregisztrációról küld értesítést, amely egy érvényes JSON-sztringet használó helyőrzőt tartalmaz message
a sablonban:
using System;
public static void Run(string myQueueItem, out string notification, TraceWriter log)
{
log.Info($"C# Queue trigger function processed: {myQueueItem}");
notification = "{\"message\":\"Hello from C#. Processed a queue item!\"}";
}
Példa C#-szkriptsablonra: kódtártípusok
Ez a példa a Microsoft Azure Notification Hubs-kódtárban definiált típusok használatát mutatja be:
#r "Microsoft.Azure.NotificationHubs"
using System;
using System.Threading.Tasks;
using Microsoft.Azure.NotificationHubs;
public static void Run(string myQueueItem, out Notification notification, TraceWriter log)
{
log.Info($"C# Queue trigger function processed: {myQueueItem}");
notification = GetTemplateNotification(myQueueItem);
}
private static TemplateNotification GetTemplateNotification(string message)
{
Dictionary<string, string> templateProperties = new Dictionary<string, string>();
templateProperties["message"] = message;
return new TemplateNotification(templateProperties);
}
Példa F#-sablonra
Ez a példa egy olyan sablonregisztrációról küld értesítést, amely tartalmazza location
a következőtmessage
:
let Run(myTimer: TimerInfo, notification: byref<IDictionary<string, string>>) =
notification = dict [("location", "Redmond"); ("message", "Hello from F#!")]
Példa JavaScript-sablonra
Ez a példa egy olyan sablonregisztrációról küld értesítést, amely tartalmazza location
a következőtmessage
:
module.exports = async function (context, myTimer) {
var timeStamp = new Date().toISOString();
if (myTimer.IsPastDue)
{
context.log('Node.js is running late!');
}
context.log('Node.js timer trigger function ran!', timeStamp);
context.bindings.notification = {
location: "Redmond",
message: "Hello from Node!"
};
};
Példa: APNS natív
Ez a C#-példaszkript bemutatja, hogyan küldhet natív Apple Push Notification Service (APNS) értesítést:
#r "Microsoft.Azure.NotificationHubs"
#r "Newtonsoft.Json"
using System;
using Microsoft.Azure.NotificationHubs;
using Newtonsoft.Json;
public static async Task Run(string myQueueItem, IAsyncCollector<Notification> notification, TraceWriter log)
{
log.Info($"C# Queue trigger function processed: {myQueueItem}");
// In this example, the queue item is a new user to be processed in the form of a JSON string with
// a "name" value.
//
// The JSON format for a native Apple Push Notification Service (APNS) notification is:
// { "aps": { "alert": "notification message" }}
log.LogInformation($"Sending APNS notification of a new user");
dynamic user = JsonConvert.DeserializeObject(myQueueItem);
string apnsNotificationPayload = "{\"aps\": {\"alert\": \"A new user wants to be added (" +
user.name + ")\" }}";
log.LogInformation($"{apnsNotificationPayload}");
await notification.AddAsync(new AppleNotification(apnsNotificationPayload));
}
Példa: natív WNS
Ez a C#-példaszkript bemutatja, hogyan használhatja a Microsoft Azure Notification Hubs-kódtárban definiált típusokat natív Windows Push Notification Service (WNS) bejelentési értesítés küldéséhez:
#r "Microsoft.Azure.NotificationHubs"
#r "Newtonsoft.Json"
using System;
using Microsoft.Azure.NotificationHubs;
using Newtonsoft.Json;
public static async Task Run(string myQueueItem, IAsyncCollector<Notification> notification, TraceWriter log)
{
log.Info($"C# Queue trigger function processed: {myQueueItem}");
// In this example, the queue item is a new user to be processed in the form of a JSON string with
// a "name" value.
//
// The XML format for a native WNS toast notification is ...
// <?xml version="1.0" encoding="utf-8"?>
// <toast>
// <visual>
// <binding template="ToastText01">
// <text id="1">notification message</text>
// </binding>
// </visual>
// </toast>
log.Info($"Sending WNS toast notification of a new user");
dynamic user = JsonConvert.DeserializeObject(myQueueItem);
string wnsNotificationPayload = "<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
"<toast><visual><binding template=\"ToastText01\">" +
"<text id=\"1\">" +
"A new user wants to be added (" + user.name + ")" +
"</text>" +
"</binding></visual></toast>";
log.Info($"{wnsNotificationPayload}");
await notification.AddAsync(new WindowsNotification(wnsNotificationPayload));
}
Attribútumok
A C#-osztálytárakban használja a NotificationHub attribútumot.
Az attribútum konstruktorparamétereit és tulajdonságait a Konfiguráció szakasz ismerteti.
Konfiguráció
Az alábbi táblázat a function.json fájlban és az attribútumban beállított kötéskonfigurációs tulajdonságokat sorolja felNotificationHub
:
function.json tulajdonság | Attribútumtulajdonság | Leírás |
---|---|---|
type | n.a. | Állítsa notificationHub értékre. |
direction | n.a. | Állítsa out értékre. |
név | n.a. | Az értesítési központ üzenetének függvénykódjában használt változónév. |
tagExpression | TagExpression | A címkekifejezések lehetővé teszik annak megadását, hogy az értesítések a címkekifejezésnek megfelelő értesítések fogadásához regisztrált eszközökre érkeznek. További információ: Útválasztás és címkekifejezések. |
hubName | HubName | Az értesítési központ erőforrásának neve az Azure Portalon. |
kapcsolat | ConnectionStringSetting | A Notification Hubs-kapcsolati sztring tartalmazó alkalmazásbeállítás neve. Állítsa a kapcsolati sztring az értesítési központ AlapértelmezettFullSharedAccessSignature értékére. További információ: Kapcsolati sztring beállítása. |
peron | Peron | A platformtulajdonság az értesítési célokat jelző ügyfélplatformot jelzi. Alapértelmezés szerint, ha a platformtulajdonság hiányzik a kimeneti kötésből, a sablonértesítések az Azure Notification Hubon konfigurált platformokat célozhatják meg. Ha többet szeretne tudni arról, hogy sablonokkal küldhet platformfüggetlen értesítéseket egy Azure Notification Hub használatával, tekintse meg a Notification Hubs-sablonokat. A platform beállításakor az alábbi értékek egyikének kell lennie:
|
Helyi fejlesztéskor adja hozzá az alkalmazásbeállításokat a gyűjtemény local.settings.json fájljáhozValues
.
példa function.json fájlra
Íme egy példa egy Notification Hubs-kötésre egy function.json fájlban:
{
"bindings": [
{
"type": "notificationHub",
"direction": "out",
"name": "notification",
"tagExpression": "",
"hubName": "my-notification-hub",
"connection": "MyHubConnectionString",
"platform": "apns"
}
],
"disabled": false
}
Kapcsolati sztring beállítása
Az értesítési központ kimeneti kötésének használatához konfigurálnia kell a központ kapcsolati sztring. Kiválaszthat egy meglévő értesítési központot, vagy létrehozhat egy újat az Azure Portal Integrálás lapján. A kapcsolati sztring manuálisan is konfigurálhatja.
A kapcsolati sztring konfigurálása meglévő értesítési központra:
Lépjen az értesítési központra az Azure Portalon, válassza az Access-szabályzatokat, és válassza a Másolás gombot a DefaultFullSharedAccessSignature szabályzat mellett.
A DefaultFullSharedAccessSignature szabályzat kapcsolati sztring át lesz másolva az értesítési központba. Ez a kapcsolati sztring lehetővé teszi, hogy a függvény értesítési üzeneteket küldjön a központnak.
Lépjen a függvényalkalmazásra az Azure Portalon, bontsa ki a Beállítások elemet, majd válassza a Környezeti változók lehetőséget.
Az Alkalmazásbeállítás lapon válassza a + Hozzáadás lehetőséget egy olyan kulcs hozzáadásához, mint a MyHubConnectionString. Ennek az alkalmazásbeállításnak a neve a kimeneti kötés kapcsolati beállítása function.json vagy a .NET attribútumban. További információ: Konfiguráció.
Az értékhez illessze be a másolt DefaultFullSharedAccessSignature kapcsolati sztring az értesítési központból, majd válassza az Alkalmaz lehetőséget.
Helyi fejlesztéskor adja hozzá az alkalmazásbeállításokat a gyűjtemény local.settings.json fájljáhozValues
.
Kivételek és visszatérési kódok
Kötés | Referencia |
---|---|
Notification Hubs | Üzemeltetési útmutató |
Kapcsolódó tartalom
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: