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.
Bu öğreticide, aşağıdaki görevleri tamamlayarak Bir Python işlevini Azure Tablo Depolama'yı çıkış bağlaması olarak kullanacak şekilde yapılandırmayı öğreneceksiniz.
- Python işlev projesi oluşturmak için Visual Studio Code'u kullanın.
- Depolama Tablosu çıkış işlevi bağlaması ekleyin.
- İşlevi yerel olarak çalıştırmak için Visual Studio Code'u kullanın.
- Azure İşlevi ile Hizmet Bağlayıcısı ile Depolama Tablosu 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 Tablosu |
| İşlev Bağlama | HTTP tetikleyicisi, Çıktı Olarak Depolama Tablosu |
| 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
- 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 Tablosu. Depolama hesabınız yoksa bir tane oluşturun.
- Kılavuz, İşlevler geliştirici kılavuzunda sunulan kavramları ve Azure İşlevleri'daki hizmetlere nasıl bağlanabileceğinizi bildiğinizi varsayar.
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 |
HTTP trigger öğesini seçin. |
| İşlev adı belirtin |
TableStorageOutputFunc girin. |
| Yetkilendirme düzeyi | herkesin işlev uç noktanızı çağırmasına olanak tanıyan öğesini seçin Anonymous. |
HTTP tetikleyicisi olan bir Python işlev projesi oluşturdunuz.
Depolama tablosu çıkış bağlaması ekleme
Bağlama öznitelikleri, belirli bir işlev için function.json dosyasında tanımlanır. Bağlama oluşturmak için işlev klasörünüzdeki dosyaya sağ tıklayın (macOS'a Ctrl tuşunu basılı tutarak function.json tıklayın) ve Bağlama ekle... öğesini seçin. Yeni bağlama için aşağıdaki bağlama özelliklerini tanımlamak için istemleri izleyin:
| İstem | Value | Açıklama |
|---|---|---|
| Bağlama yönünü seçin | out |
Bağlama bir çıkış bağlamasıdır. |
| Yönü olan bağlamayı seçin... | Azure Table Storage |
Bağlama bir Azure Depolama tablo bağlamasıdır. |
| Kodunuzda bu bağlamayı tanımlamak için kullanılan ad | outMessage |
Kodunuzda başvuruda bulunılan bağlama parametresini tanımlayan ad. |
| Verilerin yazılacağı depolama hesabında tablo adı | testTable |
İşlevinizin çıkış olarak yazdığı tablo adı. Yoksa depolama hesabınızda adlı testTable bir tablo oluşturun. |
| "local.setting.json" ayarı seçin | Create new local app settings |
İşlevinizin çıkış olarak yazdığı Depolama Hesabını seçin. Visual Studio Code, yerel proje bağlantısı için bağlantı dizesi alır. |
Bağlamanın başarıyla eklendiğini denetlemek için:
-
TableStorageOutputFunc/function.jsonDosyasını açın, vetype: tableiledirection: outyeni bir bağlamanın bu dosyaya eklenip eklendiğini denetleyin. -
local.settings.jsonDosyayı açın, depolama hesabınızın bağlantı dizesi içeren yeni bir anahtar-değer çiftinin<your-storage-account-name>_STORAGE: <your-storage-account-connection-string>bu dosyaya eklenip eklendiğini denetleyin.
Bağlama eklendikten sonra işlevini buradaki Python dosyasıyla değiştirerek TableStorageOutputFunc/__init__.py bağlamayı kullanacak şekilde güncelleştirin.
import logging
import uuid
import json
import azure.functions as func
def main(req: func.HttpRequest, outMessage: func.Out[str]) -> func.HttpResponse:
rowKey = str(uuid.uuid4())
data = {
"Name": "Output binding message",
"PartitionKey": "message",
"RowKey": rowKey
}
outMessage.set(json.dumps(data))
return func.HttpResponse(f"Message created with the rowKey: {rowKey}")
İşlevi yerel olarak çalıştırma
İşlevi yerel olarak çalıştırmak ve tablo çıkışını doğrulamak için öğreticiyi izleyin.
- Bir depolama hesabına bağlanmanız istenirse Azure İşlevi kaynağını oluştururken seçtiğiniz Depolama Hesabını seçin. Bu değer Azure İşlevi çalışma zamanı için kullanılır. Çıkış için kullandığınız depolama hesabının aynı olması şart değildir.
- İş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>. - İşlevin tablonuza yazabildiğini doğrulamak için Visual Studio Code
Execute Function Now...görünümünde işleve sağ tıklayın ve işlev yanıtını denetleyin. Yanıt iletisi, tabloyarowKeyyazılanı içermelidir.
Service Connector kullanarak bağlantı oluşturma
Son adımda işlev projesini yerel olarak doğruladınız. Şimdi, işlevinizin buluta dağıtıldıktan sonra depolama blobunuza yazabilmesi için bulutta Azure İşlevi ile Azure Depolama Tablosu arasındaki bağlantıyı yapılandırmayı öğreneceksiniz.
-
function.jsonDosyayı yerel projenizde açın, içindeki özelliğininconnectionbindingsdeğerini olarakAZURE_STORAGETABLE_CONNECTIONSTRINGdeğiştirin. - Azure İşleviniz ile Azure Depolama alanı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-table --source-id "<your-function-resource-id>" --target-id "<your-storage-table-resource-id>" --secret
-
--source-idbiçim:/subscriptions/{subscription}/resourceGroups/{source_resource_group}/providers/Microsoft.Web/sites/{site} -
--target-idbiçim:/subscriptions/{subscription}/resourceGroups/{target_resource_group}/providers/Microsoft.Storage/storageAccounts/{account}/tableServices/default
İşlevin Uygulama Ayarları'nda bir değişken yapılandıran bir AZURE_STORAGETABLE_CONNECTIONSTRING Hizmet Bağlayıcısı kaynağı oluşturdunuz. Bu uygulama ayarı, işlevin depolama tablosuna yazabilmesi için depolamaya bağlanmak için işlev bağlaması tarafından kullanılır. Service Connector'ın hizmetlere bağlanmaya Azure İşlevleri nasıl yardımcı olduğu hakkında daha fazla bilgi edinebilirsiniz.
İşlevinizi Azure'a dağıtma
Artık işlevinizi Azure'a dağıtabilir ve depolama tablosu çıkış bağlamasının çalıştığını doğrulayabilirsiniz.
- İşlevinizi Azure'a dağıtmak için bu Azure İşlevleri öğreticisini izleyin.
- İşlevin tabloya yazabildiğini doğrulamak için Visual Studio Code
Execute Function Now...görünümünde işleve sağ tıklayın ve işlev yanıtını denetleyin. Yanıt iletisi, tablonuzarowKeyyeni yazdığınız işlevi içermelidir.
Sorun giderme
gibi No such host is known (<account-name>.table.core.windows.net:443)depolama konağıyla ilgili hatalar varsa, Azure Depolama'ya bağlanmak için kullandığınız bağlantı dizesi tablo uç noktasını içerip içermediğini denetlemeniz gerekir. Yoksa Azure Depolama portalına 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 gerçekleşirse (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.
- 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
Service Connector kavramları ve diğer bulut hizmetlerine bağlanmaya Azure İşlevleri nasıl yardımcı olduğu hakkında daha fazla bilgi edinmek için aşağıdaki makaleleri okuyun.