Öğretici: Tetikleyici olarak Azure Kuyruk Depolama ile Python işlevi
Bu öğreticide, aşağıdaki görevleri tamamlayarak tetikleyici olarak Depolama Kuyruğu ile bir Python işlevini yapılandırmayı öğreneceksiniz.
- Python işlev projesi oluşturmak için Visual Studio Code'u kullanın.
- İşlevi yerel olarak çalıştırmak için Visual Studio Code'u kullanın.
- Azure İşlevi ile Service Bağlan or ile Depolama Kuyruğu arasında bağlantı oluşturmak için Azure CLI'yi kullanın.
- İşlevinizi dağıtmak için Visual Studio'yu kullanın.
Bu öğreticide işlev projesi bileşenlerine genel bakış:
Proje Bileşeni | Seçim / Çözüm |
---|---|
Kaynak Hizmet | Azure İşlevi |
Hedef Hizmet | Azure Depolama Kuyruğu |
İşlev Bağlama | Sırayı Tetikleyici Olarak Depolama |
Yerel Proje Kimlik Doğrulama Türü | Bağlantı Dizesi |
Bulut İşlevi Kimlik Doğrulama Türü | Bağlantı Dizesi |
Önkoşullar
- Desteklenen platformlardan birinde Visual Studio Code’u yükleyin.
- Azure CLI. Azure Cloud Shell'de kullanabilir veya yerel olarak yükleyebilirsiniz.
- Azure Depolama Hesabı ve depolama kuyruğu. Azure Depolama'niz yoksa bir tane oluşturun.
- Bu kılavuzda, Azure İşlevleri geliştirici kılavuzunda sunulan temel kavramları ve İşlevler'deki hizmetlere nasıl bağlanabileceğinizi bildiğiniz varsayılır.
Python işlev projesi oluşturma
Yerel bir Azure İşlevleri projesi oluşturmak için öğreticiyi izleyin ve istemlerde aşağıdaki bilgileri sağlayın:
İstem | Seçim |
---|---|
Dil seçin | Python öğesini seçin. (v1 programlama dili modeli) |
Sanal ortam oluşturmak için Python yorumlayıcısını seçme | Tercih ettiğiniz Python yorumlayıcıyı seçin. Bir seçenek gösterilmiyorsa Python ikili dosyanızın tam yolunu yazın. |
Projenizin ilk işlevi için bir şablon seçin | Azure Queue Storage trigger öğesini seçin. |
İşlev adı belirtin | QueueStorageTriggerFunc girin. |
"local.settings.json" dosyasından ayarı seçin | Depolama Hesabınızı seçmenize ve tetikleyici olarak çalışan kuyruk adınızı sağlamanıza olanak tanıyan öğesini seçinCreate new local app settings . |
Tetikleyici olarak Azure Depolama Kuyruğu ile bir Python işlev projesi oluşturdunuz. Yerel proje, dosyaya kaydedilen local.settings.json
bağlantı dizesi kullanarak Azure Depolama bağlanır. Son olarak, işlevin dosyasındaki işlev, main
dosyada __init__.py
tanımlanan function.json
İşlev Bağlaması yardımıyla bağlantı dizesi kullanabilir.
İşlevi yerel olarak çalıştırma
İşlevi yerel olarak çalıştırmak ve tetikleyiciyi doğrulamak için öğreticiyi izleyin.
- Depolamaya bağlanmanız istenirse Azure İşlevi kaynağını oluştururken seçtiğiniz depolama hesabını seçin. Bu değer Azure İşlevi'nin çalışma zamanı için kullanılır ve tetikleyici için kullandığınız depolama hesabıyla aynı olmayabilir.
- İşlevi yerel olarak başlatmak için F5 tuşuna basın
<kbd>
veya sol taraftaki Etkinlik çubuğunda Çalıştır ve Hata Ayıkla simgesini seçin.</kbd>
- Tetikleyicinin düzgün çalıştığını doğrulamak için işlevi yerel olarak çalışır durumda tutun ve Azure portalında Depolama Kuyruğu dikey penceresini açın, İleti ekle'yi seçin ve bir test iletisi sağlayın. İşlevin tetiklendiğini ve Visual Studio Code terminalinizde kuyruk öğesi olarak işlendiğini görmeniz gerekir.
Service Bağlan or kullanarak bağlantı oluşturma
Son adımda işlev projesini yerel olarak doğruladınız. Şimdi buluta dağıtıldıktan sonra işlevinizin depolama kuyruğu tarafından tetiklenebilmesi için Bulutta Azure İşlevi ile Azure Depolama Kuyruğu arasındaki bağlantıyı yapılandırmayı öğreneceksiniz.
function.json
Dosyayı yerel projenizde açın, içindeki özelliğininconnection
bindings
değerini olarakAZURE_STORAGEQUEUE_CONNECTIONSTRING
değiştirin.- Azure İşleviniz ile Azure depolama hesabınız arasında bağlantı oluşturmak için aşağıdaki Azure CLI komutunu çalıştırın.
az functionapp connection create storage-queue --source-id "<your-function-resource-id>" --target-id "<your-storage-queue-resource-id>" --secret
--source-id
Biçim:/subscriptions/{subscription}/resourceG roups/{source_resource_group}/providers/Microsoft.Web/sites/{site}
--target-id
Biçim:/subscriptions/{subscription}/resourceGroups/{target_resource_group}/providers/Microsoft.Storage/storageAccounts/{account}/queueServices/default
Bu adım, işlevin Uygulama Ayarlar bir değişken yapılandıran bir AZURE_STORAGEQUEUE_CONNECTIONSTRING
Service Bağlan or kaynağı oluşturur. İşlev bağlama çalışma zamanı depolamaya bağlanmak için bunu kullanır, böylece işlev depolama kuyruğundan tetikleyicileri kabul edebilir. Daha fazla bilgi için Bkz. Hizmet Bağlan veya hizmetlere bağlanmaya Azure İşlevleri nasıl yardımcı olur?
İşlevinizi Azure'a dağıtma
Artık işlevinizi Azure'a dağıtabilir ve depolama kuyruğu tetikleyicisinin çalıştığını doğrulayabilirsiniz.
- İşlevinizi Azure'a dağıtmak için bu Azure İşlevleri öğreticisini izleyin.
- Azure portalında Depolama Kuyruğu dikey penceresini açın, İleti ekle'yi seçin ve bir test iletisi sağlayın. İşlevin tetiklendiğini ve işlev günlüklerinizde kuyruk öğesi olarak işlendiğini görmeniz gerekir.
Sorun giderme
depolama konağıyla ilgili gibi No such host is known (<acount-name>.queue.core.windows.net:443)
hatalar varsa, Azure Depolama bağlanmak için kullandığınız bağlantı dizesi kuyruk uç noktasını içerip içermediğini denetleyin. Yoksa, Azure portalında Azure Depolama gidin, dikey penceredeki Access keys
bağlantı dizesi kopyalayın ve değerleri değiştirin.
Projeyi yerel olarak başlattığınızda bu hata oluşursa dosyayı denetleyin local.settings.json
.
İşlevinizi buluta dağıttığınızda bu hata oluşursa (bu durumda İşlev dağıtımı genellikle üzerinde Syncing triggers
başarısız olur), İşlevinizin Uygulama Ayarlar denetleyin.
Kaynakları temizleme
Bu projeyi kullanmaya devam etmeyecekseniz, daha önce oluşturduğunuz İşlev Uygulaması kaynağını silin.
- Azure portalında İşlev Uygulaması kaynağını açın ve Sil'i seçin.
- Uygulama adını girin ve onaylamak için Sil'i seçin.
Sonraki adımlar
Hizmet Bağlan veya kavramlar hakkında daha fazla bilgi edinmek ve hizmetlere bağlanmaya Azure İşlevleri nasıl yardımcı olduğu hakkında daha fazla bilgi edinmek için aşağıdaki makaleleri okuyun.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin