Jaa


Microsoft Fabric -taustan toteuttaminen

Tämä Microsoft Fabric -kuormituksen kehitysmallisäilö on lähtökohta sovellusten rakentamiselle, jotka edellyttävät integrointia eri palveluihin ja integrointia Lakehouse-arkkitehtuuriin. Tässä artikkelissa opastetaan ympäristön määrittämisessä ja tarvittavien osien määrittämisessä käytön aloittamiseksi. Artikkelissa esitellään keskeiset osat ja niiden roolit arkkitehtuurissa.

Edusta

Edustassa hallitaan käyttökokemusta (UX) ja toimintaa. Se kommunikoi Fabric-edustaportaalin kanssa iFramen kautta saumattoman vuorovaikutuksen helpottamiseksi.

Jos haluat lisätietoja, katso Microsoft Fabric Workload Development Kit -edusta.

Tausta

Taustatieto sisältää sekä tiedot että metatiedot. Se käyttää Luo-, Lue-, Päivitä- ja Poista (CRUD) -toimintoja kuormituskohteiden ja metatietojen luomiseen ja suorittaa töitä tietojen täyttämiseksi tallennustilassa. Edustan ja taustan välinen viestintä muodostetaan julkisten ohjelmointirajapintojen kautta.

Azure-releen ja DevGatewayn

Azure-välityspalvelu mahdollistaa viestinnän paikallisen kehitysympäristön ja Fabric-taustan välillä kehittäjätilassa. Kehittäjätilassa kuormitus toimii kehittäjän tietokoneessa.

DevGateway-apuohjelmalla on kaksi roolia:

  • Se käsittelee kuormituksen puolen Azure Relay -kanavassa ja hallitsee kuormituksen paikallisen esiintymän rekisteröimistä Fabriciin tietyn työtilan kontekstissa. Apuohjelma käsittelee rekisteröinnin, kun kanava katkeaa.
  • Se toimii Azure Relay to Channel -kuormituksen API-kutsujen kanssa Fabricista kuormitukseen.

Kuormituksenhallinnan ohjelmointirajapintakutsut tehdään suoraan kuormituksesta Fabriciin. Azure Relay -kanavaa ei tarvita kutsuissa.

Lakehouse-integrointi

Kuormituksen kehityspakettiarkkitehtuuri integroituu saumattomasti Lakehouse-arkkitehtuuriin esimerkiksi tallentamista, lukemista ja tietojen noutamista varten. Vuorovaikutusta helpotetaan Azure-releen ja Fabric SDK:n avulla suojatun ja todennetun viestinnän varmistamiseksi. Lisätietoja on kohdassa Asiakastietojen käsitteleminen.

Todentaminen ja suojaus

Microsoft Entra -tunnusta käytetään turvalliseen todentamiseen, mikä varmistaa, että kaikki arkkitehtuurin sisältämät vuorovaikutukset ovat valtuutettuja ja suojattuja.

Kehityspaketin yleiskatsaus tarjoaa katsauksen arkkitehtuuriimme. Lisätietoja projektien määrittämisestä, todentamisohjeista ja aloittamisesta on seuraavissa artikkeleissa:

Kaavio, joka näyttää, miten Fabric SDK integroituu Fabriciin.

Edusta muodostaa yhteyden Fabric-edustaportaaliin iFramen kautta. Portaali vuorostaan on vuorovaikutuksessa Fabric-taustan kanssa kutsumalla sen näkyviä julkisia ohjelmointirajapintoja.

Taustakehitysruudun ja Fabric-taustan välisessä vuorovaikutuksessa Azure-välitys toimii väylänä. Lisäksi taustakehityslaatikko integroituu saumattomasti Lakehouseen. Viestintää helpotetaan käyttämällä Azure Relayä ja SDK:ta (Fabric Software Development Kit), jotka on asennettu taustakehitysruutuun.

Kaikkien näiden osien tiedonsiirron todentaminen varmistetaan Microsoft Entran kautta. Microsoft Entra tarjoaa suojatun ja todennetun ympäristön edustan, taustan, Azure Relayn, Fabric SDK:n ja Lakehousen välisille vuorovaikutuksille.

Edellytykset

Varmista, että NuGet Package Manager on integroitu Visual Studion asennukseen. Tätä työkalua tarvitaan projektissamme olennaisten ulkoisten kirjastojen ja pakettien virtaviivaistettuun hallintaan.

NuGet-pakettien hallinta

  • <NuspecFile>Packages\manifest\ManifestPackageDebug.nuspec</NuspecFile> ja <NuspecFile>Packages\manifest\ManifestPackageRelease.nuspec</NuspecFile>: Nämä ominaisuudet määrittävät polun NuSpec-tiedostoihin, joita käytetään NuGet-paketin luomiseen Virheenkorjaus- ja Julkaisu-tiloja varten. NuSpec-tiedosto sisältää metatietoja paketista, kuten sen tunnuksen, version, riippuvuussuhteet ja muita olennaisia tietoja.

  • <GeneratePackageOnBuild>true</GeneratePackageOnBuild>: Kun asetuksena on true, tämä ominaisuus ohjaa koontiprosessin luomaan automaattisesti NuGet-paketin kunkin koontiversioon. Tämän ominaisuuden avulla voit varmistaa, että paketti on aina ajan tasalla projektin uusimpien muutosten kanssa.

  • <IsPackable>true</IsPackable>: Kun arvona on true, tämä ominaisuus ilmaisee, että projekti voidaan pakata NuGet-pakettiin. Pakkaaminen on välttämätön ominaisuus projekteille, joiden on tarkoitus tuottaa NuGet-paketteja koontiprosessin aikana.

Luotu NuGet-paketti virheenkorjaustilaa varten sijaitsee src\bin\Debug-hakemistossa koontiprosessin jälkeen.

Kun työskentelet pilvipalvelutilassa, voit muuttaa Visual Studion koontimäärityksen julkaisu- ja koontiversioksi. Luotu paketti sijaitsee - src\bin\Release hakemistossa. Lisätietoja on kohdassa Pilvitilassa työskentelyn opas.

Riippuvuudet

  • Taustan boilerplate-malli määräytyy seuraavien Azure SDK -pakettien mukaan:

    • Azure.Core
    • Azure.Identity
    • Azure.Storage.Files.DataLake
    • Microsoft Identity -paketti

Jos haluat määrittää NuGet Package Managerin, määritä polku Paketin lähteet -osassa ennen koontiprosessin aloittamista.

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>net7.0</TargetFramework>
    <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
    <BuildDependsOn>PreBuild</BuildDependsOn>
    <GeneratePackageOnBuild>true</GeneratePackageOnBuild>
    <IsPackable>true</IsPackable>
  </PropertyGroup>
  
  <PropertyGroup Condition="'$(Configuration)' == 'Release'">
    <NuspecFile>Packages\manifest\ManifestPackageRelease.nuspec</NuspecFile>
  </PropertyGroup>

  <PropertyGroup Condition="'$(Configuration)' == 'Debug'">
    <NuspecFile>Packages\manifest\ManifestPackageDebug.nuspec</NuspecFile>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Azure.Core" Version="1.38.0" />
    <PackageReference Include="Azure.Identity" Version="1.11.0" />
    <PackageReference Include="Azure.Storage.Files.DataLake" Version="12.14.0" />
    <PackageReference Include="Microsoft.AspNet.WebApi.Client" Version="5.2.9" />
    <PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="7.0.5" />
    <PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="7.0.0" />
    <PackageReference Include="Microsoft.Identity.Client" Version="4.60.3" />
    <PackageReference Include="Microsoft.IdentityModel.Protocols" Version="6.30.1" />
    <PackageReference Include="Microsoft.IdentityModel.Protocols.OpenIdConnect" Version="6.30.1" />
    <PackageReference Include="Microsoft.IdentityModel.Tokens" Version="6.30.1" />
    <PackageReference Include="Swashbuckle.AspNetCore" Version="6.5.0" />
  </ItemGroup>

  <ItemGroup>
    <Folder Include="Properties\ServiceDependencies\" />
  </ItemGroup>

  <Target Name="PreBuild" BeforeTargets="PreBuildEvent">
    <Exec Command="powershell.exe -ExecutionPolicy Bypass -File ValidationScripts\RemoveErrorFile.ps1 -outputDirectory ValidationScripts\" />
    <Exec Command="powershell.exe -ExecutionPolicy Bypass -File ValidationScripts\ManifestValidator.ps1 -inputDirectory .\Packages\manifest\ -inputXml WorkloadManifest.xml -inputXsd WorkloadDefinition.xsd -outputDirectory ValidationScripts\" />
    <Exec Command="powershell.exe -ExecutionPolicy Bypass -File ValidationScripts\ItemManifestValidator.ps1 -inputDirectory .\Packages\manifest\ -inputXsd ItemDefinition.xsd -outputDirectory ValidationScripts\" />
    <Exec Command="powershell.exe -ExecutionPolicy Bypass -File ValidationScripts\ValidateNoDefaults.ps1 -outputDirectory ValidationScripts\" />
    <Error Condition="Exists('ValidationScripts\ValidationErrors.txt')" Text="Validation errors with either manifests or default values" File="ValidationScripts\ValidationErrors.txt" />
  </Target>

</Project>

Aloittaminen

Voit määrittää kuormitusmalliprojektin paikallisessa tietokoneessa seuraavasti:

  1. Kloonaa säilö: Suorita git clone https://github.com/microsoft/Microsoft-Fabric-workload-development-sample.git.

  2. Avaa ratkaisu Visual Studio 2022:ssa.

  3. Määritä sovelluksen rekisteröinti noudattamalla todentamisen opetusohjelmassa annettuja ohjeita. Varmista, että sekä edustaprojekteissa että taustaprojekteissa on artikkelin edellyttämä määritys. Microsoft Entran avulla varmistetaan suojatun todentamisen avulla, että kaikki arkkitehtuurin sisältämät vuorovaikutukset ovat valtuutettuja ja suojattuja.

  4. Päivitä Microsoft OneLake DFS:n perus-URL-osoite. Fabric-ympäristöstäsi riippuen saatat pystyä päivittämään kohteen src\Constants-arvon OneLakeDFSBaseURL. Oletusarvo on onelake.dfs.fabric.microsoft.com, mutta voit päivittää URL-osoitteen ympäristösi mukaiseksi. Lisätietoja DFS-poluista on OneLake-dokumentaatiossa.

  5. Määritä kuormituksen määritys.

    1. Kopioi workload-dev-mode.json kohteesta src/Config kohteeseen C:.
    2. Päivitä workload-dev-mode.json-tiedostossa seuraavat kentät vastaamaan määritystäsi:
      • WorkspaceGuid: Työtilasi tunnus. Tämä arvo löytyy selaimen URL-osoitteesta, kun valitset työtilan Fabricissa. Esimerkki: https://app.powerbi.com/groups/<WorkspaceID>/.
      • ManifestPackageFilePath: Luettelotiedostopaketin sijainti. Kun luot ratkaisun, se tallentaa kokoonpanotiedostopaketin src \bin\Debugiin. Lisätietoja luettelopaketista annetaan jäljempänä artikkelissa.
      • WorkloadEndpointURL: Kuormituksen päätepisteen URL-osoite.
    3. Päivitä Packages/manifest/WorkloadManifest.xml-tiedostossa seuraavat kentät vastaamaan määritystäsi:
      • <AppId>: Microsoft Entra -sovelluksen asiakastunnus (sovellustunnus).
      • <RedirectUri>: Uudelleenohjauksen URI-osoitteet. Löydät tämän arvon luomastasi sovelluksen rekisteröinnistä kohdasta Todentaminen.
      • <ResourceId>: Saapuvien Microsoft Entra -tunnusten yleisö. Löydät nämä tiedot luomastasi sovelluksen rekisteröinnistä kohdasta Ohjelmointirajapinnan paljastaminen.
    4. Päivitä src/appsettings.json-tiedostossa seuraavat kentät vastaamaan määritystäsi:
      • PublisherTenantId: Kuormituksen julkaisijan vuokraajan tunnus.
      • Asiakastunnus: kuormituksen Microsoft Entra -sovelluksen asiakastunnus (sovellustunnus).
      • ClientSecret: Microsoft Entra -sovelluksen kuormituksen salaisuus.
      • Kohderyhmä: Saapuvien Microsoft Entra -tunnusten yleisö. Löydät nämä tiedot luomastasi sovelluksen rekisteröinnistä kohdasta Ohjelmointirajapinnan paljastaminen. Tätä asetusta kutsutaan myös sovellustunnuksen URI:ksi.
  6. Luo luettelopaketti.

    Jos haluat luoda kokoonpanopakettitiedoston, luo Fabric_Extension_BE_Boilerplate. Koontiversio on kolmivaiheinen prosessi, joka luo kokoonpanopakettitiedoston. Se suorittaa seuraavat vaiheet:

    1. Käynnistää ManifestValidator.ps1 on WorkloadManifest.xml in Packages\manifest/ ja käynnistää ItemManifestValidator.ps1:n kaikille kohteille XMLs (esimerkiksi Item1.xml) kohteessa Packages\manifest/. Jos vahvistus epäonnistuu, luodaan virhetiedosto. Voit tarkastella vahvistuskomentosarjoja kohdassa ValidationScripts/.
    2. Jos virhetiedosto on olemassa, koontiversio epäonnistuu ja virhevahvistusvirheet joko luetteloinnin tai oletusarvon kanssa. Jos haluat nähdä virhetiedoston Visual Studiossa, kaksoisnapsauta vahvistustuloksissa olevaa virhettä.
    3. Pakkaa vahvistuksen jälkeen WorkloadManifest.xml- ja Item1.xml-tiedostot ManifestPackage.1.0.0.nupkg-tiedostoon. Tuloksena saatava paketti on kohteessa src\bin\Debug.

    Kopioi ManifestPackage.1.0.0.nupkg-tiedosto workload-dev-mode.json määritystiedostossa määritettyyn polkuun.

  7. Program.cs on sovelluksen aloituskohta ja käynnistyskomentosarja. Tässä tiedostossa voit määrittää eri palveluja, alustaa sovelluksen ja käynnistää verkkoisännän.

  8. Koontiversio, jolla varmistetaan, että projektisi voi käyttää kokoelman ja suorituksen vaadittuja riippuvuuksia.

  9. Lataa DevGateway Microsoftin Download Centeristä

  10. Suorita Microsoft.Fabric.Workload.DevGateway.exe -sovellus ja kirjaudu sisään käyttäjällä, jolla on työtilan järjestelmänvalvojan oikeudet työtilaan, joka on määritetty WorkspaceGuid workload-dev-mode.json -kentässä.

    Näyttökuva Microsoftin kirjautumissivusta.

    Todentamisen jälkeen ulkoiset kuormitukset luovat viestintää Fabric-taustayhteyden kanssa Azure-releen kautta. Tämä prosessi sisältää välityspalvelimen rekisteröinnin ja viestinnän hallinnan, joita määritetty välityspalvelinsolmu avustaa. Kuormituksen luettelotiedoston sisältävä paketti ladataan ja julkaistaan.

    Tässä vaiheessa Fabric havaitsee kuormituksen ja käyttää sille varattua kapasiteettia.

    Voit valvoa mahdollisia virheitä konsolissa.

    Jos virheitä ei näytetä, yhteys muodostetaan, rekisteröinti suoritetaan onnistuneesti ja kuormituksen luettelo ladataan järjestelmällisesti.

    Näyttökuva yhteyden lataamisesta ilman virheitä.

  11. Vaihda Visual Studiossa startup-projektisi Boilerplate-projektiksi ja valitse Suorita.

    Näyttökuvassa on Visual Studion käynnistysprojektin käyttöliittymä.

Boilerplate-malliprojektin käsitteleminen

Koodin luominen

Käytämme kuormitusta Boilerplate C# ASP.NET Core -mallia kuormituksen luomisen esittelyssä REST-ohjelmointirajapintojen avulla. Malli alkaa luodaan palvelimen nastat ja sopimusluokat kuormituksen API Swagger -määrityksen perusteella. Voit luoda koodin millä tahansa useilla Swagger-koodinmuodostamistyökaluilla. Boilerplate-malli käyttää NSwagia. Näyte sisältää GenerateServerStub.cmd komentorivin komentosarjan, joka rivittää NSwag-koodigeneraattorin. Komentosarja ottaa yhden parametrin, joka on täysi polku NSwag-asennushakemistoon. Se tarkistaa myös Swagger-määritystiedoston (swagger.json) ja -kansion määritystiedoston (nswag.json).

Suorittamalla tämän komentosarjan luot C#-tiedoston nimeltä WorkloadAPI_Generated.cs. Tämän tiedoston sisältö voidaan jakaa loogisesti kolmeen osaan, kuten seuraavissa osioissa selitetään.

ASP.NET Ydin-stub-ohjauskoneet

ItemLifecycleControllerja JobsController luokat ovat ASP.NET Core Controller -toteutuksia, jotka koskevat kahta kuormituksen ohjelmointirajapinnan alijoukkoa: kohteen elinkaaren hallinta ja työt. Nämä luokat liitetään ASP.NET HTTP-ydinputkeen. Ne toimivat swagger-määrityksessä määritettyjen ohjelmointirajapintamenetelmien aloituspisteinä. Luokat siirtävät kutsut kuormituksen tarjoamaan "todelliseen" toteutukseen.

Tässä on esimerkki -menetelmästä CreateItem :

/// <summary>
/// Called by Microsoft Fabric for creating a new item.
/// </summary>
/// <remarks>
/// Upon item creation Fabric performs some basic validations, creates the item with 'provisioning' state and calls this API to notify the workload. The workload is expected to perform required validations, store the item metadata, allocate required resources, and update the Fabric item metadata cache with item relations and ETag. To learn more see [Microsoft Fabric item update flow](https://updateflow).
/// <br/>
/// <br/>This API should accept [SubjectAndApp authentication](https://subjectandappauthentication).
/// <br/>
/// <br/>##Permissions
/// <br/>Permissions are checked by Microsoft Fabric.
/// </remarks>
/// <param name="workspaceId">The workspace ID.</param>
/// <param name="itemType">The item type.</param>
/// <param name="itemId">The item ID.</param>
/// <param name="createItemRequest">The item creation request.</param>
/// <returns>Successfully created.</returns>
[Microsoft.AspNetCore.Mvc.HttpPost, Microsoft.AspNetCore.Mvc.Route("workspaces/{workspaceId}/items/{itemType}/{itemId}")]
public System.Threading.Tasks.Task CreateItem(System.Guid workspaceId, string itemType, System.Guid itemId, [Microsoft.AspNetCore.Mvc.FromBody] CreateItemRequest createItemRequest)
{

 return _implementation.CreateItemAsync(workspaceId, itemType, itemId, createItemRequest);
}

Kuormituksen toteutuksen käyttöliittymät

IItemLifecycleController ja IJobsController ovat liittymiä aiemmin mainituille "todellisille" toteutuksille. Ne määrittävät samat menetelmät, jotka rekisterinpitäjät toteuttavat.

Sopimusluokkien määritelmä

C#-sopimusluokat ovat luokkia, joita ohjelmointirajapinnat käyttävät.

Toteuttaminen

Koodin luonnin jälkeen seuraava vaihe on - ja IItemLifecycleController -IJobsControllerliittymien käyttöönotto. Toteuta nämä käyttöliittymät boilerplate-mallissa ItemLifecycleControllerImplJobsControllerImpl .

Esimerkiksi tämä koodi on CreateItem-ohjelmointirajapinnan toteutus:

/// <inheritdoc/>
public async Task CreateItemAsync(Guid workspaceId, string itemType, Guid itemId, CreateItemRequest createItemRequest)
{
 var authorizationContext = await _authenticationService.AuthenticateControlPlaneCall(_httpContextAccessor.HttpContext);
 var item = _itemFactory.CreateItem(itemType, authorizationContext);
 await item.Create(workspaceId, itemId, createItemRequest);
}

Kohteen hyötykuorman käsitteleminen

Useat ohjelmointirajapintamenetelmät hyväksyvät pyynnön leipätekstiin erilaisia "hyötykuormia", tai ne palauttavat hyötykuormat osana vastausta. Sisältää esimerkiksi CreateItemRequest -ominaisuuden creationPayload .

"CreateItemRequest": {
 "description": "Create item request content.",
 "type": "object",
 "additionalProperties": false,
 "required": [ "displayName" ],
 "properties": {
 "displayName": {
  "description": "The item display name.",
  "type": "string",
  "readOnly": false
 },
 "description": {
  "description": "The item description.",
  "type": "string",
  "readOnly": false
 },
 "creationPayload": {
  "description": "Creation payload specific to the workload and item type, passed by the item editor or as Fabric Automation API parameter.",
  "$ref": "#/definitions/CreateItemPayload",
  "readOnly": false
 }
 }
}

Näiden hyötykuorman ominaisuuksien tyypit määritetään Swagger-määrityksessä. Jokaiselle hyötykuormalle on oma tyyppinsä. Nämä tyypit eivät määritä mitään tiettyjä ominaisuuksia, ja ne sallivat minkä tahansa ominaisuuden sisältymisen.

Tässä on esimerkki -tyypistä CreateItemPayload :

"CreateItemPayload": {
 "description": "Creation payload specific to the workload and item type.",
 "type": "object",
 "additionalProperties": true
}

Luodut C#-sopimusluokat on määritetty muodossa partial. Niillä on sanasto, jonka ominaisuudet on määritetty.

Esimerkki:

/// <summary>
/// Creation payload specific to the workload and item type.
/// </summary>
[System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")]
public partial class CreateItemPayload
{
 private System.Collections.Generic.IDictionary<string, object> _additionalProperties;

 [Newtonsoft.Json.JsonExtensionData]
 public System.Collections.Generic.IDictionary<string, object> AdditionalProperties
 {
  get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary<string, object>()); }
  set { _additionalProperties = value; }
 }
}

Koodi voi käyttää tätä sanastoa ominaisuuksien lukemiseen ja palauttamiseen. Parempi tapa on kuitenkin määrittää tietyt ominaisuudet käyttämällä vastaavia tyyppejä ja nimiä. Voit määrittää ominaisuudet tehokkaasti käyttämällä partial luotujen luokkien esittelyä.

Esimerkiksi CreateItemPayload.cs tiedosto sisältää luokan täydentävän määritelmän CreateItemPayload .

Tässä esimerkissä määritys lisää -ominaisuuden Item1Metadata :

namespace Fabric_Extension_BE_Boilerplate.Contracts.FabricAPI.Workload
{
    /// <summary>
    /// Extend the generated class by adding item-type-specific fields.
    /// In this sample every type will have a dedicated property. Alternatively, polymorphic serialization could be used.
    /// </summary>
    public partial class CreateItemPayload
    {
        [Newtonsoft.Json.JsonProperty("item1Metadata", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
        public Item1Metadata Item1Metadata { get; init; }
    }
}

Jos kuormitus kuitenkin tukee useita kohdetyyppejä, CreateItemPayload luokan on pystyttävä käsittelemään erityyppisiä luontikuormituksia yhdellä kohdetyypillä. Sinulla on kaksi vaihtoehtoa. Yksinkertaisempaa on määrittää useita valinnaisia ominaisuuksia, joista kukin edustaa eri kohdetyypin luomisen hyötykuormaa. Jokaisella pyynnöllä on sitten vain yksi näistä ominaisuusjoukoista luotavan kohdetyypin mukaan. Vaihtoehtoisesti voit ottaa käyttöön polymorfisen sarjoituksen, mutta tätä asetusta ei näytetä näytteessä, koska asetus ei tarjoa merkittäviä etuja.

Jos esimerkiksi haluat tukea kahta kohdetyyppiä, luokan määritystä on laajennettava seuraavan esimerkin tavoin:

namespace Fabric_Extension_BE_Boilerplate.Contracts.FabricAPI.Workload
{
    public partial class CreateItemPayload
    {
        [Newtonsoft.Json.JsonProperty("item1Metadata", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
        public Item1Metadata Item1Metadata { get; init; }

        [Newtonsoft.Json.JsonProperty("item2Metadata", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
        public Item2Metadata Item2Metadata { get; init; }
    } 
}

Muistiinpano

Asiakas luo kuormitukseen lähetetyn hyötykuorman. Se voi olla kohdeeditori iFrame tai Fabric Automation REST -ohjelmointirajapinta. Asiakas on vastuussa oikean hyötykuorman lähettämisestä ja kohdetyypin vastaavuudesta. Kuormitus vastaa tarkistamisesta. Fabric käsittelee tätä tietokuormaa läpinäkymättömänä objektina ja siirtää sen vain asiakkaalta työmäärään. Vastaavasti kuormituksen asiakkaalle palauttaman hyötykuorman osalta on kuormituksen vastuu ja asiakkaan vastuulla käsitellä tiedot oikein.

Esimerkiksi tämä koodi näyttää, miten Boilerplate-mallikohteen1 toteutus käsittelee tiedot:

protected override void SetDefinition(CreateItemPayload payload)
{
 if (payload == null)
 {
  Logger.LogInformation("No payload is provided for {0}, objectId={1}", ItemType, ItemObjectId);
  _metadata = Item1Metadata.Default.Clone();
  return;
 }

 if (payload.Item1Metadata == null)
 {
  throw new InvalidItemPayloadException(ItemType, ItemObjectId);
 }

 if (payload.Item1Metadata.Lakehouse == null)
 {
  throw new InvalidItemPayloadException(ItemType, ItemObjectId)
   .WithDetail(ErrorCodes.ItemPayload.MissingLakehouseReference, "Missing Lakehouse reference");
 }

 _metadata = payload.Item1Metadata.Clone();
}

Vianmääritys ja virheenkorjaus

Seuraavissa osioissa kuvataan käyttöönoton vianmääritys ja virheenkorjaus.

Tunnetut ongelmat ja ratkaisut

Hanki tietoja tunnetuista ongelmista ja niiden ratkaisemiseen liittyvistä tavoista.

Puuttuva asiakassalaisuus

Virhe:

Microsoft.Identity.Client.MsalServiceException: Määritysongelma estää todentamisen. Saat lisätietoja tarkistamalla virhesanoman palvelimelta. Voit muokata määritystä sovelluksen rekisteröintiportaalissa. Katso https://aka.ms/msal-net-invalid-client lisätietoja kohdasta .

Alkuperäinen poikkeus: AAD STS7000215: annettiin virheellinen asiakassalaisuus. Varmista, että pyynnössä lähetettävä salasana on asiakassalaisuuden arvo eikä asiakassalaisuuden tunnus, joka lisätään sovelluksen app_guid asetukseen.

Ratkaisu: Varmista, että appsettings.json on määritetty oikea asiakassalaisuus.

Virhe:

Microsoft.Identity.Client.MsalUiRequiredException: AAD STS65001: Käyttäjä tai järjestelmänvalvoja ei suostunut käyttämään sovellusta tunnuksella <example ID>. Lähetä vuorovaikutteinen valtuutuspyyntö tälle käyttäjälle ja resurssille.

Ratkaisu:

  1. Siirry kohdeeditorissa kipujen alareunaan ja valitse Siirry todennussivulle.

  2. Kirjoita Vaikutusalueet-kohtaan .default ja valitse sitten Hanki käyttöoikeustietue.

  3. Hyväksy tarkistus valintaikkunassa.

Kohteen luonti epäonnistuu kapasiteetin valinnan vuoksi

Virhe:

Prioriteetin paikka: Prioriteetin sijainnille ei ole ydinpalveluita. Vain name, guidja workload-name ovat käytettävissä.

Ratkaisu:

Käyttäjänä sinulla voi olla pääsy vain kokeiluversion kapasiteettiin. Varmista, että käytät kapasiteettia, johon sinulla on käyttöoikeus.

Tiedoston luontivirhe, jossa virhe on 404 (NotFound).

Virhe:

Uuden tiedoston luominen epäonnistui tiedostolle filePath: 'workspace-id'/'lakehouse-id'/Files/data.json. Vastauksen tilakoodi ei ilmaise onnistumista: 404 (NotFound).

Ratkaisu:

Varmista, että käytät Ympäristöösi sopivaa OneLake DFS -URL-osoitetta. Jos esimerkiksi käsittelet PPE-ympäristöä, muuta EnvironmentConstants.OneLakeDFSBaseUrlConstants.cs asianmukaiseen URL-osoitteeseen.

Virheenkorjaus

Kun teet eri toimintojen vianmäärityksen, voit määrittää koodin keskeytyskohtia käyttäytymisen analysoimiseksi ja virheenkorjaukseksi. Noudata seuraavia vaiheita tehokkaan virheenkorjauksen osalta:

  1. Avaa koodi kehitysympäristössäsi.
  2. Siirry asianmukaiseen toiminnonkäsittelijän funktioon (esimerkiksi OnCreateFabricItemAsync CRUD-toiminnoille tai päätepisteeseen lennonjohtajassa toimintoja varten execute ).
  3. Aseta keskeytyskohdat tietyille riveille, joilla haluat tarkastaa koodin.
  4. Suorita sovellus virheenkorjaustilassa.
  5. Käynnistä toiminto sen edustan alusta, jonka virheenkorjaus halutaan tehdä.

Virheenkorjaus keskeyttää suorittamisen määritetyissä keskeytyspisteissä, jotta voit tarkastella muuttujia ja suorittaa koodin läpi sekä tunnistaa ongelmia.

Näyttökuva malliohjelmasta, jossa on keskeytyskohtia virheenkorjausta varten.

Työtila

Jos olet muodostamassa taustaa mallikuormitusprojektiin, kohteesi on kuuluttava kapasiteettiin liittyvään työtilaan. Oletusarvoisesti Oma työtila -työtilaa ei ole liitetty kapasiteettiin. Muussa tapauksessa saatat saada seuraavassa näyttökuvassa näkyvän virheen:

Näyttökuva käyttöliittymästä, jossa nimetään mallikuormituskohde.

  1. Vaihda nimettyun työtilaan. Jätä työtilan oletusnimeksi Oma työtila.

    Näyttökuva käyttöliittymästä mallikuormituksen luomiseksi.

  2. Lataa mallikuormitus oikeasta työtilasta ja jatka testeillä:

    Näyttökuva käyttöliittymästä mallikuormituskohteen luomiseksi.

Osallistu

Suhtaudumme myönteisesti tähän projektiin osallistumiseen. Jos löydät ongelmia tai haluat lisätä uusia ominaisuuksia, toimi seuraavasti:

  1. Haaroja säilöön.
  2. Luo uusi haara ominaisuuttasi tai virheenkorjausta varten.
  3. Tee tarvittavat muutokset ja vahvista ne.
  4. Siirrä tekemäsi muutokset haarautumaan säilöön.
  5. Luo pull-pyyntö, joka sisältää selkeän kuvauksen muutoksistasi.