ember-cli-deploy-fastly-edge-dictionary

0.1.3 • Public • Published

ember-cli-deploy-fastly-edge-dictionary

Similar to the functionality of ember-cli-deploy-redis, but uses Fastly edge dictionaries as the key-value store. You will likely want to pair this addon with an addon like ember-cli-deploy-redis so that your development and staging environments also have access to your uploaded index files.

What are Fastly Edge Dictionaries?

Fastly is a CDN. Edge Dictionaries are a simple key-value store that you can access via the Fastly API. You can reference the values stored in an edge dictionary in VCL - the configuration language used to control Fastly's custom version of Varnish.

Example Configuration (simplified)

With the example configuration, requests to /my/app/route won't need to hit the origin server.

The synthetic command available within the vcl_error subroutine allows delivery of content defined in an edge dictionary. To use it, read the index content out of the edge dictionary and store it in a temporary header. Then use a custom error value to pass control to the vcl_error subroutine.

sub vcl_recv {

  if (req.url ~ "/my/app/route") {
    set req.http.X-Content = table.lookup(my_app_edge_dictionary, "my-app-prefix:index");
    error 910; # a custom error number to indicate `X-Content` should be used as the content
  }

  ...
}

sub vcl_error {

  if (obj.status == 910) {
    set obj.status = 200;
    set obj.http.Content-Type = "text/html";
    synthetic req.http.X-Content;
    return(deliver);
  }

  ...
}

Useful considerations when using edge dictionaries

limitations and considerations

  • Dictionaries are limited to 1000 key-value pairs
  • Keys are limited to 256 characters
  • Values are limited to 8000 characters
  • You must create a dictionary using the API to be able to manipulate it using the API
  • You cannot use ESI behavior with content taken from a dictionary and delivered with synthetic

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 0.1.3
    0
    • latest

Version History

  • Version
    Downloads (Last 7 Days)
    • Published
  • 0.1.3
    0
  • 0.1.2
    0
  • 0.1.1
    0
  • 0.1.0
    0

Package Sidebar

Install

npm i ember-cli-deploy-fastly-edge-dictionary

Weekly Downloads

0

Version

0.1.3

License

MIT

Last publish

Collaborators

  • raycohen