How to install the Process Request Data Into Headers integration from Azion Marketplace

Process Request Data Into Header is a serverless integration available at Azion Marketplace.

The purpose of this function is to stop a request whenever a request body field is empty. Using regex, the user can validate not only whether the field exists but also patterns. Additionally, they have the option to use any behavior they choose rather than a predetermined Deny Request.


Getting the integration

To install the integration, follow these steps:

  1. Access Azion Console > Marketplace.
  2. On the Marketplace homepage, select the integration’s card.
  3. Once the integration’s page opens, click the Install button.

You’ll see a message indicating that your integration was successfully installed.


Configuring the integration

Setting up an edge firewall

To instantiate the Process Request Data Into Header integration, follow the steps:

  1. On the Products menu, select Edge Firewall in the SECURE section.
  2. Click the + Edge Firewall button.
  3. Give an easy to remember name to your edge firewall.
  4. Select the domains you want to protect with the function.
  5. Turn the Edge Functions switch on.
  6. Click the Save button.

Done. Now you have instantiated the rule for your function.

Setting up the integration

To instantiate the Process Request Data Into Header integration, while still on the Edge Firewall page:

  1. Select the Functions Instances tab and follow these steps:
  2. Click the + Function Instance button.
  3. Give an easy to remember name to your instance.
  4. On the dropdown menu, select the Process Request Data Into Header function.
    • This function doesn’t address any argument on the Arguments tab, but you can test it using the curl command.

Curl command examples

Curl CommandRequest headers added by the function
curl https://mydomain/functionX-Body-Error": "CT001
curl -H "Content-Type: application /x-www-form-urlencoded" --request POST --data 'param1=v1&param2=v2&param3=v3' https://mydomain/functionX-Body-Param1": "v1"
X-Body-Param2": "v2"
X-Body-Param3": "v3"
curl -H "Content-Type: application /json" --request POST --data '{"my_data": {"abc": {"def": {"g": "xyz","h": false,"e": null}}, "number": 1}}' https://mydomain/functionX-Body-My-Data-Abc-Def-G": "xyz"
X-Body-My-Data-Abc-Def-H": "false"
X-Body-My-Data-Number": "1"
curl -H "Content-Type: text /plain" --request POST --data 'plain=text' https://mydomain /functionX-Body-Error": "CT002"
curl -H "Content-Type: application /json" --request POST --data '{"my_data": {"abc": {"def": {"g": "xyz","h": false,"e": null}}, "number": 1}' https://mydomain/functionX-Body-Error": "FD001"

Possible errors

This integration can trigger errors. In this case, the errors will be appended to a new header called X-Body-Error.

Error CodeDescription
CT001The header Content-Type is missing or it’s null
CT002The header Content-Type has a value, but it isn’t supported by the function
FD001The request body isn’t correctly formatted and couldn’t be decoded

Setting up the Edge Firewall Rules Engine

To finish, you have to set up the Rules Engine to configure the behavior and the criteria to run the integration.

Still in the Edge Firewall page:

  1. Select the Rules Engine tab.
  2. Click the + Rule Engine button.
  3. Name your rule something easy to remember.
  4. Select a criteria to run and catch the domain you want to run the integration on.
  5. Below, select a behavior to the criteria. In this case, it’ll be Run Function. Then, select the adequate Process Request Data Into Header function, according to the name you gave it in the instantiate step.
  6. Click the Save button.

Done. Now the Process Request Data Into Header integration is running for every request made to the domain you indicated.


Contributors