Aracılığıyla paylaş


Öğ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 Hizmet Bağlayıcısı 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 Tetikleyici Olarak Depolama Kuyruğu
Yerel Proje Kimlik Doğrulama Türü Bağlantı Dizesi
Bulut İşlevi Kimlik Doğrulama Türü Bağlantı Dizesi

Uyarı

Microsoft, kullanılabilir en güvenli kimlik doğrulama akışını kullanmanızı önerir. Bu yordamda açıklanan kimlik doğrulama akışı, uygulamada çok yüksek düzeyde güven gerektirir ve diğer akışlarda mevcut olmayan riskleri taşır. Bu akışı yalnızca yönetilen kimlikler gibi diğer daha güvenli akışlar uygun olmadığında kullanmalısınız.

Önkoşullar

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" 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çin Create new local app settings.

Tetikleyici olarak Azure Depolama Kuyruğu ile bir Python işlev projesi oluşturdunuz. Yerel proje, dosyaya kaydedilen bağlantı dizesi kullanarak Azure Depolama'ya local.settings.json 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.

  1. 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.
  2. İş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</kbd>.
  3. 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 bölmesini 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 Connector 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.

  1. function.json Dosyayı yerel projenizde açın, içindeki özelliğinin connectionbindings değerini olarak AZURE_STORAGEQUEUE_CONNECTIONSTRINGdeğiştirin.
  2. 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}/resourceGroups/{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ı'nda bir değişken yapılandıran bir AZURE_STORAGEQUEUE_CONNECTIONSTRING Hizmet Bağlayıcısı 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 Hizmet Bağlayıcısı'nın hizmetlere bağlanmaya Azure İşlevleri nasıl yardımcı olduğunu öğrenin.

İşlevinizi Azure'a dağıtma

Artık işlevinizi Azure'a dağıtabilir ve depolama kuyruğu tetikleyicisinin çalıştığını doğrulayabilirsiniz.

  1. İşlevinizi Azure'a dağıtmak için bu Azure İşlevleri öğreticisini izleyin.
  2. Azure portalında Depolama Kuyruğu bölmesini 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 (<account-name>.queue.core.windows.net:443)hatalar varsa, Azure Depolama'ya 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'ya gidin, bölmeden 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ını denetleyin.

Kaynakları temizleme

Bu projeyi kullanmaya devam etmeyecekseniz, daha önce oluşturduğunuz İşlev Uygulaması kaynağını silin.

  1. Azure portalında İşlev Uygulaması kaynağını açın ve Sil'i seçin.
  2. Uygulama adını girin ve onaylamak için Sil'i seçin.

Sonraki adımlar

Service Connector kavramları ve Azure İşlevleri hizmetlere bağlanmaya nasıl yardımcı olduğu hakkında daha fazla bilgi edinmek için aşağıdaki makaleleri okuyun.