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.
İşlevin genel uç noktasına HTTP istekleri göndererek dış uygulamalardan Doku kullanıcı verileri işlevlerini çağırabilirsiniz. Bu, Doku iş mantığınızı web uygulamaları, otomasyon betikleri, mikro hizmetler veya Doku ortamı dışındaki herhangi bir sistemle tümleştirmenizi sağlar.
Bu eğitimde, siz:
- Microsoft Entra uygulamasını kimlik doğrulaması için kaydetme
- İşlevin genel URL'sini alma ve genel erişimi etkinleştirme
- İşlevi çağıran bir Python konsol uygulaması oluşturma
- Yanıt şemasını ve HTTP durum kodlarını anlama
Önkoşullar
- Yerel makinenizde yüklü Visual Studio Code.
- Python 3.11 yerel makinenizde yüklüdür.
- Bir Microsoft Fabric hesabı. Ücretsiz deneme için kaydolabilirsiniz.
- Doku çalışma alanı.
- Yayınlanmış kullanıcı verisi fonksiyon öğesi. Yönergeler için bkz. Visual Studio Code'da kullanıcı verileri işlevleri oluşturma veya Portalda kullanıcı verileri işlevleri oluşturma.
Microsoft Entra uygulaması oluşturma
Dış uygulamadan kullanıcı verileri işlevlerini çağırmak için bir uygulamayı Microsoft Entra Id'ye kaydetmeniz gerekir. Bu uygulama kaydı, Python uygulamanızın kimlik doğrulaması için kullandığı kimlik bilgilerini sağlar.
Microsoft Entra yönetim merkezine gidin ve Hızlı Başlangıç: Microsoft kimlik platformuna uygulama kaydetme başlığı altında açıklanan adımları kullanarak bir uygulamayı kaydedin.
Özet kutusunda Microsoft Entra uygulaması Uygulaması (istemci) Kimliği ve Dizin (kiracı) Kimliği değerleri görüntülenir. Bu değerleri daha sonra gerekli olduğundan kaydedin.
Yönet listesinin altında, API izinleriniseçin, ardından "İzin ekle"'yi seçin.
PowerBI Hizmeti'ni ekleyin, Temsilci izinleri'ni seçin ve UserDataFunction.Execute.All veya item öğesini seçin. Execute.All izinleri. Yönetici onayının gerekli olmadığını onaylayın.
Yönet ayarına geri dönün ve Kimlik Doğrulaması> Platform >ekle'yiseçin.
Yerel geliştirme amacıyla Yeniden Yönlendirme URI'leri bölümüne ekleyin
http://localhost:3000ve uygulamanın Kod Değişimi için Proof Key (PKCE) ile yetkilendirme kodu akışı için etkinleştirildiğini onaylayın. Değişikliklerinizi kaydetmek için Yapılandır düğmesini seçin. Uygulama çıkış noktaları arası isteklerle ilgili bir hatayla karşılaşırsa, önceki adımda aynı yeniden yönlendirme URI'sine sahip Mobil ve masaüstü uygulamaları platformunu ekleyin.Kimlik Doğrulaması 'ne dönün, ekranı aşağı kaydırarak gelişmiş ayarlargidin ve genel istemci akışlarına izin ver altında 'i seçinaşağıdaki mobil ve masaüstü akışlarını etkinleştirin.için Evet
Konsol uygulaması oluşturma
Artık bir uygulama kaydınız olduğuna göre, kullanıcı verileri işlevinizin kimliğini doğrulayan ve çağıran bir Python konsol uygulaması oluşturun.
Çağrılacak işlev URL'sini alma
Her kullanıcı veri işlevinin REST API uç noktası olarak hizmet veren benzersiz bir genel URL'si vardır. İşlevi bir dış uygulamadan çağırabilmeniz için önce genel erişimi etkinleştirmeniz ve URL'yi almanız gerekir.
İşlev URL'sini almak için:
Fabric portalında kullanıcı verisi işlevi öğenizi açın.
Geliştirme modu değil Yalnızca çalıştır modunda olduğunuzdan emin olun.
İşlevler gezgininde, işlevin adının üzerine gelin ve üç noktayı (...) seçin.
Özellikleröğesini seçin.
Özellikler bölmesinde Genel erişimin etkinleştirildiğinden emin olun. Aksi takdirde, açmak için anahtarı seçin.
Python uygulamanızda kullanmak üzere Genel URL'yi kopyalayın.
Tavsiye
Genel erişim zaten etkinse Özellikler bölmesini atlayabilirsiniz. İşlevler gezgininde işlev adının yanındaki üç noktayı (...) ve İşlev URL'sini Kopyala'yı seçin. Bu, Özellikler bölmesindeki Genel URL ile aynı URL'yi kopyalar.
Uygulama kodunuzda yer tutucusunu
FUNCTION_URLkopyaladığınız URL ile değiştirin.
Python projenizi ayarlama
Sanal ortamla bir Python projesi oluşturun ve gerekli bağımlılıkları yükleyin.
Python uygulamanız için yeni bir klasör oluşturun, örneğin
my-data-app.Visual Studio Code'da klasörü açın.
Komut Paleti'ni (Ctrl+Shift+P) açın ve Python: Ortam Oluştur'u arayın.
Ortam türü olarak venv'yi seçin.
Yorumlayıcı sürümü olarak Python 3.11'i seçin.
Visual Studio Code'da yeni bir terminal açın (Ctrl+').
Python sanal ortamını etkinleştirin:
Windows:
.venv\Scripts\activatemacOS/Linux:
source .venv/bin/activateGerekli Python kitaplıklarını yükleyin:
pip install azure-identity requests
Uygulama kodunu ekleme
Microsoft Entra Id ile kimlik doğrulaması yapıp kullanıcı verileri işlevinizi çağıran Python kodunu ekleyin.
Proje klasörünüzde adlı
app.pybir dosya oluşturun.Aşağıdaki kodu ekleyin.
<REPLACE WITH USER DATA FUNCTION URL>değerini daha önce kopyaladığınız genel URL ile değiştirin.from azure.identity import InteractiveBrowserCredential import requests import json # Acquire a token using interactive browser authentication # This opens a browser window for the user to sign in with their Microsoft account credential = InteractiveBrowserCredential() scope = "https://analysis.windows.net/powerbi/api/user_impersonation" token = credential.get_token(scope) if not token.token: print("Error: Could not get access token") exit(1) # Prepare headers with the access token headers = { "Authorization": f"Bearer {token.token}", "Content-Type": "application/json" } FUNCTION_URL = "<REPLACE WITH USER DATA FUNCTION URL>" # Prepare the request data (modify to match your function's expected input) data = {"name": "John"} try: # Call the user data function public URL response = requests.post(FUNCTION_URL, json=data, headers=headers) response.raise_for_status() print(json.dumps(response.json(), indent=2)) except Exception as e: print(f"Error: {e}")Uyarı
Bu örnek, basitlik sağlamak adına
InteractiveBrowserCredentialkullanır, bu da etkileşimli oturum açma için bir tarayıcı açar. Üretim uygulamaları için, kayıtlı Microsoft Entra uygulamanızdanclient_idvetenant_idbilgileriniziInteractiveBrowserCredential'ye geçirin veya hizmetten hizmete kimlik doğrulaması içinClientSecretCredentialgibi farklı bir kimlik bilgisi türü kullanın. Daha fazla bilgi için bkz. Python için Azure Identity istemci kitaplığı.
Uygulamayı çalıştırma
Uygulamayı çalıştırmak için terminalde aşağıdaki komutu kullanın:
python app.py
Microsoft hesabınızla oturum açmanız için bir tarayıcı penceresi açılır. Kimlik doğrulamasından sonra uygulama kullanıcı verileri işlevinizi çağırır ve yanıtı yazdırır.
Visual Studio Code'da uygulamanın hatalarını ayıklamak için, satır numaralarının yanındaki oluk işaretine tıklayarak kesme noktaları ayarlayın ve hata ayıklamayı başlatmak için F5 tuşuna basın. Daha fazla bilgi için bkz. Visual Studio Code'da Python hata ayıklama.
Çıkış şeması
Dış bir uygulamadan kullanıcı verileri işlevini çağırdığınızda, yanıt gövdesi şu JSON şemasını izler:
{
"functionName": "hello_fabric",
"invocationId": "1234567890",
"status": "Succeeded",
"output": "Hello, John!",
"errors": []
}
Yanıt şu özellikleri içerir:
- functionName: Çalıştırılan işlevin adı.
- invocationId: Bu özel işlev yürütmesi için benzersiz bir tanımlayıcı. Sorun gidermek ve günlükleri ilişkilendirmek için kullanışlıdır.
-
status: İşlevin yürütülmesinin sonucu. Olası değerler , ,
SucceededBadRequest,FailedveTimeoutdeğerleridirResponseTooLarge. -
output: İşlevinizin dönüş değeri. Veri türü ve yapısı işlevinizin ne döndürdüğüne bağlıdır. Örneğin, işleviniz bir dize döndürüyorsa,
outputbir dizedir. İşleviniz bir sözlük döndürüyorsa,outputbir JSON nesnesidir. -
errors: Yürütme sırasında yakalanan hataların listesi. Her hata, daha fazla ayrıntı içeren anahtar-değer çiftlerini içeren bir
name,messageve isteğe bağlıpropertiesnesnesi içerir. İşlev başarılı olduğunda boş.
Yanıt kodları
İşlev, yürütmenin bir sonucu olarak aşağıdaki HTTP kodlarını döndürür.
| Yanıt kodu | Message | Açıklama |
|---|---|---|
| 200 | Success | İstek başarılı oldu. |
| 400 | Hatalı İstek | İstek geçerli değildi. Bu yanıt eksik veya yanlış giriş parametresi değerleri, veri türleri veya adlardan kaynaklanıyor olabilir. Bu yanıt, bir işlev için genel erişimin kapatılmasından da kaynaklanabilir. |
| 403 | Yasak | Yanıt çok büyük ve çağrı başarısız oldu. |
| 408 | İstek Zaman Aşımı | Yürütmenin izin verilen en uzun süreden uzun sürmesi nedeniyle istek başarısız oldu. |
| 409 | Çakışma | İstek, çakışan bir durum nedeniyle tamamlanamadı. Bu hataya işlenmeyen bir özel durum veya kullanıcı kimlik bilgileriyle ilgili bir hata neden olabilir. |
| 422 | Hatalı İstek | İşlevde tetiklenen userThrownError nedeniyle istek başarısız oldu. |
| beş yüz | İç Sunucu Hatası | İstek, hizmetteki bir iç hata nedeniyle başarısız oldu. |