With these it helps If Step Functions don't support cross-region Lambda's (and it appears they don't) my idea would be to use a 'proxy-lambda' in the same region as the Step Function and within the proxy-lambda invoke the cross-region lambda. It's not ideal, you will have to handle pass-through and you will pay twice for the duration of the lambda (1x proxy 1x actual lambda) but it seems a lot easier than having all the elements in all regions.
this one helps. By "serverless", i hope u meant not starting & terminating instances manually everyday (or periodically). Option 1: Put the items in AWS SQS, launch an instance, which will process the item one by one and terminate after all items are done. Here adding the items to SQS and launching the instance can be automated, depending on the trigger point of how/where the item list is coming from.
Invoke a AWS Step functions by API Gateway and wait for the execution results
will help you I think the issue is that you have not configured source maps. When you run SAM, the code that actually invokes is dist/lambda-section/ConsumeSQS/index.js, ad even that is required through a wrapper (which is what you see when you stopOnEntry.)
With these it helps Thank you everyone for the input. @Michael-sqlbot's comment about the AWS client library defaulting to sending requests to the local region is what helped me find the solution. For Python, the library is boto3. Having read the docs it was not clear how to set the region. It was this blog post that provided the (simple) answer: