tableau / TabPy

Execute Python code on the fly and display results in Tableau visualizations:
https://tableau.github.io/TabPy/
MIT License
1.56k stars 598 forks source link

Tabpy on Anaconda Enterprise running on kubernetes/Docker Container #490

Closed msacs09 closed 2 years ago

msacs09 commented 3 years ago

Trying to run Tabpy on Anaconda Enterprise running on Containers. We have installed Tabpy on a specific node, but the issue is how do we configure the hostname here on Tableau server, since the hostname of the session/container is not static and changes as the session restarts. Any advice on how to get this working on a container architecture ?

0golovatyi commented 3 years ago

@msacs09 For each new TabPy instance you need to configure it again with host, port, SSL settings and credentials.

msacs09 commented 3 years ago

@0golovatyi

In Jupyter notebook I can type the command !tabpy to start a service manually

image

How do i write this command !tabpy in the python.py script file, so that the script runs after environment is built?

Below is what i have, which results in error

#!/usr/bin/env python
# coding: utf-8
get_ipython().system('tabpy')

2021-02-19T18:12:05.940946708Z Traceback (most recent call last):
2021-02-19T18:12:05.940961808Z   File "Tabpy_startup.py", line 8, in <module>
2021-02-19T18:12:05.941006819Z     get_ipython().system('tabpy')
**2021-02-19T18:12:05.941018769Z NameError: name 'get_ipython' is not defined**
0golovatyi commented 3 years ago

@msacs09 I don't know what get_ipython() supposed to do and why it fails. It is not part of TabPy package.

ChairmanMa0 commented 3 years ago

@msacs09 I think there are a few ways you can solve this at a system architecture level. If you can add a self-hosted proxy, like nginx, in front of your container, you can use the proxy to hold a static IP or URL. You could also route through AWS - Route53 for a custom URL, or just API Gateway (cheaper). In this approach, you would need to right your start up script to update your AWS setup on where it needs to forward requests to. So hosting the proxy yourself is probably simpler.