Integrating Momento Cache with Fastly Compute@Edge
Compute@Edgeは、サーバーレスにコードをデプロイして実行するためのFastlyのプラットフォームです。
このチュートリアルでは、JavaScript SDK の example を見ていきます。このチュートリアルでは、Fastly Compute@Edgeプロジェクトを作成し、HTTP APIを介してMomento Cacheと対話し、データの取得、設定、削除を行います。
HTTP API は軽量で、Fastly が要求する以上の依存関係を必要とせず、標準の fetch
HTTP クライアントメソッドを使用することができます。ただし、get
、set
、delete
などの Momento API の基本的なサブセットしか提供されておらず、現在のところ AWS をクラウドプロバイダーとして使用している場合にのみ利用可能です。
前提条件
このアプリをデプロイして実行するには、以下のものが必要です:
- GitHub、GitLab、BitbucketなどのGitプロバイダーのアカウント。
- Fastlyのアカウント。
- 個人リポジトリにある Momento JavaScript SDK のコピーまたはフォーク。
Momentoをセットアップ
Git プロバイダーのアカウントに Momento JavaScript SDK のコピーまたはフォークがあれば、Momento コンソール を使って Momento 側を設定する準備が整います。コンソールにアカウントを作成するには、メールアドレスを入力するか、既存の Google または GitHub アカウントをリンクします。コンソールにログインしたら、ページの右上にある Create Cache
ボタンをクリックします:
AWSを使ってworker
というキャッシュを作成します。現在、Momento HTTP APIはAWSでのみサポートされていますが、サポートされているAWSリージョンであればどのリージョンでもキャッシュを作成することができます。
Create
ボタンを押すと、利用可能なキャッシュのリストに新しいworker
キャッシュが表示されます。
キャッシュを作成した地域もキャッシュのリストに表示されていることに注意してください。次のステップでMomento APIキーを生成する際に、同じリージョンを選択していることを確認する必要があります。
API keysページに移動し、キャッシュの作成に使用したクラウドプロバイダとリージョンを選択します。キャッシュはすでに作成されているので、ワーカーにキャッシュからの読み込みとキャッシュへの書き込みを許可し、キャッシュの作成や削除などのコントロールプレーン操作を許可しない、 fine-grained keyを使用します。これは特に、コントロールプレーンとデータプレーンの操作のセキュリティを別々に管理したい場合に便利です。
Fine-Grained Access Key
キータイプを選択し、ドロップダウンリストから Cache Name
として worker
を選択し 、Role Type
として readwrite
を選択する。Super User Key
はコントロールプレーンの操作を管理するために使用します。Momento 認証の詳細については こちら を参照してください。その後、Generate API Key
ボタンを押します。
API Key
と HTTP Endpoint
をコピーして安全な場所に保存します。後でFastly Compute@Edgeのデプロイメントを構成するために使用する必要があります。
Fastly のセットアップ
Fastlyアカウントを作成したら、Fastlyコンソールを使ってFastly側の設定を行います。ログインしたら、右上のアカウント名をクリックし、「アカウント」を選択します。サイドバーのPersonal profile
セクションで、API tokens
を選択します。右上のCreate Token
ボタンをクリックし、Fastlyの指示に従ってユーザーAPIトークンを作成します。このAPIトークンは必ず安全な場所に保存してください。