Dela via


Typ av objektreferensvariabel (förhandsversion)

För att förbättra flexibiliteten och skalbarheten introducerar vi avancerade variabler tillsammans med de befintliga grundläggande variabeltyperna. Dessa avancerade variabler är utformade för att uppfylla viktiga krav som att parameterisera externa och interna anslutningar (t.ex. Snowflake, AWS, OneLake).

En objektreferensvariabel är en avancerad variabeltyp som används i infrastrukturvariabelbiblioteket för att lagra en referens till ett befintligt infrastrukturobjekt, till exempel en lakehouse, notebook-fil eller datapipeline, genom att lagra arbetsytans ID och objekt-ID. Den här typen av variabel möjliggör intern anslutningsparameterisering, vilket gör att utvecklare dynamiskt kan länka objekt till specifika infrastrukturobjekt baserat på distributionssteg eller arbetsytekontext.

Så här använder du funktionen

En objektreferensvariabel kan användas precis som andra variabler i ett variabelbibliotek.

  1. Logga in på Microsoft Fabric
  2. Navigera till arbetsytan och variabelbiblioteket
  3. Längst upp väljer du + Ny variabel
  4. Ange ett namn för variabeln, välj objektreferens för typen och klicka sedan på ... för att välja ett värde
  5. Då öppnas en dialogruta för att välja önskat objekt. Du ser alla objekt som du har behörighet för, tillgängliga för val. Använd utforskaren till vänster för att filtrera listan efter arbetsyta. Använd filtret i det övre högra hörnet för att filtrera efter typ.

Skärmbild av de objekt som är tillgängliga för objektreferensen. 6. När den har valts visas den så här på sidan varlib – som en skrivskyddad komponent som visar objektets namn.

Skärmbild av objektreferensen.

Om du behöver redigera en objektreferens eller behöver dubbelkolla värdet:

  • om du vill se ytterligare information klickar du på värdet
  • om du vill redigera det här värdet eller värdena för andra värdeuppsättningar klickar du på knappen bredvid värdet.

Skärmbild av objektreferensens popup-fönster.

Så här fungerar det

Värdet för en objektreferensvariabel är i stort sett en statisk pekare till ett infrastrukturobjekt som identifieras av arbetsytans ID + objekt-ID. Värdet lagras som ett par GUID:er som motsvarar målobjektets arbetsyta och själva objektet. En referens kan till exempel lagras internt som:

  • WorkspaceID = aaaaaaaaa-0000-1111-2222-bbbbbbbbbbbbbb
  • ItemID = 00aa00aa-bb11-cc22-dd33-44ee44ee44ee

Dessa två ID:er identifierar tillsammans det refererade objektet unikt.

Tänk på följande när du arbetar med objektreferenser:

  • Objektreferenser möjliggör intern anslutningsparameterisering så att utvecklare dynamiskt kan länka objekt till specifika Infrastrukturresurser baserat på distributionssteg eller arbetsytekontext.
  • Referensen är statisk och pekar på ett visst objekt och justeras inte automatiskt mellan miljöer.
  • För scenspecifika variationer använder du värdeuppsättningar, där varje uppsättning kan peka på ett annat statiskt objekt (t.ex. olika sjöhus per steg).
  • Alla värden i värdeuppsättningar ska vara av samma objekttyp för att säkerställa kompatibilitet och förhindra körningsfel. Men vi framtvingar inte att ha samma objekttyp över värdeuppsättningar.

Representation i Git och API:er

Variabelbiblioteket hanteras som kod. Med git- eller REST-API:er har objektreferensvariabler ett tydligt JSON-format. Alla variabler visas i definitionsfilen för variabelbiblioteket (lagras i Git, vanligtvis .json), och visar egenskaper som namn, typ och värde.

För en variabel för objektreferens (statisk) är värdet strukturerade data för arbetsytan och objekt-ID:t. Exempel:


{
 "name": "MyDataLake",
 "note": "",
 "type": "ItemReference",
 "value": {
  "itemId": "00aa00aa-bb11-cc22-dd33-44ee44ee44ee",
  "workspaceId": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb"
 }
}

 

Kom ihåg följande när du arbetar via API:

  • Endast ID:er lagras; Namn och metadata hämtas vid körning eller cachelagras i Fabric.
  • När du skapar/uppdaterar via API anger du arbetsytan och objekt-ID:n. Ogiltiga ID:er orsakar fel.

Objekt som stöds

Följande är en lista över objekt som för närvarande stöds med hjälp av objektreferens:

Anmärkning

Notebook,through %%configure stöds inte.

Python-kodexempel

Följande kodexempel visar hur du använder en objektreferens i ett Python-skript.

var_ref = "$(/**/VarLibItem/itemReference)"
var_obj = notebookutils.variableLibrary.get(var_ref)
workspace_id = var_obj.get("workspaceId").value()
item_id = var_obj.get("itemId").value()
print(workspace_id)
print(item_id)

Den här koden gör följande:

  • Löser en objektreferensvariabel från ett Fabric-variabelbibliotek
  • Hämtar metadataobjektet för det refererade objektet
  • Extraherar arbetsytans ID och objekt-ID
  • Skriver ut dem så att de kan användas programmatiskt.

Behörigheter som krävs för att skapa/använda objektreferensvariabler

Användning av objektreferensvariabler omfattar två behörighetsnivåer:

  • Skapa och redigera en objektreferensvariabel: Användare med deltagarroller eller ovanstående roller på arbetsytan kan skapa och redigera variabler i biblioteket, medan Visningsprogram är skrivskyddade.
  • Åtkomst till objektreferensvariabeln: Förutom rättigheter för variabelbiblioteket måste du ha minst läsbehörighet för objektreferensvariabeln som du tänker referera till.

Mer information om behörigheter och behörighetsverifiering finns i Variabelbiblioteksbehörigheter

Begränsningar

För närvarande kan du bara referera till tygobjekt och semantiska modeller. Andra Power BI-objekt, till exempel Datamarts, Dataflow Gen1 stöds för närvarande inte.

Ytterligare information

Variabelbiblioteket möjliggör CI/CD för Fabric-innehåll över miljöer (Dev, Test, Prod) med hjälp av variabler för objektreferens vid scen-specifika konfigurationer. Tänk på följande:

  • Objektreferenser är knutna till en specifik arbetsyta och objekt-ID.
  • När du distribuerar till ett nytt steg pekar dessa referenser fortfarande på den ursprungliga arbetsytan, om de inte uppdateras manuellt.
  • Använd flera värdeset för varje steg och aktivera rätt uppsättning manuellt eller via API-skript.

Mer information finns i värdeuppsättningar i variabelbibliotek.