Deploy CLI: Azure

Deploy agents to Azure Container Apps using praisonai deploy

Deploy agents to Azure Container Apps using praisonai deploy run --type cloud --provider azure.

Minimal Azure Deploy

yaml
# agents.yaml
framework: praisonai
roles:
  assistant:
    role: Assistant
    goal: Help users
    tasks:
      help:
        description: Answer questions
        expected_output: A helpful reply

deploy:
  type: cloud
  cloud:
    provider: azure
    region: eastus
    service_name: my-agent
    resource_group: my-rg
    subscription_id: ${AZURE_SUBSCRIPTION_ID}   # required — deploy fails fast without it
bash
praisonai deploy run --file agents.yaml --type cloud --provider azure

That is the shortest path to a running Azure Container App — one YAML file, one command. Every az call under the hood targets AZURE_SUBSCRIPTION_ID; no az account set needed.

CLI

bash
pip install praisonai
export OPENAI_API_KEY="your-key"
export AZURE_SUBSCRIPTION_ID="your-subscription-id"

# Initialize with Azure deploy config
praisonai deploy init --file agents.yaml --type cloud --provider azure

# Check readiness
praisonai deploy doctor --provider azure

# Deploy to Azure
praisonai deploy run --file agents.yaml --type cloud --provider azure

Expected Output:

🚀 Starting deployment...

☁️  Deploying to Azure Container Apps
  • Subscription: your-subscription-id
  • Resource Group: praisonai-rg
  • Region: eastus
  • Service: praisonai-service

📦 Building and pushing Docker image...
🚀 Creating Container App...

✅ Deployment successful!
🔗 URL: https://praisonai-service.azurecontainerapps.io

Metadata:
  • provider: azure
  • region: eastus
  • resource_group: praisonai-rg
  • service: praisonai-service

Verify:

bash
curl https://praisonai-service.azurecontainerapps.io/health

Python

python
from praisonai.deploy import Deploy, DeployConfig, DeployType, CloudProvider
from praisonai.deploy.models import CloudConfig

config = DeployConfig(
    type=DeployType.CLOUD,
    cloud=CloudConfig(
        provider=CloudProvider.AZURE,
        region="eastus",
        service_name="praisonai-service",
        resource_group="praisonai-rg",
        subscription_id="your-subscription-id",
        cpu="0.5",
        memory="1024",
        min_instances=1,
        max_instances=10
    )
)

deploy = Deploy(config, "agents.yaml")
result = deploy.deploy()

print(f"URL: {result.url}")

agents.yaml

yaml
framework: praisonai
topic: helpful assistant
roles:
  assistant:
    role: Assistant
    goal: Help users with their questions
    backstory: You are a helpful assistant
    tasks:
      help_task:
        description: Answer user questions
        expected_output: Helpful response

deploy:
  type: cloud
  cloud:
    provider: azure
    region: "eastus"
    service_name: "praisonai-service"
    resource_group: "praisonai-rg"
    subscription_id: "${AZURE_SUBSCRIPTION_ID}"
    cpu: "0.5"
    memory: "1024"
    min_instances: 1
    max_instances: 10
    env_vars:
      OPENAI_API_KEY: "${OPENAI_API_KEY}"

Azure Cloud Config Options

FieldTypeDefaultDescription
providerstring–Must be azure
regionstringrequiredAzure region (e.g., eastus)
service_namestringrequiredContainer App name
resource_groupstringrequiredAzure resource group
subscription_idstringrequiredAzure subscription ID. Deployment fails fast if unset — every az command now targets this subscription via --subscription.
cpustring0.5CPU cores
memorystring1024Memory in MB
min_instancesint1Minimum instances
max_instancesint10Maximum instances
env_varsdictnullEnvironment variables

Check Deployment Status

bash
praisonai deploy status --file agents.yaml

Destroy Deployment

bash
praisonai deploy destroy --file agents.yaml --yes

Troubleshooting

IssueFix
Azure credentialsaz login or set env vars
Subscription ID missingdeploy/status/destroy now fail fast with "Please specify subscription_id in cloud config". Add subscription_id to the cloud: section of agents.yaml.
Deployed to wrong subscriptionFixed in v2.x. Every az command now includes --subscription <configured id>. If praisonai deploy doctor --provider azure reports an ambient-vs-configured mismatch, run az account set --subscription <configured id> or trust the doctor’s fix_suggestion — the deploy itself will still target the configured subscription.
Resource group missingCreate via Azure portal or CLI
Deploy failedRun praisonai deploy doctor --provider azure
Manual Azure CLI Validation (Optional)

These commands are for manual validation only. Use praisonai deploy for deployment.

bash
# Verify Azure CLI
az account show

# List Container Apps
az containerapp list --resource-group praisonai-rg

# View logs
az containerapp logs show --name praisonai-service --resource-group praisonai-rg

Related