Connect API/automation nodes to my design nodes

DrissiReda
Level 4
Connect API/automation nodes to my design nodes

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.

0 Kudos
5 Replies
EliasH
Dataiker

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

DrissiReda
Level 4
Author

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

From this link: https://doc.dataiku.com/dss/latest/apinode/api/user-api.html#authentication

 

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?

 

 

Screenshot from 2021-06-29 11-30-50.png

0 Kudos
EliasH
Dataiker

Hi @DrissiReda,

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.
https://doc.dataiku.com/dss/latest/apinode/api-deployment-infrastructures.html

Best,
Elias

0 Kudos
DrissiReda
Level 4
Author

Thank you very much but I still got the username may not be null error

 

Screenshot from 2021-06-30 09-10-11.png

0 Kudos
EliasH
Dataiker

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.

Best, 
Elias 

0 Kudos