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.
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.
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); }
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.
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); }
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.
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'."