Twilio CLIのAssetsプラグインをリリースしました
読む所要時間: 12 分
Twilio CLIは、Twilioの開発者にとって便利なツールです。 コマンドラインから手軽にTwilioのすべてのAPIにアクセスできるだけでなく、電話番号の管理や、ローカル環境でWebhook URLにワンステップでアクセスできるコマンド、プラグインシステムなど数多くの機能を提供します。CLIプラグインはCLIのコア機能を拡張し、Flexプラグインの構築と管理、アクセストークンの生成、Twilio Functionsを使った構築、そして今回のAssetsプラグインによるTwilio Assetsサービスへのアセットのアップロードなどを可能にしてくれます。
この記事では、Assetsプラグインの使い方をご紹介した上で、このプラグインを作った経緯を詳しくお話しします。
Assetsプラグインとは?
Assetsプラグインでは、画像や音声ファイルなどのアセットの保管先として使用できるAssetsサービスを作成し、アセットのアップロードや管理が行えます。作成したAssetsサービスはTwilioのアプリケーションで使用できます。たとえば、音声ファイルをアップロードして、Twilio Voiceを利用した音声通話中に<Play>
動詞で再生するファイルとして使用したり、MMSでユーザーに送信する画像やWhatsAppメディアメッセージをアップロードしたりすることができます。
Assetsプラグインの使い方
AssetsプラグインはTwilio CLIプラグインなので、まずはTwilio CLIのインストールが必要です。Node.jsがインストール済みあれば、以下のコマンドでCLIをインストールしてください。
詳細や別のインストール方法については、Twilio CLI Quickstartを参照してください。
CLIのインストールが完了したら、Twilioアカウントにログインします。
次にAssetsプラグインをインストールします。
プラグインの初期化
Assetsプラグインには、init
、upload
、list
の3つのコマンドがあります。まずはinit
コマンドを実行します。
これにより、Functions & Assets APIを呼び出して新しいサービスを作成し、後ほど使用するためサービスに関する詳細を保存します。このサービスは、アセットをアップロードまたはアクセスできる保管先として、プラグインで使用されます。
アセットのアップロード
これでプラグインの初期化が完了しました。まず1つ目のアセットをアップロードしましょう。
アセットのアップロードが完了すると、アセットのURLを含む詳細が表示されます。そのURLをブラウザで開き、アセットを確認およびダウンロードできます。
Protectedアセットのアップロード
Twilio Voiceの通話中に使用できるが、ブラウザーなどからアクセスできないアセットを使用したい場合、Protectedアセットとしてアップロードできます。 Protectedアセットは、すべてのTwilio webhookが実装しているX-Twilio-Signature
ヘッダーで署名されたリクエストにのみ応答します。このProtectedアセットをアップロードするには、--protected
フラグを使用します。
これまでにサービスにアップロードしたすべてのアセットのSID、URL、可視性などを示す一覧が表示されます。Twilio CLIプラグインが提供している機能ですので、任意のプロパティをコマンドに渡し情報を出力できます。
また、すべてのプロパティをJSONで出力できます。
プラグインの現状の機能については以上です。 ご意見ご要望などありましたら、Twilio Serverless ToolkitレポジトリにIssueをご投稿ください。またご自身で機能を作ってみたい方からのプルリクエストもお待ちしています。
なぜAssetsプラグインが必要なの?
Assetsプラグインは、Twilio Functions and Assets APIを抽象化して、静的なアセットを簡単にアップロードして利用できるようにするものです。
Twilio Functions and Assetsは、機能やアセットのコレクションを作成し、それらをまとめて完全なアプリケーションとしてデプロイする際に非常に便利です。Twilio Functions and Assets APIには以下の機能が含まれます。
- 下記の全てのコンセプトを包括するService
- テスト用と本番用で別々のサブドメインにアプリケーションを展開できるEnvironment
- FunctionとAssetリソース
- 関数やアセットの詳細を含むFunction versionとAsset version
- 関数からアクセスできるVariable
- 関数、アセット、変数、npm dependenciesのバンドルであるBuild
- BuildとEnvironmentの組み合わせで、関数やアセットを特定の環境で実行するためのDeployment
上記の機能はTwilio Funtions and Assets上で構築するツールやインテグレーションのための基盤となります。しかしTwilioで一般的なアプリケーションを構築する際には、これらのAPIを直接使用することはないでしょう。 Twilio Serverless Toolkitは、これらのAPIの上に構築されており、Twilio Runtimeにアプリケーションを構築してデプロイしたい場合に使用を推奨します。Twilio Serverless Toolkitはコンテンツのアップロード、ビルドの作成、ビルド環境へのデプロイなどのプロセスを抽象化するコマンドを提供します。
Assetsプラグインはこれらをさらに抽象化して、Assetサービスをコンテンツの保管先として手軽に使用できる機能です。アセットをアップロードする際には、関数や変数は必要ありません。twilio assets:upload FILE
コマンドが新しいアセットを作成し、コンテンツを新しいアセットバージョンにアップロードし、サービス内のすべてのアセットを新しいビルドに集め、そのビルドを環境にデプロイするため、開発者はこれらの作業を行う必要がありません。Assetsプラグインを使えば、これらの作業をすべて抽象化し、1つのコマンドでアセットをアップロード可能です。
Assetsプラグインを使用しない方が良い場合は?
Flexプラグインを作成する場合、Assetsプラグインを使用してプラグイン用のアセットをアップロードすることは推奨されません。代わりに、Flex Plugins CLIを使用してプラグインを使ってリリースする必要があります。
ぜひプラグインをお試しいただき、ご意見・ご感想をお寄せください。
新しいAssetsプラグインのご紹介は以上です。ぜひプラグインを使うことで、ターミナルからTwilioのインフラに静的アセットをアップロードしてみてください。またプラグインを利用してTwilioアプリケーションでアセットを使用したり、画像を共有してみてはいかがでしょうか。
Assetsプラグインはオープンソースとして開発されており、Twilio Serverless Toolkitの一部です。また、GitHubですべてのコードを確認することができます。バグレポートや機能要望がありましたら、Issueを作成、またはプルリクエストをお送りください。その他のフィードバックがありましたら、philnash@twilio.comまでご連絡ください。