Step function integration with internal API using http task

0

Hello, Step functions now provides direct integration with 3rd party APIs instead of using lambdas for API invocation. I was able to integrate external API with Step function by following this article. https://docs.aws.amazon.com/step-functions/latest/dg/connect-third-party-apis.html.

But this is failing if integrated with internal API with an error like 'Unable to resolve domain 'internal api url here' to IpV4 address.

Does this mean internal APIs that are not publicly exposed can't be used? I wouldn't want to make this API public just to get the integration working or to set up an API gateway. Is there any other way than using lambda?

Thank you!

asked 10 months ago538 views
4 Answers
1
Accepted Answer

You are correct. HTTP tasks do not support private endpoints. To call thise endpoints, you will need to use a Lambda function that you attache to the VPC and let it make the call.

profile pictureAWS
EXPERT
answered 10 months ago
profile picture
EXPERT
reviewed 7 months ago
0

You can also use API Gateway with Private Integration

answered 9 months ago
  • API Gateway with private integration wouldn't work as the Step function will not be able to resolve the DNS.

  • Actually, this is another option. API Gateway has private or public endpoints, and also, public or private integrations (using VPC link). In this case the recommendation is to use an API Gateway with a Public endpoint, which can be accessed from EventBridge, and a private integration, using VPC Link, to the internal API.

  • Creating a public endpoint would no longer mean it is a private and defeats the whole purpose. I implemented this with lambda function attached to the VPC and invoking the private API from that.

0

API Gateway with private integration wouldn't work as the Step function will not be able to resolve the DNS.

answered 9 months ago
  • You could block external access to the API with a policy or IAM authentication. It works and it should have a lower latency, but a Lambda function is easier. And if you use Step Functions, probably latency is not a concern

0

There is now an easier way to accomplish this. We launched, "Amazon EventBridge and AWS Step Functions announce integration with private APIs" on Dec 1st. This will meet your needs. Jeff Barr covers it in his blog and we just did an AWS OnAir show, including a re:Post Live segment where we cover this question and use case. Check it out!

profile pictureAWS
EXPERT
answered a month ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions