You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I am on a Mac arm64. I followed arm64 instructions and I still get
cannot execute binary file: Exec format error
Just out of curiosity, I tried with the amd64 instructions, still the same error. How is it even possible that I get the famous wrong architecture error on both?
This depend a lot on what you're invoking and how (and where too). What command are you trying to run?
If you have a zip Lambda function (not a container image function), it's better to use AWS SAM CLI (which uses this Lambda RIE behind the scenes), instead of manually use RIE directly.
README instructions are bad. They only compile for Linux (ELF), not macOS (Mach-O).
Running into the same issue while trying to run a Lambda function through Go's debugger. Looks like I'll have to clone, patch some files, then compile locally. :/
Thanks for the feedback, we are updating the Readme to make it clear the "installation" is only meant for downloading the binary to be used in a linux container.
@skyzyx I have the same problem, Could you share me, how do you solved it? Did you recompiled it to Match-O ? or Did you did some workaround?
Thanks in advance!
This software is low, low, low-fi. You need to do more work to make it into something genuinely useful.
In my Dockerfile, I download the latest release as part of building an image.
However, when I sent traffic to it, it only handles a single request at a time. So I had to configure my Docker Compose definition to spawn 10 copies of the image to simulate being able to send multiple requests at a time to a Lambda endpoint.
Then I discovered that this only exposes the low-level interface for how things work inside the Lambda service, not how you would expect it to work when you deploy your Lambda function and expose it with an endpoint. So I had to write a small, simple reverse-proxy app that receives my payload from curl or a web browser, then converts it into the format that RIE expects, let RIE execute my Lambda code, then capture its response and convert it back to what curl or a web browser would actually expect.
In the end, this works OK for a local development environment for working on Lambda functions, as long as you're comfortable with the low-level Lambda interfaces, Docker Desktop, Docker Compose, Go, and probably a few other things I can't recall now.
I'm also using a Traefik container to help route dev endpoints and ports around on my local machine to better simulate having the website and endpoints deployed. But this is entirely optional for whatever your use-case is.
Activity
valerena commentedon Sep 26, 2024
This depend a lot on what you're invoking and how (and where too). What command are you trying to run?
If you have a zip Lambda function (not a container image function), it's better to use AWS SAM CLI (which uses this Lambda RIE behind the scenes), instead of manually use RIE directly.
skyzyx commentedon Dec 27, 2024
README instructions are bad. They only compile for Linux (ELF), not macOS (Mach-O).
Running into the same issue while trying to run a Lambda function through Go's debugger. Looks like I'll have to clone, patch some files, then compile locally. :/
ricardocermeno commentedon Mar 26, 2025
@skyzyx I have the same problem, Could you share me, how do you solved it? Did you recompiled it to Match-O ? or Did you did some workaround?
Thanks in advance!
roger-zhangg commentedon Sep 16, 2025
Thanks for the feedback, we are updating the Readme to make it clear the "installation" is only meant for downloading the binary to be used in a linux container.
roger-zhangg commentedon Sep 16, 2025
Merged #152
skyzyx commentedon Sep 17, 2025
@ricardocermeno asked:
This software is low, low, low-fi. You need to do more work to make it into something genuinely useful.
In my Dockerfile, I download the latest release as part of building an image.
However, when I sent traffic to it, it only handles a single request at a time. So I had to configure my Docker Compose definition to spawn 10 copies of the image to simulate being able to send multiple requests at a time to a Lambda endpoint.
Then I discovered that this only exposes the low-level interface for how things work inside the Lambda service, not how you would expect it to work when you deploy your Lambda function and expose it with an endpoint. So I had to write a small, simple reverse-proxy app that receives my payload from curl or a web browser, then converts it into the format that RIE expects, let RIE execute my Lambda code, then capture its response and convert it back to what curl or a web browser would actually expect.
In the end, this works OK for a local development environment for working on Lambda functions, as long as you're comfortable with the low-level Lambda interfaces, Docker Desktop, Docker Compose, Go, and probably a few other things I can't recall now.
I'm also using a Traefik container to help route dev endpoints and ports around on my local machine to better simulate having the website and endpoints deployed. But this is entirely optional for whatever your use-case is.