I've deployed 3 instances as docker images:
design node on port: 10000 : works well, can access the UI
automation node on port: 11000: works well, can access the UI
api node on port: 12000: error 403 on browser
How can I configure my nodes to communicate with each other? I want my api calls to be handled by the api node, and not the design node. I got only error 403 on browser from the api node. And no logs.
Can anyone help me with this? I followed the documentation to create the images.
Hi @DrissiReda ,
API nodes themselves don't have a UI component, which is why you get an error trying to view them on your browser. The API Node can be administratively configured using the command-line or a REST API. An optional UI for using API nodes is the API Deployer.
Essentially you can use the API Deployer to:
Define “API infrastructures”, each pointing to either already-installed API node(s) or a Kubernetes cluster
Deploy new API services on an infrastructure (i.e. to all API nodes in the infrastructure)
Monitor the health and status of your API nodes
Manage the lifecycle of your APIs from development to production
More information about the concepts of API nodes can be found here: https://doc.dataiku.com/dss/latest/apinode/concepts.html
I'd also suggest going through this tutorial: https://knowledge.dataiku.com/latest/courses/o16n/real-time-deployment/deploy-realtime.html
Thanks, but it asks me for an api key for the api node, and also I don't know what a graphite prefix is. I generated the api key from the dss design node, following this:
The valid API keys are defined on the DSS side, not on the API node side. This ensures that all instances of an API node will accept the same set of client keys
After deploying I have these 2 errors, one is related to the api key, the second one I don't understand, is it also related to the api key and would be solved automatically?
The API key here is referring to an API key of the API Node, not the Design Node. For your API node, generate an admin key from the terminal: go to the API node’s DATA_DIR and use
./bin/apinode-admin admin-key-create and copy the key to place in the Admin API Key field.
This doc can provide more context and should help resolve both issues, but please do let me know if you come across anymore errors. Also, the graphite prefix is used for monitoring, if you don't plan on configuring monitoring it can be ignored.
Hi @DrissiReda ,
Sorry it's taken me a while to get back to you, I'm having a little trouble reproducing this behavior. I see that you have two API nodes running with one succeeding and one failing with the "Username may not be null" error. Can you try generating a new API key for the failing API node and place that in the Admin API key field that corresponds to that? If after creating a new API key still produces the same error, I would suggest creating a new support ticket at https://support.dataiku.com/support/home so that we can trouble shoot this. A file that would be useful to include in the ticket would be the JSON file corresponding to your infrastructure. This file can be found in <DATA_DIR>/config/api-deployer/infras. The <DATA_DIR> in this case would be the data directory of your Design Node, not API node.