How to create and deploy a function with the Scaleway API
The Scaleway API allows you to create and manage all your Scaleway resources programmatically. Anything you can do through the Scaleway console (External link) can also be done through the API.
Refer to the Scaleway Developers website (External link) for more information on the Scaleway API.
Before you start
To complete the following actions, you must have:
- A Scaleway account logged into the console (External link)
- Owner status or IAM permissions allowing you to perform actions in the intended Organization
- A valid API key
- Installed curl (External link)
- Made your first request (External link) using the Scaleway API
-
Run the following command in your terminal to create a functions namespace:
curl -X POST \ -H "X-Auth-Token: $SCW_SECRET_KEY" \ -H "Content-Type: application/json" \ -d '{ "name": "<YOUR_NAMESPACE_NAME>", "project_id": "YOUR_PROJECT_ID" }' \ "https://api.scaleway.com/functions/v1beta1/regions/fr-par/namespaces"An output similar to the following displays:
{"id":"example-fb93-43e3-a036-7be69f1af7a1", "name":"your-namespace-name", "environment_variables":{}, "organization_id":"example-776f-4f65-a41e-6c5fc58b4076", "project_id":"example-c162-43f7-bb3e-1182e6f12342", "status":"pending", "registry_namespace_id":"", "error_message":null, "registry_endpoint":"", "description":"", "secret_environment_variables":[], "region":"fr-par"}% -
Run the following command to create a function:
curl -X PATCH \ -H "X-Auth-Token: $SCW_SECRET_KEY" \ -H "Content-Type: application/json" \ -d '{ "name": "<YOUR_FUNCTION_NAME>", "namespace_id": "<YOUR_NAMESPACE_ID>", "runtime": "<RUNTIME>" }' \ "https://api.scaleway.com/functions/v1beta1/regions/fr-par/functions"An output similar to the following displays:
{"id":"ef777a64-1f4e-4d43-8227-26927c7de057", "name":"your-function-name", "namespace_id":"example-fb93-43e3-a036-7be69f1af7a1", "status":"created", "environment_variables":{}, "min_scale":0, "max_scale":5, "runtime":"python310", "memory_limit":256, "cpu_limit":140, "timeout":"300s", "handler":"handler.handle", "error_message":null, "privacy":"public", "description":"", "domain_name":"namespaceg04rnwx-function-example.functions.fnc.fr-par.scw.cloud", "secret_environment_variables":[], "http_option":"enabled", "runtime_message":"", "build_message":null, "region":"fr-par"}% -
Create a zip file containing your function's code by following this procedure.
-
Upload your zip file using the Scaleway console or the Scaleway API.
-
Run the following command to deploy your function:
curl -X POST \ -H "X-Auth-Token: $SCW_SECRET_KEY" \ -H "Content-Type: application/json" \ -d '{}' \ "https://api.scaleway.com/functions/v1beta1/regions/fr-par/functions/<YOUR_FUNCTION_ID>/deploy"Your function is now being deployed.
-
Run the following command to call your function once it is deployed:
curl <YOUR_FUNCTION_ENDPOINT>