我们有一个Azure应用程序服务Web应用程序,我们希望根据某些标准向外扩展.我已经看到,使用基于this question的"Microsoft.Azure.Management.Webites"包是可能的,该包早在2017年就被询问过了,但这些包现在已被弃用.现在在.NET中可以做到这一点吗?

推荐答案

我可以使用使用GitHub代码的新套餐Azure.ResourceManager.AppService来扩展我的应用程序服务计划.

感谢@azure-sdkdvbb的代码.

Note:- Use .NET 7.0 or higher for this code

下面的代码对我很有效:

100:

using System.Threading.Tasks;
using Azure.ResourceManager;
using Azure.ResourceManager.Models;
using Azure.ResourceManager.Resources;
using Azure.ResourceManager.AppService;
using Azure.ResourceManager.AppService.Models;
using Azure.Identity;
using Azure.Core;
using Azure;

namespace ConsoleApp1
{
    class Program
    {
        public static async Task Main()
        {

            TokenCredential credential = new DefaultAzureCredential();
            ArmClient client = new ArmClient(credential);


            string subscriptionId = "xxxxxxxxx-xxxx-xxxx-xxxxxxxx";
            string ResourceGroupName = "resourcegroupename";
            ResourceIdentifier resourceGroups = ResourceGroupResource.CreateResourceIdentifier(subscriptionId, ResourceGroupName);
            ResourceGroupResource resourceGroup = client.GetResourceGroupResource(resourceGroups);


            AppServicePlanCollection collection = resourceGroup.GetAppServicePlans();


            string name = "asp-vivekchatgpt";
            AppServicePlanData update_data = new AppServicePlanData(AzureLocation.EastUS)
            {
                Sku = new AppServiceSkuDescription()
                {
                    Name = "P2V3",
                    Tier = "Premium v3",
                    Capacity = 2,
                },
                Kind = "app",
            };
            ArmOperation<AppServicePlanResource> operation = await collection.CreateOrUpdateAsync(WaitUntil.Completed, name, update_data);
            AppServicePlanResource result = operation.Value;

            AppServicePlanData resourceData = result.Data;

            Console.WriteLine($"Succeeded on id: {resourceData.Id}");
        }
    }
}

100:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net7.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Azure.Identity" Version="1.10.2" />
    <PackageReference Include="Azure.ResourceManager" Version="1.7.0" />
    <PackageReference Include="Azure.ResourceManager.AppService" Version="1.0.2" />
  </ItemGroup>

</Project>

100:

Initial App Service Plan

enter image description here

After executing code:

enter image description here

Scaled Out App Service Plan

enter image description here

Csharp相关问答推荐

在包含空项的列表上使用具有断言T的摘要表

在. NET Core 8 Web API中,当为服务总线使用通用消费者时,如何防止IServiceProvider被释放或空?"

ASP.NET MVC中创建视图的过滤器

始终保留数组中的最后N个值,丢弃最老的

如何在C#中将对象[*,*]直接转换为字符串[*,*]?

在具有主构造函数的类中初始化属性时出现警告

C#.NET依赖项注入顺序澄清

具有单一导航属性的EF核心一对多关系

Take()方法如何与IAsyncEnumerable一起使用

在此系统上已禁用获取正在运行的脚本.&在ASP.NET Core Web API中

C#-VS2022:全局使用和保存时的代码清理

如何使用用于VS代码的.NET Maui扩展在我的iOS/Android设备或模拟器上进行调试?

当我将`ConcurentDictionary`转换为`IDictionary`时,出现了奇怪的并发行为

当try 测试具有协变返回类型的抽象属性时,类似功能引发System.ArgumentException

如何正确处置所有动态控件?

基于C#方法的EF核心过滤查询(缓冲与流)

根据优先级整理合同列表

在Unity C#中按键点击错误的参数

反序列化我以前使用System.Text.Json序列化的文件时出现异常

如何模拟一个返回OneOf IServiceA,IServiceB的方法?使用Moq