刘耀文

刘耀文

java开发者
github

Kaggleを使用して、httpサーバーをデプロイするために使用します😂

Kaggle を調べてみましたが、1 週間に 30 時間の無料 GPU 計算能力がありますが、jupyter notebook を使用して提供されています。私は Python 環境をノートブックで使用することに慣れていないので、アイデアを素早く実現するために単一のファイルのコードを使用することが適していると感じます。多階層のエンジニアリングコードにはコードの分割感がありますので、SSH で接続してみたいと思います。

実行可能な解決策#

ngrok を使用して Kaggle の SSH サーバーを公開するためのローカルネットワークトンネリングを使用します。以下はノートブックのセルコードです。

# 1. ngrokのインストールと設定
!pip install pyngrok
from pyngrok import ngrok

# ngrokの認証トークンを設定
ngrok.set_auth_token("your_auth_token")

# 2. SSHサービスの起動
!DEBIAN_FRONTEND=noninteractive apt-get install -y openssh-server
!mkdir -p /var/run/sshd

# SSHサービスの設定、rootログインを許可し、パスワード認証を有効にする
!echo "root:your_password" | chpasswd
!echo 'PermitRootLogin yes' >> /etc/ssh/sshd_config
!echo 'PasswordAuthentication yes' >> /etc/ssh/sshd_config
!service ssh start

# 3. ngrokを使用してSSHポートを公開
ssh_tunnel = ngrok.connect(22, "tcp")
print("SSH Tunnel:", ssh_tunnel.public_url)

# 4. ローカルSSH接続コマンドの出力
ssh_host, ssh_port = ssh_tunnel.public_url.replace("tcp://", "").split(":")
print(f"次のコマンドを使用してSSH経由で接続してください:\nssh root@{ssh_host} -p {ssh_port}")

制限事項

実行してみると、ngrok は TCP ポートを使用するためにクレジットカードまたはデビットカードのバインドが必要ですが、中国のカードでは確認できないようです。

HTTP プロキシサービスを使用して外部に出る

Kaggle 上の HTTP サービスを公開します。

%cd ../../
%cd kaggle
%ls
%cp -r input/testfilebox /my
%cd /my
%cd fcb-fronted
!npm  install
!npm run build
%cd ../
%pip install -r requirements.txt


# ngrokの認証トークンを設定
ngrok.set_auth_token("your token")

# 2. ngrokを使用してFastAPIサービスのHTTPポートを公開
http_tunnel = ngrok.connect(12345, "http")
print("Public URL:", http_tunnel.public_url)

!python main.py

この記事は Mix Space からの同期更新で、xLog にも掲載されています。
元のリンクは https://me.liuyaowen.cn/posts//fun/20240901and1


読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。