Använda API-versioner med .NET i Azure Stack hubbUse API version profiles with .NET in Azure Stack Hub

.NET SDK för Azure Stack Hub Resource Manager innehåller verktyg som hjälper dig att bygga och hantera din infrastruktur.The .NET SDK for the Azure Stack Hub Resource Manager provides tools to help you build and manage your infrastructure. Resurs leverantörer i SDK omfattar beräkning, nätverk, lagring, App Services och Key Vault.Resource providers in the SDK include Compute, Networking, Storage, App Services, and Key Vault. .NET SDK innehåller 14 NuGet-paket.The .NET SDK includes 14 NuGet packages. Du måste ladda ned dessa paket till din lösning varje gång du kompilerar projektet.You must download these packages to your solution every time you compile your project. Du kan dock specifikt Hämta vilken resurs leverantör du använder för 2019-03-01-hybrid- eller 2018-03-01-hybrid versionerna för att optimera cacheminnet för din app.However, you can specifically download which resource provider you'll use for the 2019-03-01-hybrid or 2018-03-01-hybrid versions in order to optimize the memory for your app. Varje paket består av en resurs leverantör, respektive API-version och den API-profil som den tillhör.Each package consists of a resource provider, the respective API version, and the API profile to which it belongs. API-profiler i .NET SDK möjliggör hybrid moln utveckling genom att hjälpa dig att växla mellan globala Azure-resurser och resurser på Azure Stack Hub.API profiles in the .NET SDK enable hybrid cloud development by helping you switch between global Azure resources and resources on Azure Stack Hub.

.NET-och API-versioner.NET and API version profiles

En API-profil är en kombination av resurs leverantörer och API-versioner.An API profile is a combination of resource providers and API versions. Använd en API-profil för att få den senaste, mest stabila versionen av varje resurs typ i ett resurs leverantörs paket.Use an API profile to get the latest, most stable version of each resource type in a resource provider package.

  • Använd den senaste profilen i paketen för att använda de senaste versionerna av alla tjänster.To make use of the latest versions of all the services, use the latest profile of the packages. Den här profilen är en del av Microsoft. Azure. Management NuGet-paketet.This profile is part of the Microsoft.Azure.Management NuGet package.

  • Använd något av följande paket om du vill använda de tjänster som är kompatibla med Azure Stack Hub:To use the services compatible with Azure Stack Hub, use one of the following packages:

    • Microsoft. Azure. Management. profilerna. Hybrid _ 2019 _ 03 _ 01 <ResourceProvider>.0.9.0-Preview. nupkgMicrosoft.Azure.Management.Profiles.hybrid_2019_03_01.<ResourceProvider>.0.9.0-preview.nupkg
    • Microsoft. Azure. Management. profilerna. Hybrid _ 2018 _ 03 _ 01 <ResourceProvider>.0.9.0-Preview. nupkgMicrosoft.Azure.Management.Profiles.hybrid_2018_03_01.<ResourceProvider>.0.9.0-preview.nupkg

    Se till att ResourceProvider -delen av NuGet-paketet ovan ändras till rätt Provider.Ensure that the ResourceProvider portion of the above NuGet package is changed to the correct provider.

  • Använd den senaste profilen för det aktuella NuGet-paketet om du vill använda den senaste API-versionen av en tjänst.To use the latest API version of a service, use the Latest profile of the specific NuGet package. Om du till exempel vill använda den senaste-API- versionen av själva beräknings tjänsten använder du den senaste profilen i Compute -paketet.For example, if you want to use the latest-API version of the Compute service alone, use the latest profile of the Compute package. Den senaste profilen är en del av Microsoft. Azure. Management NuGet-paketet.The latest profile is part of the Microsoft.Azure.Management NuGet package.

  • Om du vill använda vissa API-versioner för en resurs typ i en viss resurs leverantör använder du de speciella API-versioner som definierats i paketet.To use specific API versions for a resource type in a specific resource provider, use the specific API versions defined inside the package.

Du kan kombinera alla alternativ i samma program.You can combine all of the options in the same application.

Installera Azure .NET SDKInstall the Azure .NET SDK

  • Installera git.Install Git. Instruktioner finns i komma igång-installation av Git.For instructions, see Getting Started - Installing Git.

  • Information om hur du installerar rätt NuGet-paket finns i söka efter och installera ett paket.To install the correct NuGet packages, see Finding and installing a package.

  • Vilka paket som ska installeras beror på vilken profil version du vill använda.The packages that need to be installed depend on the profile version you want to use. Paket namnen för profil versionerna är:The package names for the profile versions are:

    • Microsoft. Azure. Management. profilerna. Hybrid _ 2019 _ 03 _ 01 <ResourceProvider>.0.9.0-Preview. nupkgMicrosoft.Azure.Management.Profiles.hybrid_2019_03_01.<ResourceProvider>.0.9.0-preview.nupkg

    • Microsoft. Azure. Management. profilerna. Hybrid _ 2018 _ 03 _ 01 <ResourceProvider>.0.9.0-Preview. nupkgMicrosoft.Azure.Management.Profiles.hybrid_2018_03_01.<ResourceProvider>.0.9.0-preview.nupkg

  • Information om hur du installerar rätt NuGet-paket för Visual Studio Code finns i följande länk för att hämta [NuGet Package Manager-instruktioner][].To install the correct NuGet packages for Visual Studio Code, see the following link to download the NuGet Package Manager instructions.

  • Om den inte är tillgänglig skapar du en prenumeration och sparar det prenumerations-ID som ska användas senare.If not available, create a subscription and save the subscription ID to be used later. Information om hur du skapar en prenumeration finns [i skapa prenumerationer på erbjudanden i Azure Stack Hub][].For information about how to create a subscription, see Create subscriptions to offers in Azure Stack Hub.

  • Skapa ett huvud namn för tjänsten och spara klient-ID och klient hemlighet.Create a service principal and save the client ID and the client secret. Information om hur du skapar ett huvud namn för tjänsten för Azure Stack hubb finns i [ge program åtkomst till Azure Stack Hub][].For information about how to create a service principal for Azure Stack Hub, see Provide applications access to Azure Stack Hub. Klient-ID kallas även för program-ID när du skapar ett huvud namn för tjänsten.The client ID is also known as the application ID when creating a service principal.

  • Kontrol lera att tjänstens huvud namn har rollen deltagare/ägare i din prenumeration.Make sure your service principal has the contributor/owner role on your subscription. Information om hur du tilldelar en roll till tjänstens huvud namn finns i [ge program åtkomst till Azure Stack Hub][].For information about how to assign a role to service principal, see Provide applications access to Azure Stack Hub.

FörutsättningarPrerequisites

Om du vill använda .NET Azure SDK med Azure Stack hubb måste du ange följande värden och sedan ange värdena med miljövariabler.To use the .NET Azure SDK with Azure Stack Hub, you must supply the following values, and then set the values with environment variables. Information om hur du ställer in miljövariabler finns i anvisningarna efter tabellen för ditt speciella operativ system.To set the environmental variables, see the instructions following the table for your specific operating system.

VärdeValue MiljövariablerEnvironment variables BeskrivningDescription
Klientorganisations-IDTenant ID AZURE_TENANT_ID Värdet för Azure Stack Hub [-klient-ID][].The value of your Azure Stack Hub [tenant ID][].
Klient-IDClient ID AZURE_CLIENT_ID Det app-ID för tjänstens huvud namn som sparades när tjänstens huvud namn skapades i föregående avsnitt i den här artikeln.The service principal app ID saved when the service principal was created in the previous section of this article.
Prenumerations-ID:tSubscription ID AZURE_SUBSCRIPTION_ID [Prenumerations-ID: t][] är hur du får åtkomst till erbjudanden i Azure Stack Hub.The [subscription ID][] is how you access offers in Azure Stack Hub.
Client Secret (Klienthemlighet)Client Secret AZURE_CLIENT_SECRET Tjänstens huvud program hemlighet sparades när tjänstens huvud namn skapades.The service principal app secret saved when the service principal was created.
Resource Manager-slutpunktResource Manager Endpoint ARM_ENDPOINT Se [slut punkten för Resource Manager för Azure Stack Hub][].See [the Azure Stack Hub Resource Manager endpoint][].
PlatsLocation RESOURCE_LOCATION Azure Stack hubbens plats.Location of Azure Stack Hub.

Följ anvisningarna i den här artikelnom du vill hitta klient-ID: t för Azure Stack Hub.To find the tenant ID for your Azure Stack Hub, follow the instructions in this article. Gör så här för att ställa in miljövariabler:To set your environment variables, do the following:

WindowsWindows

Använd följande format för att ställa in miljövariabler i en kommando tolk i Windows:To set the environment variables in a Windows command prompt, use the following format:

set Azure_Tenant_ID=Your_Tenant_ID

MacOS-, Linux-och UNIX-baserade systemMacOS, Linux, and Unix-based systems

I UNIX-baserade system använder du följande kommando:In Unix-based systems, use the following command:

export Azure_Tenant_ID=Your_Tenant_ID

Slut punkten för Resource Manager för Azure Stack HubThe Azure Stack Hub Resource Manager endpoint

Azure Resource Manager är ett hanterings ramverk som gör det möjligt för administratörer att distribuera, hantera och övervaka Azure-resurser.Azure Resource Manager is a management framework that enables administrators to deploy, manage, and monitor Azure resources. Azure Resource Manager kan hantera dessa uppgifter som en grupp, i stället för enskilda, i en enda åtgärd.Azure Resource Manager can handle these tasks as a group, rather than individually, in a single operation.

Du kan hämta metadatainformation från Resource Manager-slutpunkten.You can get the metadata info from the Resource Manager endpoint. Slut punkten returnerar en JSON-fil med den information som krävs för att köra koden.The endpoint returns a JSON file with the info required to run your code.

Tänk på följande:Note the following considerations:

  • ResourceManagerUrl i Azure Stack Development Kit (ASDK) är: https://management.local.azurestack.external/ .The ResourceManagerUrl in the Azure Stack Development Kit (ASDK) is: https://management.local.azurestack.external/.

  • ResourceManagerUrl i integrerade system är: https://management.region.<fqdn>/ , där <fqdn> är det fullständigt kvalificerade domän namnet.The ResourceManagerUrl in integrated systems is: https://management.region.<fqdn>/, where <fqdn> is your fully qualified domain name. Så här hämtar du de metadata som krävs: <ResourceManagerUrl>/metadata/endpoints?api-version=1.0 .To retrieve the metadata required: <ResourceManagerUrl>/metadata/endpoints?api-version=1.0.

Exempel-JSON-fil:Sample JSON file:

{
   "galleryEndpoint": "https://portal.local.azurestack.external:30015/",
   "graphEndpoint": "https://graph.windows.net/",
   "portal Endpoint": "https://portal.local.azurestack.external/",
   "authentication": 
      {
         "loginEndpoint": "https://login.windows.net/",
         "audiences": ["https://management.yourtenant.onmicrosoft.com/3cc5febd-e4b7-4a85-a2ed-1d730e2f5928"]
      }
}

Befintliga API-profilerExisting API profiles

  • Microsoft. Azure. Management. profiles. hybrid _ 2019 _ 03 _ . <ResourceProvider>.0.9.0-Preview. nupkg: senaste profilen byggd för Azure Stack Hub.Microsoft.Azure.Management.Profiles.hybrid_2019_03_01.<ResourceProvider>.0.9.0-preview.nupkg: Latest profile built for Azure Stack Hub. Använd den här profilen för att tjänsterna ska vara mest kompatibla med Azure Stack hubb, så länge du är på version 1904 eller senare.Use this profile for services to be most compatible with Azure Stack Hub, as long as you're on version 1904 or later.

  • Microsoft. Azure. Management. profilerna. hybrid _ 2018 _ 03 _ 01 <ResourceProvider>.0.9.0-Preview. nupkg: Använd den här profilen för att vara kompatibel med Azure Stack Hub för versioner 1808 eller senare.Microsoft.Azure.Management.Profiles.hybrid_2018_03_01.<ResourceProvider>.0.9.0-preview.nupkg: Use this profile for services to be compatible with Azure Stack Hub for versions 1808 or later.

  • Senaste: profilen består av de senaste versionerna av alla tjänster.Latest: Profile consisting of the latest versions of all services. Använd de senaste versionerna av alla tjänster.Use the latest versions of all the services. Den här profilen är en del av Microsoft. Azure. Management NuGet-paketet.This profile is part of the Microsoft.Azure.Management NuGet package.

Mer information om Azure Stack hubb och API-profiler finns i [Översikt över API-profiler][].For more information about Azure Stack Hub and API profiles, see the [Summary of API profiles][].

Användning av Azure .NET SDK API-profilAzure .NET SDK API profile usage

Använd följande kod för att instansiera en resurs hanterings klient.Use the following code to instantiate a resource management client. Liknande kod kan användas för att instansiera andra resurs leverantörs klienter (t. ex. beräkning, nätverk och lagring).Similar code can be used to instantiate other resource provider clients (such as Compute, Network, and Storage).

var client = new ResourceManagementClient(armEndpoint, credentials)
{
    SubscriptionId = subscriptionId;
};

credentialsParametern i den här koden krävs för att instansiera en klient.The credentials parameter in this code is required to instantiate a client. Följande kod genererar en autentiseringstoken av klient-ID och tjänstens huvud namn:The following code generates an authentication token by the tenant ID and the service principal:

var azureStackSettings = getActiveDirectoryServiceSettings(armEndpoint);
var credentials = ApplicationTokenProvider.LoginSilentAsync(tenantId, servicePrincipalId, servicePrincipalSecret, azureStackSettings).GetAwaiter().GetResult();

getActiveDirectoryServiceSettingsAnropet i koden hämtar Azure Stack Hub-slutpunkter från slut punkten för metadata.The getActiveDirectoryServiceSettings call in the code retrieves Azure Stack Hub endpoints from the metadata endpoint. Den anger miljövariablerna från det anrop som görs:It states the environment variables from the call that's made:

public static ActiveDirectoryServiceSettings getActiveDirectoryServiceSettings(string armEndpoint)
{
    var settings = new ActiveDirectoryServiceSettings();
    try
    {
        var request = (HttpWebRequest)HttpWebRequest.Create(string.Format("{0}/metadata/endpoints?api-version=1.0", armEndpoint));
        request.Method = "GET";
        request.UserAgent = ComponentName;
        request.Accept = "application/xml";
        using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
        {
            using (StreamReader sr = new StreamReader(response.GetResponseStream()))
            {
                var rawResponse = sr.ReadToEnd();
                var deserialized = JObject.Parse(rawResponse);
                var authenticationObj = deserialized.GetValue("authentication").Value<JObject>();
                var loginEndpoint = authenticationObj.GetValue("loginEndpoint").Value<string>();
                var audiencesObj = authenticationObj.GetValue("audiences").Value<JArray>();
                settings.AuthenticationEndpoint = new Uri(loginEndpoint);
                settings.TokenAudience = new Uri(audiencesObj[0].Value<string>());
                settings.ValidateAuthority = loginEndpoint.TrimEnd('/').EndsWith("/adfs", StringComparison.OrdinalIgnoreCase) ? false : true;
            }
        }
    }
    catch (Exception ex)
    {
        Console.WriteLine(String.Format("Could not get AD service settings. Exception: {0}", ex.Message));
    }
    return settings;
}

Med de här stegen kan du använda NuGet-paket för API-profiler för att distribuera programmet till Azure Stack Hub.These steps enable you to use the API profile NuGet packages to deploy your application successfully to Azure Stack Hub.

Exempel som använder API-profilerSamples using API Profiles

Du kan använda följande exempel som referens för att skapa lösningar med .NET och API-profilerna för Azure Stack Hub:You can use the following samples as a reference for creating solutions with .NET and the Azure Stack Hub API profiles:

Nästa stegNext steps

Läs mer om API-profiler:Learn more about API profiles:

  • Hantera API-versioner i Azure Stack hubbManage API version profiles in Azure Stack Hub

  • Resource providers API-versioner som stöds av profilerResource provider API versions supported by profiles

    [* klient-ID *]: ../operator/azure-stack-identity-overview.md [tenant ID]: ../operator/azure-stack-identity-overview.md [* prenumerations-ID *]: ../operator/service-plan-offer-subscription-overview.md#subscriptions [subscription ID]: ../operator/service-plan-offer-subscription-overview.md#subscriptions [* slut punkten för Azure Stack Hub Resource Manager *]: ../user/azure-stack-version-profiles-ruby.md#the-azure-stack-hub-resource-manager-endpoint [the Azure Stack Hub Resource Manager endpoint]: ../user/azure-stack-version-profiles-ruby.md#the-azure-stack-hub-resource-manager-endpoint [Översikt över API-profiler]: ../user/azure-stack-version-profiles.md#summary-of-api-profiles [Summary of API profiles]: ../user/azure-stack-version-profiles.md#summary-of-api-profiles [Test Project to Virtual Machine, vNet, resource groups, and storage account]: https://github.com/seyadava/azure-sdk-for-net-samples/tree/master/TestProject [Use Azure PowerShell to create a service principal with a certificate]: ../operator/azure-stack-create-service-principals.md [Run unit tests with Test Explorer.]: /visualstudio/test/run-unit-tests-with-test-explorer?view=vs-2017&preserve-view=true