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, bir görüntüyü Azure Blob Storage'a nasıl yükleyeceğinizi ve ardından Azure Functions ve Computer Vision kullanarak nasıl işleyeceğinizi öğreniyorsunuz. Ayrıca bu işlemin bir parçası olarak Azure İşlev tetikleyicilerini ve bağlamalarını nasıl uygulayacağınızı da öğrenirsiniz. Bu hizmetler birlikte, metin içeren karşıya yüklenen bir görüntüyü analiz eder, içindeki metni ayıklar ve daha sonra analiz veya başka amaçlarla metni bir veritabanı satırında depolar.
Azure Blob Storage, Microsoft'un bulut için yüksek düzeyde ölçeklenebilir nesne depolama çözümüdür. Blob Storage görüntüleri ve belgeleri depolamak, medya dosyalarını akışa almak, yedekleme ve arşiv verilerini yönetmek ve çok daha fazlası için tasarlanmıştır. overview sayfasında Blob Storage hakkında daha fazla bilgi edinebilirsiniz.
Azure Functions, küçük kod bloklarını yüksek oranda ölçeklenebilir, sunucusuz, olay odaklı işlevler olarak yazmanızı ve çalıştırmanızı sağlayan sunucusuz bir bilgisayar çözümüdür. overview sayfasında Azure Functions hakkında daha fazla bilgi edinebilirsiniz.
Bu eğitimde şunları öğreniyorsunuz:
- Görüntüleri ve dosyaları Blob Storage'a yükleme
- Azure Functions kullanarak Blob Storage'a yüklenen verileri işlemek için bir olay tetikleyicisi kullanma
- Bir görüntüyü analiz etmek için Döküm Araçları'nı kullanma
- Azure İşlev çıkış bağlamalarını kullanarak Tablo Depolama'ya veri yazma
Prerequisites
- Etkin aboneliği olan bir Azure hesabı. Ücretsiz bir hesap oluşturun.
- Visual Studio 2022
Depolama hesabını ve kapsayıcıyı oluşturma
İlk adım, karşıya yüklenen blob verilerini tutacak depolama hesabı oluşturmaktır. Bu senaryoda metin içeren görüntüler kullanılır. Depolama hesabı birkaç farklı hizmet sunar, ancak bu öğreticide Blob Storage ve Tablo Depolama kullanılır.
Azure portalında oturum açın.
Portalın üst kısmındaki arama çubuğunda Depolama araması yapın ve Depolama hesapları etiketli sonucu seçin.
Depolama hesapları sayfasında sol üstteki + Oluştur'u seçin.
Depolama hesabı oluştur sayfasında aşağıdaki değerleri girin:
- Abonelik: İstediğiniz aboneliği seçin.
-
Kaynak Grubu: Yeni oluştur'u seçin ve adını
msdocs-storage-functiongirin ve ardından Tamam'ı seçin. -
Depolama hesabı adı: değerini
msdocsstoragefunctiongirin. Depolama hesabı adı Azure benzersiz olmalıdır, bu nedenle adın arkasınamsdocsstoragefunction123gibi sayılar eklemeniz gerekebilir. - Bölge: Size en yakın bölgeyi seçin.
- Performans: Standart'ı seçin.
- Yedeklilik: Varsayılan değeri seçili bırakın.
Azure'da bir depolama hesabı oluşturmayı gösteren bir ekran görüntüsü.
Alttaki Review + Create öğesini seçin ve Azure girdiğiniz bilgileri doğrular. Ayarlar doğrulandıktan sonra Create öğesini seçin ve Azure depolama hesabını sağlamaya başlar ve bu işlem biraz zaman alabilir.
Kapsayıcı oluşturma
Depolama hesabı sağlandıktan sonra Kaynağa Git'i seçin. Sonraki adım, analiz için karşıya yüklenen görüntüleri tutmak üzere hesabın içinde bir depolama kapsayıcısı oluşturmaktır.
Gezinti panelinde Kapsayıcılar'ı seçin.
Kapsayıcılar sayfasında, üstteki + Kapsayıcı seçeneğini seçin. Slayt dışarısı panelinde bir Görüntü analizi adıgirin ve Genel erişim düzeyinin Blob (yalnızca bloblar için anonim okuma erişimi) olarak ayarlandığından emin olun. Ardından Oluştur'u seçin.
Yeni kapsayıcınızın kapsayıcı listesinde göründüğünü görmeniz gerekir.
Bağlantı dizesini al
Son adım, depolama hesabı için bağlantı dizesini almaktır.
Sol gezinti panelinde Erişim Tuşları'nı seçin.
Erişim Anahtarları sayfasında Anahtarları göster'i seçin. key1 bölümünün altındaki Bağlantı Dizesi değerini kopyalayın ve anahtarı daha sonra kullanmak üzere bir yere yapıştırın. Daha sonra kullanmak üzere depolama hesabı adını
msdocsstoragefunctionnot etmeyi unutmayın.
Azure İşlevimizi bu depolama hesabına bağlamamız gerektiğinde bu değerler gereklidir.
Computer Vision hizmetini oluşturma
Ardından, karşıya yüklenen dosyalarımızı işleyen Computer Vision hizmet hesabını oluşturun. Computer Vision, Döküm Araçları'nın bir parçasıdır ve görüntülerden veri ayıklamaya yönelik çeşitli özellikler sunar. Computer Vision hakkında daha fazla bilgiyi overview sayfası üzerinde edinebilirsiniz.
Portalın üst kısmındaki arama çubuğunda Bilgisayar'ı arayın ve Bilgisayar görüsü etiketli sonucu seçin.
Görüntü işleme sayfasında + Oluştur'u seçin.
Create Computer Vision sayfasında aşağıdaki değerleri girin:
- Abonelik: İstediğiniz Aboneliği seçin.
-
Kaynak Grubu: Daha önce oluşturduğunuz kaynak grubunu kullanın
msdocs-storage-function. - Bölge: Size en yakın bölgeyi seçin.
-
Ad: adını
msdocscomputervisiongirin. - Fiyatlandırma Katmanı: Varsa Ücretsiz'i seçin, aksi takdirde Standart S1'i seçin.
- Koşulları kabul ediyorsanız Sorumlu Yapay Zeka Bildirimi kutusunu işaretleyin
En alttaki Gözden Geçir + Oluştur'u seçin. Azure girdiğiniz bilgilerin doğrulanması biraz zaman alır. Ayarlar doğrulandıktan sonra Create öğesini seçin ve Azure Computer Vision hizmetini sağlamaya başlar ve bu işlem biraz zaman alabilir.
İşlem tamamlandığında Kaynağa Git seçin.
Anahtarları alma
Ardından, Azure İşlev uygulamamızda kullanılacak Computer Vision hizmetinin gizli anahtar ve uç nokta URL'sini bulmamız gerekir.
Computer Vision genel bakış sayfasında Keys ve Endpoint'i seçin.
Anahtarlar ve EndPoint sayfasında Anahtar 1 değerini ve EndPoint değerlerini kopyalayın ve daha sonra kullanmak üzere bir yere yapıştırın.
Örnek projeyi indirme ve yapılandırma
Bu öğreticide kullanılan Azure İşlevinin kodu this GitHub deposunda bulunabilir. Aşağıdaki komutu kullanarak projeyi de kopyalayabilirsiniz:
git clone https://github.com/Azure-Samples/msdocs-storage-bind-function-service.git \
cd msdocs-storage-bind-function-service/dotnet
Örnek proje kodu aşağıdaki görevleri gerçekleştirir:
- Depolama hesabına ve Computer Vision hizmetine bağlanmak için ortam değişkenlerini alır
- Karşıya yüklenen dosyayı blob parametresi olarak kabul eder
- Computer Vision hizmetini kullanarak blobu analiz eder
- Çıkış bağlamalarını kullanarak çözümlenen görüntü metnini yeni bir tablo satırına gönderir
Projeyi indirip açtıktan sonra, aşağıda gösterilen ana Run yöntemde anlaşılması gereken birkaç temel kavram vardır. Azure işlevi, Run yöntem imzasının öznitelikleri kullanılarak uygulanan Tetikleyici ve Çıkış bağlamalarını kullanır.
Table özniteliği iki parametre kullanır. İlk parametre, işlev tarafından döndürülen ayrıştırılmış görüntü metin değerini yazmak için tablonun adını belirtir. İkinci Connection parametresi, Azure işlevimizin erişebilmesi için ortam değişkenlerinden bir Tablo Depolama bağlantı dizesi çeker.
BlobTrigger özniteliği, işlevimizi Blob Storage'daki karşıya yükleme olayına bağlamak için kullanılır ve blobu Run işlevine yükler. Blob tetikleyicisinin kendine ait iki parametresi vardır: biri karşıya yüklemeleri izlemek için blob kapsayıcısının adı, diğeri ise depolama hesabımızın bağlantı dizesi içindir.
// Azure Function name and output Binding to Table Storage
[FunctionName("ProcessImageUpload")]
[return: Table("ImageText", Connection = "StorageConnection")]
// Trigger binding runs when an image is uploaded to the blob container below
public async Task<ImageContent> Run([BlobTrigger("imageanalysis/{name}",
Connection = "StorageConnection")]Stream myBlob, string name, ILogger log)
{
// Get connection configurations
string subscriptionKey = Environment.GetEnvironmentVariable("ComputerVisionKey");
string endpoint = Environment.GetEnvironmentVariable("ComputerVisionEndpoint");
string imgUrl = $"https://{ Environment.GetEnvironmentVariable("StorageAccountName")}
.blob.core.windows.net/imageanalysis/{name}";
ComputerVisionClient client = new ComputerVisionClient(
new ApiKeyServiceClientCredentials(subscriptionKey)) { Endpoint = endpoint };
// Get the analyzed image contents
var textContext = await AnalyzeImageContent(client, imgUrl);
return new ImageContent {
PartitionKey = "Images",
RowKey = Guid.NewGuid().ToString(), Text = textContext
};
}
public class ImageContent
{
public string PartitionKey { get; set; }
public string RowKey { get; set; }
public string Text { get; set; }
}
Bu kod, depolama hesabı connection string ve Computer Vision anahtarı gibi ortam değişkenlerinden temel yapılandırma değerlerini de alır. Bu ortam değişkenlerini dağıtıldıktan sonra Azure İşlev ortamımıza ekleyeceğiz.
ProcessImage işlevi, adlı AnalyzeImageikinci bir yöntem de kullanır. Bu kod, Computer Vision hesabımızın URL Uç Noktasını ve Anahtarını kullanarak bu sunucuya görüntümüzü işleme isteğinde bulunur. İstek, yöntemdeki çıkış bağlaması kullanılarak Tablo Depolama'ya yazılan görüntüde Run bulunan metnin tümünü döndürür.
static async Task<string> ReadFileUrl(ComputerVisionClient client, string urlFile)
{
// Analyze the file using Computer Vision Client
var textHeaders = await client.ReadAsync(urlFile);
string operationLocation = textHeaders.OperationLocation;
Thread.Sleep(2000);
// Complete code omitted for brevity, view in sample project
return text.ToString();
}
Yerel olarak çalıştırılıyor
Projeyi yerel olarak çalıştırmak isterseniz, local.settings.json dosyasını kullanarak ortam değişkenlerini doldurabilirsiniz. Bu dosyanın içinde yer tutucu değerlerini, Azure kaynaklarını oluştururken daha önce kaydettiğiniz değerlerle doldurun.
Azure İşlev kodu yerel olarak çalıştırılsa da, herhangi bir yerel öykünücü kullanmak yerine Azure üzerindeki canlı hizmetlere bağlanır.
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "UseDevelopmentStorage=true",
"FUNCTIONS_WORKER_RUNTIME": "dotnet",
"StorageConnection": "your-storage-account-connection-string",
"StorageAccountName": "your-storage-account-name",
"ComputerVisionKey": "your-computer-vision-key",
"ComputerVisionEndPoint": "your-computer-vision-endpoint"
}
}
Kodu Azure Functions'a dağıtın
Artık Visual Studio kullanarak uygulamamızı Azure dağıtmaya hazırsınız. Ayrıca Azure Functions uygulamasını dağıtım işleminin bir parçası olarak Azure'da da oluşturabilirsiniz.
Başlamak için ProcessImage proje düğümünü sağ seçip Yayımla'yı seçin.
Publish iletişim kutusunda Azure'ı seçin ve İleri'i seçin.
Sonraki ekranda Azure İşlev Uygulaması (Windows) veya Azure İşlev Uygulaması (Linux)'i seçin ve ardından yeniden Next seçin.
İşlevler örneği adımında, dağıtmak istediğiniz aboneliği seçtiğinizden emin olun. Ardından, iletişim kutusunun sağ tarafındaki yeşil + simgeyi seçin.
Yeni bir iletişim kutusu açılır. Yeni İşlev Uygulamanız için aşağıdaki değerleri girin.
- Ad: msdocsprocessimage veya benzeri bir şey girin.
- Abonelik Adı: Kullanmak istediğiniz aboneliği seçin.
-
Kaynak Grubu: Daha önce oluşturduğunuz kaynak grubunu seçin
msdocs-storage-function. - Plan Türü: Tüketim'i seçin.
- Konum: Size en yakın bölgeyi seçin.
- Azure Storage: Daha önce oluşturduğunuz depolama hesabını seçin.
Bu değerlerin tümünü doldurduktan sonra Oluştur'u seçin. Visual Studio ve Azure, tamamlanması birkaç dakika süren istenen kaynakları sağlamaya başlar.
İşlem tamamlandıktan sonra, iletişim kutusu iş akışını kapatmak için Son'u seçin.
Azure İşlevini dağıtmanın son adımı, ekranın sağ üst kısmındaki Publish seçmektir. İşlevin yayımlanması da birkaç dakika sürebilir. İşlem tamamlandıktan sonra uygulamanız Azure üzerinde çalışır.
Hizmetleri bağlama
Azure İşlevi başarıyla dağıtıldı, ancak henüz depolama hesabımıza ve Computer Vision hizmetlerine bağlanamıyor. Doğru anahtarların ve bağlantı dizelerinin önce Azure Functions uygulamasının yapılandırma ayarlarına eklenmesi gerekir.
Azure portalının üst kısmında function araması yapın ve sonuçlardan Function Uygulaması seçin.
Function Uygulaması ekranında, Visual Studio'da oluşturduğunuz İşlev Uygulamasını seçin.
İşlev Uygulamasına genel bakış sayfasında, sol gezinti bölmesinde Yapılandırma'yı seçerek uygulamamız için çeşitli yapılandırma ayarlarını yönetebileceğimiz bir sayfa açın. Şimdilik Uygulama Ayarları bölümüyle ilgileniyoruz.
Sonraki adım, depolama hesabı adımız ve bağlantı dizesi, Computer Vision gizli anahtarı ve Computer Vision uç noktası için ayarlar eklemektir.
Uygulama ayarları sekmesinde + Yeni uygulama ayarı'nı seçin. Görüntülenen açılır öğeye aşağıdaki değerleri girin:
- Ad: ComputerVisionKey değerini girin.
- Value: Daha önce kaydettiğiniz Computer Vision anahtarı yapıştırın.
Bu ayarı uygulamanıza eklemek için Tamam'ı seçin.
Şimdi aşağıdaki değerleri kullanarak bu işlemi Computer Vision hizmetimizin uç noktası için yineleyelim:
- Ad: ComputerVisionEndpoint değerini girin.
- Değer: Daha önce kaydettiğiniz uç nokta URL'sini yapıştırın.
Aşağıdaki değerleri kullanarak depolama hesabı bağlantısı için bu adımı tekrarlayın:
- Ad: StorageConnection değerini girin.
- Value: Daha önce kaydettiğiniz connection string yapıştırın.
Son olarak, aşağıdaki değerleri kullanarak depolama hesabı adı için bu işlemi bir kez daha yineleyin:
- Ad: StorageAccountName değerini girin.
- Değer: Oluşturduğunuz depolama hesabının adını girin.
Bu uygulama ayarlarını ekledikten sonra yapılandırma sayfasının üst kısmındaki Kaydet'i seçtiğinizden emin olun. Kaydetme tamamlandığında, ayarların alındığından emin olmak için Yenile'ye de basabilirsiniz.
Azure işlevimizi farklı hizmetlere bağlamak için gerekli tüm ortam değişkenleri artık mevcuttur.
Blob Storage'a görüntü yükleme
Artık uygulamamızı test etmeye hazırsınız! Kapsayıcıya bir blob yükleyebilir ve ardından görüntüdeki metnin Tablo Depolama'ya kaydedildiğini doğrulayabilirsiniz.
İlk olarak, Azure portalının üst kısmında Storage araması yapın ve storage account öğesini seçin. Depolama hesabı sayfasında, daha önce oluşturduğunuz hesabı seçin.
Ardından, sol gezinti bölmesinde Kapsayıcılar'ı seçin ve daha önce oluşturduğunuz ImageAnalysis kapsayıcısına gidin. Buradan doğrudan tarayıcının içine bir test görüntüsü yükleyebilirsiniz.
İndirilebilir örnek projenin kökünde images klasörüne dahil edilen birkaç örnek görüntü bulabilir veya kendi resimlerinizden birini kullanabilirsiniz.
ImageAnalysis sayfasının üst kısmında Karşıya Yükle'yi seçin. Açılan açılır öğede klasör simgesini seçerek bir dosya tarayıcısı açın. Karşıya yüklemek istediğiniz görüntüyü seçin ve ardından Karşıya Yükle'yi seçin.
Dosya blob kapsayıcınızın içinde görünmelidir. Ardından, karşıya yüklemenin Azure İşlevini tetiklediğini ve görüntüdeki metnin çözümlenip Tablo Depolama'ya düzgün şekilde kaydedildiğini doğrulayabilirsiniz.
Sayfanın üst kısmındaki gezinti izlerini kullanarak depolama hesabınızda bir seviye yukarı çıkın. Sol gezinti bölmesinde Depolama tarayıcısı'nı bulup seçin ve ardından Tablolar'ı seçin.
ImageText tablosu artık kullanılabilir olmalıdır. İçindeki veri satırlarının önizlemesini görüntülemek için tabloda öğesini seçin. Yüklediğimiz işlenmiş görüntü metni için bir girdi görmeniz gerekir. Zaman damgasını kullanarak veya Metin sütununun içeriğini görüntüleyerek bunu doğrulayabilirsiniz.
Congratulations! Azure Functions ve Computer Vision kullanarak Blob Storage yüklenen bir görüntüyü işlemeyi başardınız.
Kaynakları temizleme
Bu uygulamayı kullanmaya devam etmeyecekseniz, kaynak grubunu kaldırarak oluşturduğunuz kaynakları silebilirsiniz.
- Ana gezintiden Kaynak grupları'nı seçin
- Listeden
msdocs-storage-functionkaynak grubunu seçin. - Kaynak grubuna genel bakış sayfasının üst kısmındaki Kaynak grubunu sil düğmesini seçin.
- Onay iletişim kutusuna msdocs-storage-function kaynak grubu adını girin.
- Sil'i seçin. Kaynak grubunu silme işleminin tamamlanması birkaç dakika sürebilir.