Megosztás a következőn keresztül:


Az Azure API Management (APIM) integrálása a Fabric API for GraphQL használatával

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:

  1. A GraphQL API megnyitása a Fabric portálon

  2. A menüszalagon válassza a Végpont másolása lehetőséget az API URL-címének lekéréséhez

  3. Válassza az Exportálás séma lehetőséget a GraphQL-sémafájl helyi eszközre való letöltéséhez

    Képernyőkép a GraphQL API menüszalagjáról.

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.

  1. Navigáljon az API Management-példányhoz az Azure Portalon

  2. API-k>Kiválasztás + API hozzáadása

  3. A GraphQL ikon kiválasztása

  4. 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
  5. Válassza a Séma feltöltése lehetőséget, és válassza ki a letöltött sémafájlt

    Képernyőkép az APIM létrehozásáról a GraphQL séma képernyőjén.

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:

  1. Hozzon létre egy felhasználó által hozzárendelt felügyelt identitást az Azure Portalon.
  2. 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.

  1. Nyissa meg a GraphQL API-t tartalmazó Fabric-munkaterületet
  2. Válassza a Hozzáférés kezelése lehetőséget
  3. Adja hozzá a felügyelt identitást (például apim-id) legalább Contributor szerepkörrel

Képernyőkép a munkaterület engedélyéről.

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.

  1. Az Azure Portalon keresse meg az APIM-példányt
  2. Ugrás a Biztonság>Kezelt identitások
  3. 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.

  1. Az APIM GraphQL API-jában válassza az API-szabályzatok lapot

  2. A bejövő feldolgozási szabályzat szerkesztése

  3. 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>
    
  4. Cserélje le YOUR-MANAGED-IDENTITY-CLIENT-ID a felügyelt identitás ügyfélazonosítójával

  5. A 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.

  1. Az APIM-ben keresse meg a GraphQL API-t
  2. Ugrás a Teszt lapra
  3. Minta lekérdezés vagy mutáció végrehajtása a kapcsolat működésének megerősítéséhez

Képernyőkép a sikeres tesztelésről az APIM-portálon.

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:

  1. 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
  2. Háttérrendszer: Kihagyja a kérés továbbítását a Fabric rendszernek, ha van gyorsítótárazott válasz
  3. 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:

  1. Az APIM-ben kétszer hajtsa végre ugyanazt a GraphQL-lekérdezést

  2. Az API-hívás nyomon követése a gyorsítótár-találatok megtekintéséhez

    Képernyőkép a gyorsítótár-találatról az APIM-portálon.

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.