Open5

【Deta.Space】操作方法

yuk6rayuk6ra

導入

https://deta.space/docs/en/basics/cli

sudo apt install unzip

curl -fsSL https://get.deta.dev/space-cli.sh | sh

export PATH="$HOME/.detaspace/bin:$PATH"

source ~/.bashrc

ログイン

space login

アクセストークンの場所がすごくわかりにくいけど下の検索ボックスにある

yuk6rayuk6ra

アプリを一般公開したい場合

Spacefileファイルにpublic_routesを追記する。デォルトではプライベートのようで第三者がアクセスしようとするとログイン画面にリダイレクトされてしまう。

Spacefile
# Spacefile Docs: https://go.deta.dev/docs/spacefile/v0
v: 0
micros:
  - name: test
    ...
    public_routes:
    - "/*"
yuk6rayuk6ra

環境変数の設定

Spacefileファイルにenvを追記する。

# Spacefile Docs: https://go.deta.dev/docs/spacefile/v0
v: 0
micros:
  - name: test
     ...
      env:
        - name: API_KEY1
        - name: API_KEY2
        - name: API_KEY3
yuk6rayuk6ra

定期実行の設定

Spacefileファイルにactionsを追記する。

writeTextというidを設定し、5分毎に関数を実行する処理。

# Spacefile Docs: https://go.deta.dev/docs/spacefile/v0
v: 0
micros:
  - name: test
     ...
    actions:
      - id: "writeText"
        name: "Write Text"
        description: "Write something"
        trigger: "schedule"
        default_interval: "0/5 * * * *"
FastAPI
@app.post('/__space/v0/actions')
async def actions(request: Request):
    data = await request.json()
    event = data['event']
    if event['id'] == 'writeText':
        writeText()
        return {"message": "cleanup started successfully"}
    else:
        return {"message": "no action found for this event"}
    
def writeText():
    """ Function """