Code: Select all
import os
from dotenv import load_dotenv
load_dotenv()
api_key = os.getenv('Super_Private_API_key')
class MyClass:
def __init__(self, foo: str):
self.api_answer = _api_call(foo, api_key)
def _api_call(foo, key) -> str:
# Make API call with foo and api_key and convert to string
return string
< /code>
Und die App sieht aus wie: < /p>
import streamlit as st
import MyClass as mc
string = st.text_input(placeholder="put 'foo' or 'bar' here", label="input")
my_variable = mc.MyClass(string)
# Return the API answer
st.write(my_variable.api_answer)
< /code>
Das Setup wäre ein Ubuntu-Server mit einem Docker-Container. Der Behälter würde auch Ubuntu oder Alpine (für Lightweigth), Nginx und Python 3.12 enthalten. Ich würde das richtige Netzwerk für die Außenwelt einrichten. BR/> [*] Wenn der API-Key, der in einem .Env
Mit dem Ziel, kleine Apps zu erstellen, scheint es klüger, Nginx auf der Basis-Linux (Ubuntu) zu installieren und Alpinbehälter nur Python-Apps auszuführen und sie mit Nginx außerhalb des Behälters zu verbinden. Verbessert/schwächt dieser Ansatz die Sicherheit oder ist es gleicher Unterschied , wenn man bedenkt, dass ein isolierter Ansatz Securer fühlt.
Ich bin mir bewusst, dass es geheime Manager wie Vault oder Secret Manager gibt, aber für mich ist es einen Schritt nach dem anderen. Ich versuche auch, mich in die Mechanik und Sicherheiten /Schwachstellen der von mir verwendeten Tools einzutauchen. Do und Was ist nicht zu tun mit Tools, die Sie verwenden.