How to install the Schedule Blocking solution through Azion Marketplace
Overview
The Azion Schedule Blocking solution is a serverless solution available at Azion Marketplace.
This solutions allows you to control the access to your application based on a time schedule, according to your needs.
1. Getting the solution
To use the Schedule Blocking solution provided by Azion Marketplace, you have to:
- Log in to your Real-Time Manager (RTM) account.
- If you don’t have one yet, create an account visiting the sign-up page.
- On the upper-left corner of the page, select Products menu > Marketplace.
- Select the search box and type “schedule blocking” or browse through the cards to find the Schedule blocking solution.
- Once you’ve found the Schedule blocking card, select it to go to the solution page.
- On the solution page, look for the Subscribe for section on the bottom-right corner.
- Click the Get It Now button.
You’ll see a message indicating that your solution was successfully installed and is ready to use.
2. Using the solution
2.1 Setting up the Edge Firewall rule
To instantiate the Schedule Blocking solution, follow the steps:
- In the Products menu, select Edge Firewall in the SECURE section.
- Click the Add Rule Set button.
- Give an easy to remember name to your new rule.
- Select the domains you want to protect with the function.
- Turn the Edge Functions switch on.
- Click the Save button.
Done. Now you’ve instantiated the rule for your function.
2.2 Setting up the solution
To instantiate the Schedule Blocking solution, while still on the Edge Firewall page, select the Functions tab and follow these steps:
- Click the Add Function button.
- Give an easy to remember name to your instance.
- On the dropdown menu, select the Schedule Blocking function.
This action will load the function, showing a form with the source-code of the function and, just above it, two tabs: Code and Args.
By clicking on the Code tab, you’ll be able to navigate through the source-code, but not to change it. In the same box, there’s the Args tab, which is where you’ll pass the parameters you want to use with your solution.
The Args tab will load a JSON
file which 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:MM”, 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 a 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. |
Note that for
static_response
parameter inaction
, you can define the status code that will be used in the response, as well as set a custom HTML page that will be delivered to your users.
Click the Save button and you’re done. Your Edge Firewall solution is instantiated.
3. 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 and follow these steps:
- Click the New Rule button.
- Give a name to the rule.
- Select a criteria to run and catch the domain you want to run the solution on.
- Below, select a behavior to the criteria. In this case, it’ll be Run Function. Then, select the adequate Schedule Blocking function according to the name you gave it in the instantiate step.
- Click the Save button.
Done. Now the Schedule Blocking solution is running for every request made to the domain you indicated.
Didn’t find what you were looking for? Open a support ticket.