DenevCloud.AspNetCore.Services.Azure
0.1.3-preview.1
This is a prerelease version of DenevCloud.AspNetCore.Services.Azure.
There is a newer prerelease version of this package available.
See the version list below for details.
See the version list below for details.
dotnet add package DenevCloud.AspNetCore.Services.Azure --version 0.1.3-preview.1
NuGet\Install-Package DenevCloud.AspNetCore.Services.Azure -Version 0.1.3-preview.1
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="DenevCloud.AspNetCore.Services.Azure" Version="0.1.3-preview.1" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add DenevCloud.AspNetCore.Services.Azure --version 0.1.3-preview.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: DenevCloud.AspNetCore.Services.Azure, 0.1.3-preview.1"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install DenevCloud.AspNetCore.Services.Azure as a Cake Addin
#addin nuget:?package=DenevCloud.AspNetCore.Services.Azure&version=0.1.3-preview.1&prerelease
// Install DenevCloud.AspNetCore.Services.Azure as a Cake Tool
#tool nuget:?package=DenevCloud.AspNetCore.Services.Azure&version=0.1.3-preview.1&prerelease
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
DenevCloud.AspNetCore.Services.Azure
Easy to use and ready-to-go ASP.NET Core services for Azure
Usage / Sample
Startup.cs
public void ConfigureServices(IServiceCollection services)
{
services.AddDenevCloudAzure()
.UseVirtualMachines()
.UseKeyVaults()
.UseAzureDNS();
}
appsettings.json
"DenevCloud": {
"tenant_id": "tenant_id",
"subscription_id": "subscriptionId",
"VM_client_id": "VMclient_id",
"VM_client_sercet": "VMclient_sercet",
"VM_resource": "https://management.core.windows.net/",
"VM_resource_group": "VMResourceGroup",
"keyVault_client_id": "KeyVault_clientId",
"keyVault_client_secret": "KeyVault_clientSecret",
"keyVault_endpoint": "KeyVault_endpoint",
"DNS_client_id": "DNS_clientId",
"DNS_secret": "DNS_secret",
"DNS_resource_group": "DNS_resourceGroupName",
"DNS_zone_location": "DNS_ZoneLocation",
"DNS_zone_name": "DNS_zoneName"
}
Note: In KeyVault_endpoint you should enter only the endpoint name not the whole link (https://my-endpoint.vault.azure.net/ ⇒ KeyVault_endpoint : my-endpoint) Note: It's recommended to use different App Registration for each resource
Index.cshtml
@using DenevCloud.AspNetCore.Services.Azure.VirtualMachines
@using DenevCloud.AspNetCore.Services.Azure.VirtualMachines.NetworkInterfaces
@inject IVMManager vmManager
@inject INetworkInterfaceManager netManager
@{
ViewData["Title"] = "Home Page";
var vm = vmManager.GetVirtualMachine("Your_VM_Name");
}
<div class="text-center">
<h1 class="display-4">Welcome</h1>
<p>Name: @vm.Name</p>
<p>Location: @vm.Location</p>
<p>Public Ipv4: @netManager.GetListPublicIpv4(vm).First()</p>
<p>Public Ipv6: @netManager.GetListPublicIpv6(vm).First()</p>
<p>Private Ipv4: @netManager.GetListPrivateIpv4(vm).First()</p>
<p>Private Ipv6: @netManager.GetListPrivateIpv6(vm).First()</p>
<div>
<form class="form-inline" asp-action="SaveSecret" asp-controller="Home" method="post">
<div class="form-group">
<label class="mr-2">Secret Name</label>
<input class="form-control" name="SecretName" value="" />
</div>
<div class="form-group">
<label class="mr-2">Secret Value</label>
<input class="form-control" name="SecretValue" type="password" value="" />
</div>
<button class="btn btn-secondary" type="submit">Submit</button>
</form>
</div>
@if (ViewBag.SecretSaved == true)
{
<p class="text-success">Saved</p>
}
</div>
HomeController.cs
private readonly IKeyVaultManager keyVaultManager;
public HomeController(IKeyVaultManager keyVaultManager)
{
this.keyVaultManager = keyVaultManager;
}
[HttpPost("SaveSecret")]
public IActionResult SaveSecret(string SecretName, string SecretValue)
{
keyVaultManager.SetNewSecret(SecretName, SecretValue);
ViewBag.SecretSaved = true;
return RedirectToAction("Index");
}
List of available functionality
IVMManager
⇒ A set of Virtual Machine functionsINetworkInterfaceManager
⇒ A set of Network Interface functions including getting public and private IPv4 / IPv6IKeyVaultManager
⇒ A set of Key Vault functions
Note: All of the above include Async functionality too
Coming Soon
- Instead of appsettings.json , an option to use Azure Key Vault will be supported
- Azure Key Vault Manager (further improvement and set of functions)
- Azure Virtual Machines (further improvement and set of functions)
- Network Interfaces (further improvement and set of functions)
- Azure Analytics Workspace Manager (with special futures for IIS and Azure CDN Logs)
- Azure DNS Manager
Azure Configuration
Please visit github for more information.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 is compatible. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.1 is compatible. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
.NETStandard 2.1
- Azure.Identity (>= 1.4.1)
- Azure.Security.KeyVault.Secrets (>= 4.2.0)
- Microsoft.Azure.Management.Compute (>= 49.1.0)
- Microsoft.Azure.Management.Dns (>= 3.0.1)
- Microsoft.Azure.Management.Network (>= 20.5.0)
- Microsoft.Extensions.Configuration.Abstractions (>= 5.0.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 5.0.0)
- Microsoft.Extensions.Hosting (>= 5.0.0)
- Microsoft.Rest.ClientRuntime.Azure.Authentication (>= 2.4.1)
-
net5.0
- Azure.Identity (>= 1.4.1)
- Azure.Security.KeyVault.Secrets (>= 4.2.0)
- Microsoft.Azure.Management.Compute (>= 49.1.0)
- Microsoft.Azure.Management.Dns (>= 3.0.1)
- Microsoft.Azure.Management.Network (>= 20.5.0)
- Microsoft.Extensions.Configuration.Abstractions (>= 5.0.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 5.0.0)
- Microsoft.Extensions.Hosting (>= 5.0.0)
- Microsoft.Rest.ClientRuntime.Azure.Authentication (>= 2.4.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
0.1.5-preview.1 | 93 | 1/15/2024 |
0.1.3-preview.1 | 184 | 9/7/2021 |
0.1.2-preview.1 | 156 | 8/10/2021 |
0.1.1-preview.2 | 171 | 8/9/2021 |
0.1.1-preview.1 | 149 | 8/9/2021 |