public async Task Create()

in src/Azure.Deployments.Extensibility.Providers.ThirdParty/ContainerManager.cs [47:98]


    public async Task<Uri> Create(string containerName, string image, int externalPort, CancellationToken cancellation)
    {
        var containerAppName = $"{ContainerAppPrefix}{containerName}";
        var resourceGroup = armClient.GetResourceGroupResource(ResourceGroupResource.CreateResourceIdentifier(appSettings.ThirdPartySubId, appSettings.ThirdPartyRgName));

        var managedEnvironment = await TryGetManagedEnvironment(resourceGroup, ManagedEnvironmentName, cancellation);
        if (managedEnvironment is null)
        {
            var result = await resourceGroup.GetManagedEnvironments().CreateOrUpdateAsync(
                WaitUntil.Completed,
                ManagedEnvironmentName,
                new(appSettings.ThirdPartyRgLocation),
                cancellation);

            managedEnvironment = result.Value;
        }

        var containerApp = await TryGetContainerApp(resourceGroup, containerAppName, cancellation);
        if (containerApp is null)
        {
            var appData = new ContainerAppData(appSettings.ThirdPartyRgLocation)
            {
                ManagedEnvironmentId = managedEnvironment.Id,
                Configuration = new()
                {
                    Ingress = new()
                    {
                        External = true,
                        TargetPort = externalPort,
                    }
                },
                Template = new()
                {
                }
            };
            appData.Template.Containers.Add(new()
            {
                Image = image,
                Name = containerName,
            });

            var result = await resourceGroup.GetContainerApps().CreateOrUpdateAsync(
                WaitUntil.Completed,
                containerAppName,
                appData,
                cancellation);

            containerApp = result.Value;
        }

        return new Uri($"https://{containerApp.Data.LatestRevisionFqdn}");
    }