Dela via


Navigera i exemplet Hello World anpassad resursprovider

 

Gäller för: Windows Azure Pack

En exempelprovider för anpassad resurs tillhandahålls som en del av Windows Azure Pack för Windows Server Developer Kit. Mer information finns i https://www.microsoft.com/en-us/download/details.aspx?id=41146.

Det Hello World exemplet innehåller både hanteringsportalen för administratörs- och hanteringsportalen för klientorganisationstillägg för användargränssnitt samt nödvändiga slutpunktsimplementeringar. Som ett MVC-ASP.NET webbplatsbaserat exempel används kontrollanter för att tillhandahålla slutpunktsdefinitioner som tillåter åtkomst till resursproviderresurserna. De används också för att göra anrop till Service Management API för hanteringsportalens användargränssnitt. Tilläggen för användargränssnittet för administratörsportalen för anpassad resursprovider uttrycks som vyer.

Windows Azure Pack Hello World Sample

Tillägg och kontrollanter för användargränssnitt

Exempelanvändargränssnittet innehåller tillägg för hanteringsportalen för administratörer och hanteringsportalen för klienter. Ett JavaScript-baserat användargränssnitt på klientsidan är tillgängligt via Internet Explorer. Exempelprojekten är:

Projekt

Beskrivning

Microsoft.WAP.Samples.HelloWorld.AdminExtension

Hanteringsportal för administratörstillägg

Microsoft.WAP.Samples.HelloWorld.TenantExtension

Hanteringsportal för klientorganisationstillägg

Mer information om hur användargränssnittet på klientsidan skapas finns i Windows Användargränssnittstillägg för Azure Pack Management Portal.

I dessa projekt används MVC-styrenheter på serversidan för att interagera med Service Management-API:et. Källfilerna för kontrollanten är

Fil

Beskrivning

HelloWorldAdminController.cs

Ger åtkomst till resursproviderns administratörsslutpunkt, AdminSettingsController.cs och andra i Microsoft.WAP.Samples.HelloWorld.API.

HelloWorldTenantController.cs

Ger åtkomst till resursproviderns klientslutpunkt, FileShareController.cs i Microsoft.WAP.Samples.HelloWorld.API.

Båda kontrollanterna använder HelloWorldClient.cs i Microsoft.WAP.Samples.HelloWorld.APIClient för att dirigera anrop via Service Management API till den Hello World anpassade resursprovidern.

Implementering av resursproviderns slutpunkt

De fyra REST-slutpunkterna implementeras som kontrollanter på serversidan i Hello World exempelprojekt, Microsoft.WAP.HelloWorld.API. Det finns 7 kontrollanter som representerar administratörs- och klientslutpunkterna. FileShareController.cs representerar klientslutpunkten medan de andra representerar administratörsslutpunkten.

Spårning Client-Side användartilläggsanrop till resursproviderslutpunkter

Den process genom vilken en användaraktivitet på klientsidans hanteringsportal resulterar i ett anrop till en av resursproviderns slutpunkter är följande. I det här exemplet använder en klientorganisation den anpassade hanteringsportalen för klientorganisationens användargränssnittstillägg till Snabbskapa en filresurs.

  1. Klientorganisationen väljer att snabbt skapa en filresurs. Bearbetad klientsida I HelloWorldTenantController.js resulterar detta i ett REST-anrop på serversidan till CreateFileShare i HelloWorldTenantController.cs

    public JsonResult CreateFileShare(string subscriptionId, FileShareModel fileShareToCreate)
        {
            this.apiClient.CreateFileShare(subscriptionId, fileShareToCreate.ToApiObject());
    
            return this.Json(fileShareToCreate);
        }
    
  2. CreateFileShare anropar CreateFileShare i api-klienthjälpklassen som definierats i HelloWorldClient.cs – Microsoft.WAP.Samples.HelloWorld.APIClient. Den här funktionen utför arbetet med att skapa URI:n för REST API-anropet Skapa filresursklient på den Hello World resursprovidern och göra anropet via Service Management-API:et.

    public void CreateFileShare(string subscriptionId, FileShare fileShareNameToCreate)
        {
            var requestUrl = this.CreateRequestUri(string.Format(CultureInfo.InvariantCulture, HelloWorldClient.FileShares, subscriptionId));
            this.Post<FileShare>(requestUrl, fileShareNameToCreate);
        }
    

    Den relativa sökvägen för REST-anropet Filresurser definieras i HelloWorldClient.FileShares. Definitionen för alla relativa sökvägar för administratörer och klientorganisationer finns i HelloWorldClient.cs.

  3. För att skapa den fullständiga URI:n behöver CreateRequestUri (HelloWorldClient) även den Service Management API-slutpunkt som hämtats från BaseEndpoint.

    private Uri CreateRequestUri(string relativePath, string queryString = "")
        {
            var endpoint = new Uri(this.BaseEndpoint, relativePath);
            var uriBuilder = new UriBuilder(endpoint);
            uriBuilder.Query = queryString;
            return uriBuilder.Uri;
        }
    

    BaseEndpoint tilldelas i klasskonstruktorn HelloWorldClient som skapas i klasskonstruktorn HelloWorldTenantController. rdfeEndpoint är SERVICE Management API-slutpunkten.

    public HelloWorldTenantController()
        {
            // 
            var rdfeEndpoint = new Uri(AppManagementConfiguration.Instance.RdfeUnifiedManagementServiceUri);
    
            var handler = new BearerMessageProcessingHandler();
    
            this.apiClient = new HelloWorldClient(rdfeEndpoint, handler);           
        }    
    
  4. Anropet till det här. Inlägget i CreateFileShare (HelloWorldClient.cs) skickar REST-anropet, med tillhörande begärandetext för filresursnamn, till Service Management-API:et som dirigerar anropet till den Hello World anpassade resursprovidern.

  5. Hello World-slutpunkten för den anpassade providerklienten tar emot anropet skapa filresurs i FileShareController.cs och utför lämplig åtgärd.

    [HttpPost]
    public void CreateFileShare(FileShare fileShare)
    {
        fileShares.Add(new FileShare
        {
            Id = fileShares.Count,
            FileServerName = fileShare.FileServerName,
            Name = fileShare.Name,
            SubscriptionId = fileShare.SubscriptionId,
            Size = fileShare.Size
        };
    }
    

Registrera Hello World-resursprovidern

Hello World-exempelprojektet Microsoft.WAP.Samples.HelloWorld.Setup tillhandahåller ett installationsprogram och en registrering för kundleverantören. Den dokumenteras i Distribuera ett Windows Azure Pack Management Portal-tillägg. Mer specifikt relaterat till att registrera en anpassad resursprovider är att registrera slutpunkterna med Windows Azure Pack. Hello World-exemplet använder ett Windows PowerShell skript (Register-ResourceProvider.ps1) för att registrera slutpunkterna för den anpassade resursprovidern. Detta ger Windows Azure Pack nödvändig information för att skicka REST-anrop via Service Management-API:et till den Hello World anpassade resursprovidern. I skriptet Windows Azure Pack PowerShell-cmdletar utföra registrering. Parametern rpSettings innehåller nödvändig slutpunktsinformation som används för att registrera slutpunkterna och annan konfigurationsinformation.

$rpSettings = @{
    'Name' = $rpName;
    'DisplayName' = 'Hello World';
    'InstanceDisplayName' = 'Hello World';
    'AdminForwardingAddress' = "http://$hostName/admin";
    'AdminAuthenticationMode' = 'Basic';
    'AdminAuthenticationUserName' = $userName;
    'AdminAuthenticationPassword' = $password;        
    'TenantForwardingAddress' = "http://$hostName/";
    'TenantAuthenticationMode' = 'Basic';
    'TenantAuthenticationUserName' = $userName;
    'TenantAuthenticationPassword' = $password;
    'TenantSourceUriTemplate' = '{subid}/services/helloworld/{*path}';
    'TenantTargetUriTemplate' = 'subscriptions/{subid}/{*path}';
    'NotificationForwardingAddress' = "http://$hostName/admin";
    'NotificationAuthenticationMode' = 'Basic';
    'NotificationAuthenticationUserName' = $userName;
    'NotificationAuthenticationPassword' = $password;
}

Write-Host -ForegroundColor Green "Create new resource provider '$rpName'..."
$rp = New-ResourceProvider @rpSettings
Write-Host -ForegroundColor Green "Created new resource provider '$rpName'."

Se även

Windows anpassade resursprovidrar för Azure Pack