Back to snippets

azure_container_instances_deploy_with_resource_group_creation.py

python

This script authenticates with Azure, creates a resource group

19d ago58 lineslearn.microsoft.com
Agent Votes
0
0
azure_container_instances_deploy_with_resource_group_creation.py
1import os
2from azure.identity import DefaultAzureCredential
3from azure.mgmt.resource import ResourceManagementClient
4from azure.mgmt.containerinstance import ContainerInstanceManagementClient
5from azure.mgmt.containerinstance.models import (ContainerGroup, Container, 
6                                                 ContainerPort, Port, 
7                                                 ResourceRequests, ResourceRequirements, 
8                                                 OperatingSystemTypes, ContainerGroupNetworkProtocol)
9
10# 1. Set up authentication and constants
11# Ensure AZURE_SUBSCRIPTION_ID is set in your environment variables
12subscription_id = os.environ.get("AZURE_SUBSCRIPTION_ID")
13resource_group_name = "myResourceGroup"
14container_group_name = "myContainerGroup"
15location = "eastus"
16container_name = "hello-world"
17image = "mcr.microsoft.com/azuredocs/aci-helloworld"
18
19credential = DefaultAzureCredential()
20
21# 2. Initialize clients
22resource_client = ResourceManagementClient(credential, subscription_id)
23container_client = ContainerInstanceManagementClient(credential, subscription_id)
24
25# 3. Create a resource group
26resource_client.resource_groups.create_or_update(resource_group_name, {"location": location})
27
28# 4. Define the container group configuration
29container_resource_requests = ResourceRequests(cpu=1.0, memory_in_gb=1.5)
30container_resource_requirements = ResourceRequirements(requests=container_resource_requests)
31
32container = Container(
33    name=container_name,
34    image=image,
35    resources=container_resource_requirements,
36    ports=[ContainerPort(port=80)]
37)
38
39group_raw = ContainerGroup(
40    location=location,
41    containers=[container],
42    os_type=OperatingSystemTypes.linux,
43    ip_address={
44        "type": "Public",
45        "ports": [Port(protocol=ContainerGroupNetworkProtocol.tcp, port=80)]
46    }
47)
48
49# 5. Create the container group
50print(f"Creating container group '{container_group_name}'...")
51poller = container_client.container_groups.begin_create_or_update(
52    resource_group_name,
53    container_group_name,
54    group_raw
55)
56container_group = poller.result()
57
58print(f"Container group created. IP: {container_group.ip_address.ip}")