in util/deploy_moe.py [0:0]
def create_role_assignment(scope, role_name, principal_id):
try:
# Get credential
credential = DefaultAzureCredential()
# Instantiate the authorization management client
auth_client = AuthorizationManagementClient(
credential=credential,
subscription_id=client.subscription_id
)
roles = list(auth_client.role_definitions.list(
scope,
filter="roleName eq '{}'".format(role_name)))
assert len(roles) == 1
role = roles[0]
# Create role assignment properties
parameters = RoleAssignmentCreateParameters(
role_definition_id=role.id,
principal_id=principal_id,
principal_type="ServicePrincipal"
)
# Create role assignment
role_assignment = auth_client.role_assignments.create(
scope=scope,
role_assignment_name=str(uuid4()),
parameters=parameters
)
except ResourceExistsError:
print("Role assignment already exists.")
except Exception as e:
print(f"An error occurred during role assignment: {e}")