How to install the Scheduled Blocking integration through Azion Marketplace
Azion Scheduled Blocking is a serverless integration available at Azion Marketplace.
This integration allows you to control the access to your application based on a time schedule, according to your needs.
Getting the integration
To use the Scheduled Blocking integration provided by Azion Marketplace, you have to:
- Access Azion Console > Marketplace.
- On the Marketplace homepage, select Scheduled Blocking card.
- Once the integration’s page opens, click the Install button, at the bottom-right corner of the page.
You’ll see a message indicating that your integration was successfully installed.
Configuring the integration
Setting up an edge firewall
To instantiate the Scheduled Blocking integration, follow the steps:
- In the Products menu, select Edge Firewall in the SECURE section.
- Click the + Edge Firewall button.
- Give an easy-to-remember name to your edge firewall.
- Turn the Edge Functions switch on.
- Click the Save button.
Done. Now you’ve instantiated the edge firewall for your function.
Setting up the integration
To instantiate the Scheduled Blocking integration, while still on the Edge Firewall page:
- Select the Functions Instances tab.
- Click the + Function Instance button.
- Give an easy-to-remember name to your instance.
- On the dropdown menu, select the Scheduled Blocking function.
- This action will load the Arguments tab.
The Arguments tab will load a JSON
file that looks like this:
{ "schedule": [ { "action": "deny", "execute_action_when": "in_interval", "interval": { "starts_at_utc": "00:00", "finishes_at_utc": "00:59" }, "week_days": { "Sun": true, "Mon": true, "Tue": true, "Wed": true, "Thu": true, "Fri": false, "Sat": true } }, { "action": "drop", "execute_action_when": "not_in_interval", "interval": { "starts_at_utc": "01:00", "finishes_at_utc": "20:00" }, "week_days": { "Mon": true, "Tue": true } }, { "action": "static_response", "execute_action_when": "in_interval", "static_response_data": { "status": 503, "message": "You can write a custom message here", "html": "<!-- Some HTML can go here -->" }, "interval": { "starts_at_utc": "20:00", "finishes_at_utc": "23:59" }, "week_days": { "Sun": true, "Sat": true } } ]}
The arguments that you can pass on this JSON
file are the following:
Atribute | Data Type | Description |
---|---|---|
action | String | Defines the action which the function will execute whenever a request matches the trigger criteria. Possible values are: Deny : it will close the request with an HTTP 403 Forbidden response.Drop : it will close the request without sending any response to the client.static_response : it will close the request with a static response to it. |
execute_action_when | String | Possible values are:in_interval not_in_interval When this argument is set to in_interval , the action will be executed whenever this function is called during the defined time interval.When this argument is set to not_in_interval , the action will be executed whenever this function is called out of the defined time interval. |
interval | Dictionary of Strings | Defines the time interval. The values must be in the format “HH”, based on a 24 hour clock. Note: This function is used in the UTC time zone. |
interval.starts_at_utc | String | Defines the starting time of the interval. |
interval.finishes_at_utc | String | Defines the ending time of the interval. |
week_days | Dictionary of Booleans | Defines the days of the week when the function will be executed. The indexes of the dictionary represent each day of the week. They are expected to use a 3 letter format (EEE), starting with capital case. If an invalid day is used, it’ll be ignored. Note that if a day is not present in the dictionary, it will be considered as false . |
static_response_data | Dictionary of Strings | Allows the customization of the static response page which will be returned whenever the action is set to static_response . |
static_response_data.status | Number | The status code used in the static response. |
static_response_data.message | String | Allows you to customize the message displayed in the static response page. |
static_response_data.html | String | Allows you to provide a custom HTML to be used when delivering the static response. |
- Click the Save button and you’re done. Your Edge Firewall integration is instantiated.
Setting up the Rules Engine
Finally, you must set up the Rules Engine to configure the behavior and the criteria to run the function.
Still in the Edge Firewall page.
- Select the Rules Engine tab.
- Click the + Rule Engine button.
- Give a name to the rule.
- Select a criteria to run and catch the domains that you want to run the integration on.
- Example: if
Host
matchesyourdomain.com
.
- Below, select a behavior to the criteria. In this case, it’ll be Run Function.
- Select the adequate function according to the name you gave it during the instantiation step.
- Click the Save button.
On the Console, you must now configure your domain so your edge firewall protects it.
- On the Products menu, select Domains.
- Click on the domain you want to protect with your Scheduled Blocking function.
- In the Settings section, click on the
Edge Firewall
selector and choose the edge firewall you created. - Click the Save button.
Done. Now the Scheduled Blocking integration is running for every request made to the domain you indicated.
Contributors