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 Giriş olarak Azure Blob depolama ile bir Python işlevini yapılandırmayı öğreneceksiniz:
- Python işlev projesi oluşturmak için Visual Studio Code'u kullanın.
- Depolama blobu giriş işlevi bağlaması eklemek için kodları değiştirin.
- İşlevi yerel olarak çalıştırmak için Visual Studio Code'u kullanın.
- Azure İşlevi ile Hizmet Bağlayıcısı ile Depolama Blobu 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 Blobu |
| İşlev Bağlama | HTTP tetikleyicisi, Giriş Olarak Depolama Blobu |
| Yerel Proje Kimlik Doğrulama Türü | Bağlantı Dizesi |
| Bulut İşlevi Kimlik Doğrulama Türü | Sistem Tarafından Atanan Yönetilen Kimlik |
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 blobu. Azure Depolama hesabınız yoksa bir hesap oluşturun.
- Bu kılavuzda İşlevler geliştirici kılavuzunda sunulan 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 |
HTTP trigger öğesini seçin. |
| İşlev adı belirtin |
BlobStorageInputFunc 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.
Blob Depolama giriş 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 | in |
Bağlama bir giriş bağlamasıdır. |
| Yönü olan bağlamayı seçin... | Azure Blob Storage |
Bağlama bir Azure Depolama blob bağlamasıdır. |
| Kodunuzda bu bağlamayı tanımlamak için kullanılan ad | inputBlob |
Kodunuzda başvuruda bulunılan bağlama parametresini tanımlayan ad. |
| Depolama hesabınızda blob'un okunacağı yol | testcontainer/test.txt |
İşlevinizin giriş olarak okuduğu blob yolu. dosya içeriği olarak ile adlı test.txtbir Hello, World! dosya hazırlayın. adlı testcontainer bir kapsayıcı oluşturun ve dosyayı kapsayıcıya yükleyin. |
| "local.setting.json" ayarı seçin | Create new local app settings |
İşlevinizin giriş olarak okuduğu 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
-
BlobStorageInputFunc/function.jsonDosyasını açın, vetype: blobiledirection: inyeni 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 BlobStorageInputFunc/__init__.py bağlamayı kullanacak şekilde güncelleştirin.
import logging
import azure.functions as func
def main(req: func.HttpRequest, inputBlob: bytes) -> func.HttpResponse:
logging.info('Python HTTP trigger function processed a request.')
return func.HttpResponse('The triggered function executed successfully. And read blob content: {}'.format(inputBlob))
İşlevi yerel olarak çalıştırma
İşlevi yerel olarak çalıştırmak ve blob girişini doğrulamak için öğreticiyi izleyin.
- Depolama'ya bağlanmanız istenirse Azure İşlevi kaynağını oluştururken kullandığınız depolama hesabını seçin. Azure İşlevi çalışma zamanının iç kullanımına yöneliktir ve giriş için kullandığınız çalışma zamanıyla aynı olması gerekmez.
- İş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 blobu okuyabildiğini doğrulamak için Visual Studio Code
Execute Function Now...işleve sağ tıklayın ve işlev yanıtını denetleyin. Yanıt iletisi blob dosyanızdaki içeriği içermelidir.
Service Connector kullanarak bağlantı oluşturma
Projeyi çalıştırıp işlevi yerel olarak doğruladınız ve yerel projeniz bir bağlantı dizesi kullanarak depolama blobunuza bağlanıyor.
Şimdi Azure İşlevi ile Azure Blob Depolama arasındaki bağlantıyı yapılandırmayı öğreneceksiniz. Böylece, işleviniz buluta dağıtıldıktan sonra blobu okuyabilir. Bulut ortamında, sistem tarafından atanan yönetilen kimlik kullanılarak kimlik doğrulamasının nasıl yapılacağını gösteririz.
-
function.jsonDosyayı yerel projenizde açın, içindeki özelliğininconnectionbindingsdeğerini olarakMyBlobInputConnectiondeğ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-blob --source-id "<your-function-resource-id>" --target-id "<your-storage-blob-resource-id>" --system-identity --customized-keys AZURE_STORAGEBLOB_RESOURCEENDPOINT=MyBlobInputConnection__serviceUri
-
--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}/blobServices/default
Sistem tarafından atanan yönetilen kimlikle Hizmet Bağlayıcısı'nı kullanarak Azure İşlevi ile Azure Blob Depolama arasında bir bağlantı oluşturdunuz.
Hizmet Bağlayıcısı, işlevin depolamaya bağlanmak için işlev bağlama çalışma zamanı tarafından kullanılan uygulama ayarlarında bir MyBlobInputConnection__serviceUri değişken yapılandırdı, böylece işlev blob depolamadan verileri okuyabilir. 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 blobu giriş bağlamasının çalıştığını doğrulayabilirsiniz.
- İşlevinizi Azure'a dağıtmak için öğreticiyi izleyin.
- İşlevin blobu okuyabildiğ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 blob dosyanızdaki içeriği içermelidir.
Sorun giderme
gibi No such host is known (<account-name>.blob.core.windows.net:443)depolama ana bilgisayarıyla ilgili hatalar varsa, Azure Depolama'ya bağlanmak için kullandığınız bağlantı dizesi blob uç noktasını içerip içermediğini denetlemeniz gerekir. Yoksa Azure portalında Azure Depolama'ya gidin, dikey penceredeki Access keys bağlantı dizesi kopyalayın ve değerleri değiştirin.
Projeyi yerel olarak başlattığınızda hata oluşursa dosyayı denetleyin local.settings.json .
İşlevinizi buluta dağıttığınızda hata oluşursa (bu durumda, İşlev dağıtımı genellikle üzerinde Syncing triggers başarısız olur), iş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.