技術者ブログとして日ごろ取り組んでいる学習内容を紹介します。
以前作成したDiscordのBOTを置いていた場所が再構築されたことに伴い、新しいDenoに資産を移動させて欲しいというメールが届きました。
今回の資産移動により無料での24時間稼働が継続できたので、今回はそちらについてご紹介します。
Deno Deployとは
本題に入る前に、まずDeno Deployについて簡単に説明します。
Deno開発チームが提供するサーバーレスのエッジコンピューティングサービスです。
TypeScriptやJavaScriptで作成したアプリケーションを、サーバーの構築や運用を意識せずにインターネット上へ公開できるクラウドサービスです。手軽にWebアプリやAPI、Botなどをデプロイできることから、多くの開発者に利用されてきました。
Deno Deploy Classicからのメール内容
具体的にどんなメールが届いたかというと、以下のような内容でした。
・Deno Deploy Classicが2026/7/20で終了
・それ以降Classic上のアプリは停止
・自動移行はされない
・手動で新しいDeployへ移行する必要がある
作業前に確認すること
①Classicを使用しているか
メールが届いているので使用していることは当たり前ですが、念のためClassicを使用しているか確認します。
https://dash.deno.com
上記にプロジェクトがあれば移行対象です。

②GitHubにソースコードがあるか
確認事項
・GitHubリポジトリ
・mainブランチ
・最新コード

③環境変数を控える
Deno Deploy Classicの移動させるプロジェクトを開き、「setting(舞台設定)」→「Environment Variables(環境変数)」を確認します。
ここでDISCORD_TOKENなどでTOKENが設定されているはずです。このTOKENも自動移行されないので、このTOKENのメモを残してあるのであれば、そちらが移行時に必要になります。
もし制作時に登録してTOKENのメモを残していない場合はDiscord Developer Portalから新しいTOKENを再発行する必要があります。
画像はブラウザの日本語訳表示になっているため日本語が不自然になっていますが、設定していますね。
今回は制作時のメモにTOKENが控えてあったのでTOKEN再取得は割愛します。

余談ですが…現在のDiscordBotは動いていない状態です。
オフラインに居ます。

実際の移行手順
①新しいDeno Deployへログイン
https://console.deno.com/
②Organization作成
Organization name・Organization slugを入力して「Create Organization」を押下。
押下したら前のDeno Deployが開きましたが、その場合は新しいDeno Deploy画面を開いて作成したOrganizationが表示されているか確認。

③New app押下
Appsタブを押下し、Applicationsを開き、New appを押下します。

Create a new applicationsを開き、自分のGitHubを選んで、Botのリポジトリを選択する。
下にスクロールして、Deployment targetsを自分の選択。
今回は無料利用なのでManagedはFree Regionsを選択して、Create Appを押下。
※ここではGitHubにソースを上げていて、GitHubと新しいDenoDeploy連携をしている前提です。


ビルドが始まりますがKV Databaseの移行をしていないと失敗します。

プロジェクト内のDatabaseを押し、Databaseの画面を開いてKV Databaseの移行をする。
以下のページのDeno KVの+Attachを押下

provision new Deno KV押下でKV Databaseを作成する

作成したDatabaseが選択されていることを確認して「Attach Database」押下

Buildの画面に戻り「Retry Build」押下


④環境変数を設定する
新しいDeno DeployのOrganization内にあるSettingのEnvironment VariablesにDISCORD_TOKENを設定する

⑤Discordでオンラインになったか確認する
なりました。

これであとは動作確認をして、翌日も問題なく動いていれば完了です。
長くなりましたが、これで今回の技術者ブログを終わります。
次回の技術者ブログをお楽しみに。



















































