Navigace v ukázce vlastního poskytovatele prostředků Hello World
Platí pro: Windows Azure Pack
Ukázkový vlastní poskytovatel prostředků je součástí sady Windows Azure Pack pro sadu Windows Server Developer Kit. Další informace naleznete v tématu https://www.microsoft.com/en-us/download/details.aspx?id=41146.
Ukázka Hello World poskytuje portál pro správu pro správce i portál pro správu pro rozšíření uživatelského rozhraní tenantů a také požadované implementace koncových bodů. Jako ukázka založené na webu ASP.NET MVC se používají řadiče, které poskytují definice koncových bodů, které umožňují přístup k prostředkům poskytovatele prostředků. Používají se také k volání rozhraní API pro správu jménem uživatelského rozhraní portálu pro správu. Rozšíření uživatelského rozhraní správce portálu pro správu vlastního poskytovatele prostředků se vyjadřují jako zobrazení.
Rozšíření a kontrolery uživatelského rozhraní
Ukázkové uživatelské rozhraní poskytuje rozšíření portálu pro správu pro správce a portál pro správu pro tenanty. Uživatelské rozhraní založené na javascriptu na straně klienta je dostupné prostřednictvím Internet Exploreru. Ukázkové projekty jsou:
Projekt |
Popis |
Microsoft.WAP.Samples.HelloWorld.AdminExtension |
Portál pro správu pro rozšíření administrators |
Microsoft.WAP.Samples.HelloWorld.TenantExtension |
Portál pro správu pro rozšíření tenantů |
Další informace o tom, jak se vytvoří uživatelské rozhraní na straně klienta, najdete v tématu Windows rozšíření uživatelského rozhraní portálu Management Portal sady Azure Pack.
V rámci těchto projektů se řadiče MVC na straně serveru používají k interakci s rozhraním API služby Service Management. Zdrojové soubory kontroleru jsou
Soubor |
Description |
---|---|
HelloWorldAdminController.cs |
Poskytuje přístup ke koncovému bodu správce poskytovatele prostředků, adminSettingsController.cs a dalším uživatelům v microsoft.WAP.Samples.HelloWorld.API. |
HelloWorldTenantController.cs |
Poskytuje přístup ke koncovému bodu tenanta poskytovatele prostředků, fileShareController.cs v Microsoft.WAP.Samples.HelloWorld.API. |
Oba kontrolery používají HelloWorldClient.cs v Microsoft.WAP.Samples.HelloWorld.APIClient ke směrování volání přes rozhraní SERVICE Management API do Hello World vlastního poskytovatele prostředků.
Implementace koncového bodu poskytovatele prostředků
Čtyři koncové body REST se implementují jako řadiče na straně serveru v ukázkovém projektu Hello World Microsoft.WAP.HelloWorld.API. Existují 7 kontrolerů představujících koncové body správce a tenanta. FileShareController.cs představuje koncový bod tenanta, zatímco ostatní představují koncový bod správce.
Trasování Client-Side volání rozšíření uživatele do koncových bodů poskytovatele prostředků
Proces, kterým má aktivita uživatele portálu pro správu na straně klienta za následek volání jednoho z koncových bodů poskytovatele prostředků, je následující. V tomto příkladu tenant používá vlastní portál pro správu pro rozšíření uživatelského rozhraní tenantů k rychlému vytvoření sdílené složky.
Tenant se rozhodne vytvořit sdílenou složku. Zpracování na straně klienta v HelloWorldTenantController.js výsledkem je volání serveru REST na CreateFileShare v HelloWorldTenantController.cs
public JsonResult CreateFileShare(string subscriptionId, FileShareModel fileShareToCreate) { this.apiClient.CreateFileShare(subscriptionId, fileShareToCreate.ToApiObject()); return this.Json(fileShareToCreate); }
CreateFileShare volá CreateFileShare v pomocné třídě klienta rozhraní API definovanou v HelloWorldClient.cs – Microsoft.WAP.Samples.HelloWorld.APIClient. Tato funkce provádí vytváření identifikátoru URI pro volání rozhraní REST API pro vytvoření sdílené složky u poskytovatele prostředků Hello World a volání prostřednictvím rozhraní API pro správu služeb.
public void CreateFileShare(string subscriptionId, FileShare fileShareNameToCreate) { var requestUrl = this.CreateRequestUri(string.Format(CultureInfo.InvariantCulture, HelloWorldClient.FileShares, subscriptionId)); this.Post<FileShare>(requestUrl, fileShareNameToCreate); }
Relativní cesta pro volání REST sdílených složek je definována v HelloWorldClient.FileShares. Definice pro všechny relativní cesty správce a tenanta je v HelloWorldClient.cs.
K sestavení kompletního identifikátoru URI potřebuje CreateRequestUri (HelloWorldClient) také koncový bod rozhraní API pro správu služeb získaný z BaseEndpointu.
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 je přiřazen v konstruktoru třídy HelloWorldClient, který je vytvořen v konstruktoru třídy HelloWorldTenantController. rdfeEndpoint je koncový bod rozhraní API pro správu služeb.
public HelloWorldTenantController() { // var rdfeEndpoint = new Uri(AppManagementConfiguration.Instance.RdfeUnifiedManagementServiceUri); var handler = new BearerMessageProcessingHandler(); this.apiClient = new HelloWorldClient(rdfeEndpoint, handler); }
Hovor na to. Post in CreateFileShare (HelloWorldClient.cs) odešle volání REST s doprovodným textem žádosti o název sdílené složky do rozhraní API pro správu služeb, které směruje volání do Hello World vlastního poskytovatele prostředků.
Koncový bod tenanta vlastního poskytovatele hello world obdrží volání vytvoření sdílené složky v souboru FileShareController.cs a provede příslušnou akci.
[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 }; }
Registrace poskytovatele prostředků Hello World
Ukázkový projekt Hello World Microsoft.WAP.Samples.HelloWorld.Setup poskytuje instalační program a registraci pro poskytovatele zákazníka. Je zdokumentovaný v nasazení rozšíření portálu pro správu sady Azure Pack Windows. Konkrétně související s registrací vlastního poskytovatele prostředků registruje koncové body v Windows Azure Packu. Ukázka hello world používá skript Windows PowerShell (Register-ResourceProvider.ps1) k registraci koncových bodů vlastního poskytovatele prostředků. Díky tomu Windows Azure Packu potřebné informace pro správné předávání volání REST prostřednictvím rozhraní API pro správu služeb Hello World vlastního poskytovatele prostředků. Ve skriptu Windows rutiny PowerShellu sady Azure Pack provádějí registraci. Parametr rpSettings poskytuje potřebné informace o koncovém bodu použité k registraci koncových bodů a dalších konfiguračních informací.
$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'."