Exemple #1
0
        public static async Task <IActionResult> Run(
            [HttpTrigger(AuthorizationLevel.Function, "post", Route = null)] HttpRequest req,
            ILogger log)
        {
            //Say hi to the audience
            log.LogInformation("C# HTTP trigger function processed a request.");

            //Read POST Body and bind content to Model for further processing
            RequestBody requestBody = RequestHelper.GetRequestBody(req);

            //Get Azure Interface from Azure helper class
            IAzure azure = AzureConnectionHelper.GetAzureInterface(req, requestBody);

            //Setup Azure Container Instance
            try
            {
                //Define Container Instance based on request body input
                var containerInstance = await azure.ContainerGroups.Define(requestBody.ContainerInstanceName)
                                        .WithRegion(requestBody.AzureRegion)
                                        .WithExistingResourceGroup(requestBody.ResourceGroupName)
                                        .WithLinux()
                                        .WithPrivateImageRegistry(requestBody.RegistrySettings.LoginServer, requestBody.RegistrySettings.Username, requestBody.RegistrySettings.Password)
                                        .WithoutVolume()
                                        .DefineContainerInstance(requestBody.ContainerInstanceName)
                                        .WithImage(requestBody.ContainerSettings.DockerImageName)
                                        .WithExternalTcpPort(requestBody.ContainerSettings.ExternalTcpPort)
                                        .WithCpuCoreCount(requestBody.ContainerSettings.CpuCoreCount)
                                        .WithMemorySizeInGB(requestBody.ContainerSettings.MemorySizeInGb)
                                        .Attach()
                                        .WithDnsPrefix(requestBody.ContainerSettings.DnsPrefix)
                                        .WithTags(requestBody.BuildMetaData)
                                        .CreateAsync();

                //Return ACI name after creation
                return(new OkObjectResult(containerInstance.Name));
            }
            catch (Exception ex)
            {
                return(new BadRequestObjectResult(ex.Message));
            }
        }
        public static async Task <IActionResult> Run(
            [HttpTrigger(AuthorizationLevel.Function, "post", Route = null)] HttpRequest req,
            ILogger log)
        {
            log.LogInformation("C# HTTP trigger function processed a request.");

            //Read POST Body and bind content to Model for further processing
            RequestBody requestBody = RequestHelper.GetRequestBody(req);

            //Get Azure Interface from Azure helper class
            IAzure azure = AzureConnectionHelper.GetAzureInterface(req, requestBody);

            var AciInstances = await azure.ContainerGroups.ListByResourceGroupAsync(requestBody.ResourceGroupName);

            if (!isAciContainerPresent(AciInstances, requestBody.ContainerInstanceName))
            {
                return(new BadRequestObjectResult("Container instance not found!"));
            }
            await azure.ContainerGroups.DeleteByResourceGroupAsync(requestBody.ResourceGroupName, requestBody.ContainerInstanceName);

            return(new OkObjectResult("OK"));
        }