Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Azure İletişim Hizmetleri SMS özellikleri, geliştiricilere ALıNAN SMS olaylarını kullanma seçenekleri sağlar. Olaylar, web kancaları, Azure İşlevleri, Power Automate / Logic App bağlayıcıları ve daha fazlasını kullananları işlemek için kullanıma açık tümleştirmeler sağlayan Azure Event Grid'e gönderiliyor.
Sms iletileri alındıktan sonra yanıt vermek veya gelecekte erişmek üzere bir veritabanında günlüğe kaydetmek üzere işlenebilir.
Bu makalede, Power Automate / Logic Apps için Event Grid tetikleyicilerini ve kod içermeyen bağlayıcıları kullanarak Azure İşlevleri aracılığıyla SMS alınan olayların nasıl işlendiği açıklanmaktadır.
SMSReceived Azure İletişim Hizmetleri telefon numarasına SMS gönderildiğinde oluşturulan olay aşağıdaki şekilde biçimlendirilir:
[{
"id": "d29ebbea-3341-4466-9690-0a03af35228e",
"topic": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/acse2e/providers/microsoft.communication/communicationservices/{communication-services-resource-name}",
"subject": "/phonenumber/15555555555",
"data": {
"MessageId": "d29ebbea-3341-4466-9690-0a03af35228e",
"From": "15555555555",
"To": "15555555555",
"Message": "Great to connect with Azure Communication Services events",
"ReceivedTimestamp": "2020-09-18T00:27:45.32Z"
},
"eventType": "Microsoft.Communication.SMSReceived",
"dataVersion": "1.0",
"metadataVersion": "1",
"eventTime": "2020-09-18T00:27:47Z"
}]
Uyarı
Bu API tarafından döndürülen MessageId formatı, içsel bir uygulama ayrıntısı olarak kabul edilir ve önceden bildirimde bulunmadan değiştirilebilir. İstemciler, ileti kimliklerini opak tanımlayıcılar olarak ele almalı ve biçimlerine veya içeriğine göre ayrıştırmamalı, yapı çıkarmamalı veya mantık oluşturmamalıdır.
Olay oluşturmaya başlamak için Azure Event Grid'i Azure İletişim Hizmetleri kaynağınızı kullanacak şekilde yapılandırın.
Uyarı
Azure Event Grid'in kullanılması daha fazla maliyete neden olur. Daha fazla bilgi için bkz. Azure Event Grid fiyatlandırması.
Önkoşullar
- Aktif bir aboneliğe sahip bir Azure hesabı. Ücretsiz bir hesap oluşturun.
- Aktif bir İletişim Hizmetleri kaynağı ve bağlantı dizesi. İletişim Hizmetleri kaynağı oluşturun.
- SMS özellikli bir telefon numarası. Bir telefon numarası alın.
- Aboneliğinizde Event Grid kaynağının sağlanmasını etkinleştirin. Yönergelere bakın.
Event Grid, Azure İşlevleri için kullanıma hazır destek sağlayarak üst bilgileri ayrıştırma veya web kancalarında hata ayıklamanın karmaşıklığıyla ilgilenmeye gerek kalmadan bir olay dinleyicisi ayarlamayı kolaylaştırır. Hazır tetikleyiciyi kullanarak tetikleyiciyle eşleşen bir olay algılandığında çalışan bir Azure İşlevi ayarlayabiliriz. Bu belgede alınan SMS'lere yönelik tetikleyicilere odaklanacağız.
Yerel ortamımızı ayarlama
Visual Studio Code'u kullanarak Azure İşlevleri Uzantısı'nı yükleyin.
Uzantıyla, bu yönergeleri izleyerek bir Azure İşlevi oluşturun.
İşlevi aşağıdaki yönergelerle yapılandırın:
- Dil: TypeScript
- Şablon: Azure Event Grid Tetikleyicisi
- İşlev Adı: Kullanıcı tanımlı
Oluşturulduktan sonra dizininizde aşağıdaki gibi bir işlev oluşturulur:
import { AzureFunction, Context } from "@azure/functions" const eventGridTrigger: AzureFunction = async function (context: Context, eventGridEvent: any): Promise<void> { context.log(eventGridEvent); }; export default eventGridTrigger;
Azure İşlevi'ni SMS olayını alacak şekilde yapılandırma
Azure İşlevi'ni olaydaki değerleri kimin gönderdiği, hangi sayıya ve iletinin ne olduğu gibi ayrıştıracak şekilde yapılandırın.
import { AzureFunction, Context } from "@azure/functions" const eventGridTrigger: AzureFunction = async function (context: Context, eventGridEvent: any): Promise<void> { context.log(eventGridEvent); const to = eventGridEvent['data']['to']; const from = eventGridEvent['data']['from']; const message = eventGridEvent['data']['message']; }; export default eventGridTrigger;
Bu noktada, olaylar aracılığıyla SMS almayı başarıyla yönetmişsinizdir. Şimdi bu olayla ne yapabileceğinize ilişkin olasılıklar, yalnızca günlüğe kaydetmekten yanıt vermeye kadar uzanıyor. Sonraki bölümde aldığımız SMS'e yanıt vermeye odaklanacağız. SMS'ye yanıt vermek istemiyorsanız işlevi yerel olarak çalıştırmayla ilgili sonraki bölüme geçin.
SMS'ye yanıt verme
- Gelen SMS'leri yanıtlamak için SMS göndermek için Azure İletişim Hizmeti SMS özelliklerini kullanırız.
SmsClientöğesini çağırarak başlıyor ve kaynağımız içinconnection stringile başlatıyoruz. Bağlantı dizesini doğrudan koda yapıştırabilir veya azure İşlevi dizininizdeki local.settings.json dosyanızın içine değerlerin altına yerleştirebilirsiniz.
{
"IsEncrypted": false,
"Values": {
"FUNCTIONS_WORKER_RUNTIME": "node",
"ACS_CONNECTION_STRING": "<<CONNECTION STRING>>"
}
}
Ardından, aldığımız olaydan elde edilen
tovefromdeğerlerine göre gönderilecek bir SMS oluştururuz.import { AzureFunction, Context } from "@azure/functions" import { SmsClient } from "@azure/communication-sms"; const connectionString = process.env.ACS_CONNECTION_STRING; //Replace with your connection string const eventGridTrigger: AzureFunction = async function (context: Context, eventGridEvent: any): Promise<void> { context.log(eventGridEvent); const to = eventGridEvent['data']['to']; const from = eventGridEvent['data']['from']; const message = eventGridEvent['data']['message']; const smsClient = new SmsClient(connectionString); const sendResults = await smsClient.send({ from: to, to: [from], message: "Message received successfully. Will respond shortly." }); }; export default eventGridTrigger;
Buradan, olasılıklar sonsuzdur. Bir iletiyi önceden yazılmış bir yanıtla yanıtlayabilir, bot ekleyebilir veya son adımda kodu uyarlayarak yanıtları depolayabilirsiniz.
Yerel olarak çalıştır
İşlevi yerel olarak çalıştırmak için Visual Studio Code'a basın F5 . Yerel olarak çalışan Azure İşlevimizi Azure Event Grid ile bağlamak için ngrok kullanıyoruz.
İşlev çalıştıktan sonra
ngroköğesini yapılandırın. Ortamınız için ngrok indirmeniz gerekir.ngrok http 7071ngrokİşlevinizin çalıştığı yerde sağlanan bağlantıyı kopyalayın.Azure İletişim Hizmetleri kaynağınızdaki Event Grid aracılığıyla SMS olaylarını yapılandırın. Bunu Azure CLI kullanarak yaparız. Azure portalda bulunan Azure İletişim Hizmetleri kaynağınızın kaynak kimliğine ihtiyacınız vardır. Kaynak kimliği şuna benzer: /subscriptions/
<<AZURE SUBSCRIPTION ID>>/resourceGroups/<<RESOURCE GROUP NAME>>/providers/Microsoft.Communication/CommunicationServices/<<RESOURCE NAME>>az eventgrid event-subscription create --name "<<EVENT_SUBSCRIPTION_NAME>>" --endpoint-type webhook --endpoint "<<NGROK URL>> " --source-resource-id "<<RESOURCE_ID>>" --included-event-types Microsoft.Communication.SMSReceivedArtık her şey bağlandığı için Azure İletişim Hizmetleri kaynağınızdaki telefon numarasına SMS göndererek akışı test edin. terminalinizde işlevin çalıştığı konsol günlüklerini görmeniz gerekir. Eğer SMS'ye yanıt vermek için kodu eklediyseniz, bu kısa mesajın size geri gönderildiğini görmelisiniz.
Azure’a dağıtın
Azure İşlevi'ni Azure'a dağıtmak için bu yönergeleri izlemeniz gerekir. Dağıtıldıktan sonra Azure İletişim Hizmetleri kaynağı için Event Grid'i yapılandıracağız. Dağıtılan Azure İşlevinin URL'si ile (işlevin altındaki Azure portalında bulunan URL) aşağıdaki komutu çalıştırıyoruz:
az eventgrid event-subscription update --name "<<EVENT_SUBSCRIPTION_NAME>>" --endpoint-type azurefunction --endpoint "<<AZ FUNCTION URL>> " --source-resource-id "<<RESOURCE_ID>>"
Yerel test için oluşturduğumuz olay aboneliğini güncelleştirdiğimizden, daha önce kullandığınız olay aboneliği adını kullandığınızdan emin olun.
Azure İletişim Hizmetleri kaynağınızda ayarladığınız telefon numarasına SMS göndererek test edebilirsiniz.
Logic Apps ve Power Automate, Event Grid aracılığıyla Azure İletişim Hizmetleri tarafından oluşturulan olayların işlenmesine yardımcı olmak için kullanıma açık bağlayıcılar sağlar. Hem Logic Apps hem de Power Automate aynı bağlayıcı kümesini sağlar. Neleri tercih ettiğinize karar vermek size kalmış, kararınızı bildirmek için hizmetler arasındaki farkları okuyun.
Event Grid bağlayıcısı ile olayları işleme
Tercih ettiğiniz ortamda yeni bir akış oluşturarak başlayın. Başlamak için tetikleyiciyi
When a resource event occursseçin.
Artık bağlayıcıyı yapılandırabilirsiniz. Kullanmak istediğiniz bir abonelik sağlamanız gerekir. (Azure İletişim Hizmetleri kaynağınızın bulunduğu abonelikle aynı abonelik olmalıdır). Kaynak türünü belirtin. Bu durumda
Microsoft.Communication.CommunicationServicesseçin. Ardından, bağlanmak istediğiniz Azure İletişim Hizmetleri kaynağı için bir kaynak adı sağlamanız gerekir. Son olarak, almak istediğimiz olay türlerini seçmemiz gerekir. Bu örnekte:Microsoft.Communication.SMSReceived.
Bağlayıcı, sizin adınıza olay aboneliğini otomatik olarak ayarlar ve almak istediği olayları yapılandırır.
Daha sonra hayatımızı kolaylaştırmak için Event Grid bağlayıcısından gelen yanıtı işlemek üzere bir
Parse JSON connectorekleyin. Bağlayıcıyı, Event Grid bağlayıcısından alınanBodynesnesini beklenen olay şemamıza eşleyecek şekilde yapılandırın.Örnek şema (görmek için açık)
{ "properties": { "data": { "properties": { "From": { "type": "string" }, "Message": { "type": "string" }, "MessageId": { "type": "string" }, "ReceivedTimestamp": { "type": "string" }, "To": { "type": "string" } }, "type": "object" }, "dataVersion": { "type": "string" }, "eventTime": { "type": "string" }, "eventType": { "type": "string" }, "id": { "type": "string" }, "metadataVersion": { "type": "string" }, "subject": { "type": "string" }, "topic": { "type": "string" } }, "type": "object" }
Bu noktada SMS olayını başarıyla işlemişsinizdir. Olayın günlüğe kaydedilmesinden SMS'e yanıt vermeye kadar birçok farklı seçeneğiniz vardır. Bu belge bağlamında, alınan SMS iletisine yanıt veririz.
SMS'ye yanıt verme
Sms bağlayıcısını akışımıza ekleyerek ve Azure İletişim Hizmetleri kaynağımız için bilgilerle yapılandırarak başlayın. Bağlayıcının kaynağa erişmesine ve bizim tarafımızdan SMS göndermesine olanak tanır. Kaynağınız için
connection stringöğesine ihtiyacınız vardır.
Ardından bağlayıcıyı gönderen ve alıcı bilgileriyle yapılandıracağız. Aldığımız olaydaki bilgileri bunları doldurmak için kullanırız. Özgün gönderene SMS geri göndermek için
tovefromnumaralarını değiştirin. Son olarak bir ileti ekleyin.
Artık akışı kaydedebilir ve Azure İletişim Hizmetleri kaynağınızla ilişkili telefon numarasına SMS göndererek test edebilirsiniz. Bir kısa mesaj almayı beklemelisiniz.
Buradan, olasılıklar sonsuzdur. İletiyi önceden yazılmış bir yanıtla yanıtlayabilir, bot ekleyebilir, yanıtı depolayabilir veya iş akışı otomasyonu ekleyebilirsiniz.
Kaynakları temizle
Eğer bir İletişim Hizmetleri aboneliğini temizlemek ve kaldırmak istiyorsanız, kaynağı veya kaynak grubunu silebilirsiniz. Kaynak grubunu silmek, onunla ilişkili olan diğer tüm kaynakları da siler. Kaynakları temizleme hakkında daha fazla bilgi edinin.
Ücretsiz doğrulama
Yeni bir ücretsiz numaranız varsa ve kanada telefon numaralarına yüksek miktarda SMS mesajı göndermek veya SMS mesajları göndermek istiyorsanız ücretsiz numaranızı nasıl doğrulayacağınızı öğrenmek için SMS SSS > Ücretsiz doğrulama gönderme bölümüne bakın.