Azure-AI_Foundry

Lesson 2: Project Management

Organize your AI work within projects β€” the development workspace inside a hub.

What is a Project?

A project is a workspace within a hub where you develop AI applications. Each project has its own:

πŸ“– Docs: Create a Project


Creating a Project

Portal

  1. Open ai.azure.com β†’ select your hub
  2. Click + New project
  3. Name the project and configure settings

Azure CLI

az ml workspace create \
  --name my-project \
  --resource-group rg-ai-foundry \
  --kind project \
  --hub-id /subscriptions/<sub>/resourceGroups/<rg>/providers/Microsoft.MachineLearningServices/workspaces/<hub>

Python SDK

from azure.ai.ml.entities import Project

project = Project(
    name="my-project",
    hub_id="<hub-resource-id>"
)
ml_client.workspaces.begin_create_or_update(project).result()

Project-Level RBAC

Azure AI Foundry uses Azure RBAC to control access. Key roles:

Role Permissions
Azure AI Developer Full project access β€” deploy models, run evaluations, manage data
Azure AI Inference Deployment Operator Deploy and manage endpoints only
Reader View-only access to project resources
Owner Full control including RBAC management
# Assign AI Developer role to a user for a specific project
az role assignment create \
  --assignee user@contoso.com \
  --role "Azure AI Developer" \
  --scope /subscriptions/<sub>/resourceGroups/<rg>/providers/Microsoft.MachineLearningServices/workspaces/<project>

πŸ’‘ Tip: Follow least-privilege principles β€” give developers the Azure AI Developer role, not Owner. Reserve Owner for platform admins.

πŸ“– Docs: RBAC for AI Foundry


Project Assets

Each project contains:

Asset Description
Models Deployed model endpoints (OpenAI, serverless, managed)
Data Uploaded datasets, documents for RAG
Evaluations Evaluation runs and results
Indexes AI Search indexes connected to the project
Flows Prompt Flow definitions
Endpoints Deployed model and flow endpoints
Compute Shared from hub or project-specific

Sharing Models Across Projects

Models deployed at the hub level can be shared across multiple projects. This is useful when:

To share a connection:

  1. Create the Azure OpenAI deployment in the hub
  2. All projects within that hub automatically inherit the connection

Project Quotas and Limits

Resource Limit
Projects per hub 100
Connections per project 50
Deployments per project Varies by model
Data assets per project 500

πŸ’‘ Tip: Use a naming convention like {team}-{app}-{env} for projects (e.g., platform-chatbot-dev). This makes it easy to find and manage projects at scale.


Best Practices

  1. One project per application per environment β€” myapp-dev, myapp-staging, myapp-prod
  2. Use project-level RBAC β€” don’t give everyone hub-level access
  3. Tag projects with team, application, cost-center
  4. Centralize shared models at hub level β€” deploy once, use everywhere
  5. Review quotas regularly β€” set up alerts before hitting limits