Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Az Azure API Management (APIM) és a Microsoft Fabric Api for GraphQL integrálása jelentősen javítja az API képességeit robusztus méretezhetőségi és biztonsági funkciók biztosításával. Az APIM nagyvállalati szintű átjáróként működik, amely fejlett képességeket biztosít, beleértve az identitáskezelést, a sebességkorlátozást, a válasz gyorsítótárazását, a fenyegetésvédelmet és a központosított monitorozást – mindezt a Fabric API-konfiguráció módosítása nélkül.
A GraphQL-kérések APIM-en keresztüli irányításával skálázhatja a megnövekedett forgalmat, kifinomult biztonsági szabályzatokat valósíthat meg, és betekintést nyerhet a szervezet API-használati mintáiba.
Ez a cikk végigvezeti az APIM és a Fabric API GraphQL-hez való integrálásán, a felügyelt identitáshitelesítés konfigurálásán, valamint a gyorsítótárazási és sebességkorlátozó szabályzatok implementálásán.
Ki használja az Azure API Managementet a GraphQL használatával?
Az APIM-integráció a következők szempontjából értékes:
- Vállalati tervezők a Fabric-adatokat egy központi, szabályozott API-átjárón keresztül tárják fel a szervezet egészére kiterjedő hozzáférés érdekében
- A Fabric adminisztrátorok sebességkorlátozási, gyorsítótárazási és biztonsági szabályzatokat implementálnak a Fabric kapacitásának és adatainak védelme érdekében
- Speciális hitelesítést, engedélyezést és fenyegetésvédelmet igénylő informatikai biztonsági csapatok a Fabric-adatokhoz való hozzáféréshez
- Több Fabric GraphQL API-t kezelő és irányító platformcsapatok a részlegek és üzleti egységek között
Használja az APIM-integrációt, ha olyan nagyvállalati szintű API-kezelési funkciókra van szüksége, mint a sebességkorlátozás, a gyorsítótárazás, a biztonsági szabályzatok és a központosított irányítás a Fabric GraphQL API-khoz.
Előfeltételek
Mielőtt hozzákezdene, győződjön meg arról, hogy:
- A GraphQL-hez készült Fabric API már létrejött. Ha nem, olvassa el a GraphQL API létrehozása utasításokat, vagy használja a példa SQL-adatbázissal kezdés lehetőséget a GraphQL API portálon.
- Egy Azure API Management-példány. A beállítási utasításokért lásd: API Management-példány létrehozása
- Felügyelt identitások létrehozásához és APIM-szabályzatok konfigurálásához szükséges engedélyek
Fabric GraphQL API hozzáadása az Azure API Managementhez
Az APIM és a Fabric integrálásának első lépése a GraphQL API importálása az Azure API Managementbe. Ez a folyamat létrehoz egy proxyt, amely az APIM-on keresztül irányítja a kéréseket, miközben fenntartja a kapcsolatot a Fabric-adatforrásokkal. Az API importálásával létrehozhatja az olyan vállalati funkciók hozzáadásának alapjait, mint a hitelesítési szabályzatok, a gyorsítótárazás és a sebességkorlátozás.
Az importálási folyamathoz két információra van szükség a Fabric GraphQL API-ból: a végpont URL-címétől (ahol az APIM kéréseket küld) és a sémafájlból (amely meghatározza az API struktúráját és az elérhető műveleteket).
A GraphQL API részleteinek exportálása
Először gyűjtse össze a szükséges információkat a Fabric GraphQL API-ból:
A GraphQL API megnyitása a Fabric portálon
A menüszalagon válassza a Végpont másolása lehetőséget az API URL-címének lekéréséhez
Válassza az Exportálás séma lehetőséget a GraphQL-sémafájl helyi eszközre való letöltéséhez
Az API importálása az APIM-be
Ha elkészült a végpont URL-címe és a sémafájlja, regisztrálhatja a GraphQL API-t az APIM-ban. Ez létrehoz egy API-definíciót, amelyet az APIM a kérelmek ellenőrzésére, dokumentáció létrehozására és szabályzatok alkalmazására használ. A feltöltött séma határozza meg, hogy milyen lekérdezéseket és mutációkat hajthatnak végre az ügyfelek.
Navigáljon az API Management-példányhoz az Azure Portalon
API-k>Kiválasztás + API hozzáadása
A GraphQL ikon kiválasztása
A Létrehozás a GraphQL-sémából képernyőn adja meg a következőket:
- Megjelenítendő név: Az API barátságos neve
- Név: Az API-azonosító
- GraphQL API-végpont: A Fabricből másolt végpont URL-címe
Válassza a Séma feltöltése lehetőséget, és válassza ki a letöltött sémafájlt
Felügyelt identitás hitelesítésének konfigurálása
Most, hogy a GraphQL API regisztrálva lett az APIM-ban, konfigurálnia kell, hogyan hitelesíti az APIM a Fabricet. A felügyelt identitások biztonságos, jelszó nélküli hitelesítési módszert biztosítanak, amely szükségtelenné teszi a hitelesítő adatok tárolását az APIM-konfigurációban. Az Azure automatikusan kezeli az identitás életciklusát, és kezeli a jogkivonatok beszerzését, így ez a megközelítés biztonságosabb és könnyebben karbantartható, mint a hagyományos hitelesítési módszerek.
A hitelesítés beállításának három fő lépése van: a felügyelt identitás létrehozása az Azure-ban, engedélyek biztosítása a Fabric-munkaterülethez és adatforrásokhoz való hozzáféréshez, valamint az APIM konfigurálása az identitás használatára a Fabric felé irányuló kérések során.
Felügyelt identitás létrehozása és hozzárendelése
Először hozza létre az APIM által a hitelesítéshez használt felügyelt identitást:
- Hozzon létre egy felhasználó által hozzárendelt felügyelt identitást az Azure Portalon.
- Jegyezze fel a felügyelt identitás ügyfél-azonosítóját – a szabályzatkonfigurációhoz szüksége van az ügyfél-azonosítóra.
Az felügyelt identitás engedélyeinek megadása Fabricban
A felügyelt identitás létrehozása után engedélyt kell adnia neki a Fabric-erőforrások eléréséhez. A felügyelt identitásnak hozzá kell férnie a GraphQL API-elemhez és minden olyan adatforráshoz, amelyhez csatlakozik (például tóházakhoz vagy raktárakhoz). Az identitás munkaterület-tagként való hozzáadása a legegyszerűbb módszer, mivel egyszerre biztosít hozzáférést a munkaterület összes eleméhez.
- Nyissa meg a GraphQL API-t tartalmazó Fabric-munkaterületet
- Válassza a Hozzáférés kezelése lehetőséget
- Adja hozzá a felügyelt identitást (például apim-id) legalább Contributor szerepkörrel
Jótanács
A részletesebb szabályozás érdekében munkaterületszintű hozzáférés helyett közvetlenül adhat engedélyeket az egyes Fabric-elemeknek (az API-nak és adatforrásainak). A részletes vezérlés különösen fontos, ha az API egyszeri bejelentkezéses (SSO) hitelesítést használ. További információ: Hitelesítés és engedélyek összegzése.
APIM konfigurálása a felügyelt identitás használatára
A Fabricben megadott engedélyekkel meg kell adnia az APIM-nek, hogy melyik felügyelt identitást használja. Ez a társítás lehetővé teszi az APIM számára, hogy az adott identitásként hitelesítse magát a Fabric GraphQL API-hoz küldött kérések során.
- Az Azure Portalon keresse meg az APIM-példányt
- Ugrás a Biztonság>Kezelt identitások
- A korábban létrehozott felhasználói hozzárendelésű felügyelt identitás hozzáadása
Hitelesítési szabályzat hozzáadása
A végső hitelesítési lépés egy APIM-szabályzat hozzáadása, amely egy hozzáférési jogkivonatot szerez be a felügyelt identitás használatával, és tartalmazza azt a Fabricnek küldött kérésekben. Ez az irányelv minden egyes kérésnél fut, és automatikusan kezeli a jogkivonatok beszerzését és megújítását. A szabályzat a authentication-managed-identity elemet használja a Fabric API erőforrás tokenjének lekérésére, majd hozzáadja az Engedélyezési fejlécbe.
Az APIM GraphQL API-jában válassza az API-szabályzatok lapot
A bejövő feldolgozási szabályzat szerkesztése
Adja hozzá a következő XML-t a következő területen
<inbound><base/>:<authentication-managed-identity resource="https://analysis.windows.net/powerbi/api" client-id="YOUR-MANAGED-IDENTITY-CLIENT-ID" output-token-variable-name="token-variable" ignore-error="false" /> <set-header name="Authorization" exists-action="override"> <value>@("Bearer " + (string)context.Variables["token-variable"])</value> </set-header>Cserélje le
YOUR-MANAGED-IDENTITY-CLIENT-IDa felügyelt identitás ügyfélazonosítójávalA szabályzat mentése
A kapcsolat tesztelése
A gyorsítótárazás és a sebességkorlátozás hozzáadása előtt ellenőrizze, hogy a hitelesítés beállítása megfelelően működik-e. A tesztelés biztosítja, hogy a később felmerülő problémák ne kapcsolódjanak a hitelesítési konfigurációhoz.
- Az APIM-ben keresse meg a GraphQL API-t
- Ugrás a Teszt lapra
- Minta lekérdezés vagy mutáció végrehajtása a kapcsolat működésének megerősítéséhez
Válasz gyorsítótárazásának konfigurálása
A válasz gyorsítótárazása jelentősen csökkenti az API-hívók késését, és csökkenti a Fabric-adatforrások háttérbetöltését. Az APIM támogat beépített gyorsítótárazást vagy külső Redis-példányokat. A GraphQL API-k esetében a gyorsítótárazás a kérelem törzsét (a GraphQL-lekérdezést) használja gyorsítótárkulcsként, biztosítva, hogy az azonos lekérdezések gyorsítótárazott válaszokat adjanak vissza.
A GraphQL-válaszok gyorsítótárazásának előnyei:
- Csökkentett késés: A gyorsítótárazott válaszok azonnal visszatérnek a Fabric lekérdezése nélkül
- Alacsonyabb kapacitáshasználat: Kevesebb kérés a Fabrichez kevesebb CU használatot eredményez
- Jobb méretezhetőség: Több egyidejű felhasználó kezelése a háttérbetöltés növelése nélkül
Gyorsítótárazási szabályzatot adj hozzá
A gyorsítótárazás implementálásához módosítsa a meglévő hitelesítési szabályzatot, hogy gyorsítótárkeresési és tárolási logikát adjon hozzá. A szabályzat ellenőrzi a gyorsítótárazott válaszokat, mielőtt továbbítanák a kéréseket a Fabricnek, és későbbi használatra tárolják a sikeres válaszokat. Ez a részletes házirend-példa bemutatja, hogyan működik együtt a hitelesítés és a cache-elés.
<policies>
<inbound>
<base />
<!-- Authenticate with managed identity -->
<authentication-managed-identity
resource="https://analysis.windows.net/powerbi/api"
client-id="YOUR-MANAGED-IDENTITY-CLIENT-ID"
output-token-variable-name="token-variable"
ignore-error="false" />
<set-header name="Authorization" exists-action="override">
<value>@("Bearer " + (string)context.Variables["token-variable"])</value>
</set-header>
<!-- Check if response is cached -->
<cache-lookup-value
key="@(context.Request.Body.As<String>(preserveContent: true))"
variable-name="cachedResponse"
default-value="not_exists" />
</inbound>
<backend>
<!-- Only forward request if not cached -->
<choose>
<when condition="@(context.Variables.GetValueOrDefault<string>("cachedResponse") == "not_exists")">
<forward-request />
</when>
</choose>
</backend>
<outbound>
<base />
<choose>
<!-- Return cached response if it exists -->
<when condition="@(context.Variables.GetValueOrDefault<string>("cachedResponse") != "not_exists")">
<set-body>@(context.Variables.GetValueOrDefault<string>("cachedResponse"))</set-body>
</when>
<!-- Cache successful responses for 60 seconds -->
<when condition="@((context.Response.StatusCode == 200) && (context.Variables.GetValueOrDefault<string>("cachedResponse") == "not_exists"))">
<cache-store-value
key="@(context.Request.Body.As<String>(preserveContent: true))"
value="@(context.Response.Body.As<string>(preserveContent: true))"
duration="60" />
</when>
</choose>
</outbound>
<on-error>
<base />
</on-error>
</policies>
A szabályzat működése:
- Bejövő: Hitelesített felügyelt identitással, és ellenőrzi, hogy a válasz gyorsítótárazva van-e a GraphQL-lekérdezés alapján
- Háttérrendszer: Kihagyja a kérés továbbítását a Fabric rendszernek, ha van gyorsítótárazott válasz
- Kimenő: Gyorsítótárazott válaszokat ad vissza, vagy 60 másodpercig gyorsítótárazza az új sikeres válaszokat
Ellenőrizze a gyorsítótárazás működését
Annak megerősítéséhez, hogy a kérések gyorsítótárba kerülnek:
Az APIM-ben kétszer hajtsa végre ugyanazt a GraphQL-lekérdezést
Az API-hívás nyomon követése a gyorsítótár-találatok megtekintéséhez
Gyorsítótár időtartamának optimalizálása
A példa 60 másodperces gyorsítótár-időtartamot használ. Módosítsa az időtartamot az adatfrissítési követelmények alapján:
- Nagy gyakoriságú frissítések: Rövidebb időtartamok (10–30 másodperc) használata az adatok gyakori módosításához
- Statikus vagy referenciaadatok: Hosszabb időtartamok (5–60 perc) használata ritkán változó adatokhoz
- Valós idejű követelmények: Ne gyorsítótárazza azokat a lekérdezéseket, amelyeknek mindig a legújabb adatokat kell visszaadnia
Speciális gyorsítótárazási forgatókönyvek esetén, beleértve a gyorsítótár érvénytelenítését és a külső Redis-konfigurációt, tekintse meg az APIM gyorsítótárazási szabályzatait.
Sebességkorlátozás
Korlátozhatja, hogy az ügyfél hány API-hívást kezdeményezhet egy adott időszakban. Az alábbiakban hozzáadhat egy mintaszabályzatot a sebességkorlátozásra <inbound><base/> alatt, amely érvényesíti, hogy egy adott felhasználó legfeljebb két hívást kezdeményezhet 60 másodpercenként.
<rate-limit-by-key
calls="2"
renewal-period="60"
counter-key="@(context.Request.Headers.GetValueOrDefault("Authorization"))"
increment-condition="@(context.Response.StatusCode == 200)"
remaining-calls-variable-name="remainingCallsPerUser" />
Miután egy perc alatt kétnál több API-hívást küldött, hibaüzenet jelenik meg:
{
"statusCode": 429,
"message": "Rate limit is exceeded. Try again in 58 seconds."
}
A sebességkorlátozó szabályzatok APIM-ben való konfigurálásáról további információt a dokumentációban talál.
Ajánlott eljárások
Ha az APIM-t a Fabric API for GraphQL-vel integrálja, kövesse az alábbi javaslatokat:
Biztonság
- Felügyelt identitások használata: A felügyelt identitások előnyben részesítése API-kulcsokkal vagy kapcsolati sztringekkel a hitelesítéshez
- Minimális jogosultság megvalósítása: Csak a felügyelt identitáshoz szükséges minimális engedélyek megadása
- Csak HTTPS engedélyezése: AZ APIM konfigurálása a HTTP-kérések elutasítására és a HTTPS kényszerítésére
- Bemenetek ellenőrzése: APIM-szabályzatok használata GraphQL-lekérdezések érvényesítéséhez, mielőtt továbbítanák a Fabricbe
Performance
- Gyakran használt adatok gyorsítótárazása: Azonosítsa a gyakori lekérdezéseket, és állítsa be a megfelelő gyorsítótár-időtartamokat
- Gyorsítótár-találati arányok monitorozása: APIM-elemzések használata a gyorsítótár hatékonyságának nyomon követéséhez
- Sebességkorlátok optimalizálása: A felhasználói élmény egyensúlya kapacitásvédelemmel
- Regionális üzembe helyezés használata: AZ APIM üzembe helyezése ugyanabban a régióban, mint a Fabric-kapacitás
Monitorozás és irányítás
- Diagnosztika engedélyezése: AZ APIM diagnosztikai naplózásának konfigurálása az API-használat nyomon követéséhez
- Riasztások beállítása: Riasztások létrehozása a sebességkorlát megsértéseihez és hibáihoz
- Verziószámozza az API-kat: Az APIM verziószámozásával kezelheti a kompatibilitástörő módosításokat
- API-k dokumentálása: API-dokumentációk biztosítása az APIM fejlesztői portálján
Költségoptimalizálás
- Megfelelő méretű sebességkorlátok: A kapacitásszinthez igazodó korlátok beállítása
- Kapacitáshasználat monitorozása: Az APIM és a Fabric kapacitáshasználatának nyomon követése
- Stratégiai gyorsítótárazás használata: A frissességi követelmények és a kapacitásmegtakarítás közötti egyensúly
- Használati minták áttekintése: Rendszeresen elemezheti, hogy mely lekérdezések használják a legtöbb erőforrást
Összefoglalás
A Microsoft Fabric API for GraphQL és az Azure API Management integrálása egyesíti a Fabric hatékony adatképességeit az APIM nagyvállalati szintű API Gateway-funkcióival. Ez a kombináció a következőt nyújtja:
- Fokozott biztonság: Felügyelt identitáshitelesítés, fenyegetésvédelem és szabályzatalapú hozzáférés-vezérlés
- Továbbfejlesztett méretezhetőség: Válasz gyorsítótárazása, sebességkorlátozás és terheléselosztás több háttérrendszerben
- Jobb teljesítmény: Kisebb késés gyorsítótárazással és optimalizált kérés-útválasztással
- Központosított irányítás: Egységes monitorozás, verziószámozás és felügyelet több API-ban
- Költségszabályozás: Sebességkorlátozás és gyorsítótárazás csökkentik a Fabric kapacitáshasználatát
A jelen cikkben ismertetett konfigurációs lépések és ajánlott eljárások követésével robusztus, biztonságos és méretezhető API-réteget hozhat létre, amely támogatja az éles számítási feladatokat a szervezetben.