-
Notifications
You must be signed in to change notification settings - Fork 445
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support running on M1 Macs #2834
Comments
Does this work for .NET 6 and Azure function v4? if not any timeline when M1 support will be available? |
I never got it working but compiled the source myself to target arm64 and copied it over the top of the brew install location. Works lovely now. :) |
Adding related issue #2180 |
That is awesome to hear. If it is working fine, any idea when this will be available officially for Dotnet ? |
same, we really need this official M1 support too |
Any ETA on when this fix will be released? |
Do you have any tips how to do it? (to compile it on M1 mac) I've been trying to do it whole morning and couldn't move from starting point of adding
(I even tried to add osx-arm64 to |
I've changed the dotnet-install.sh as you have, and also updated the I had previously installed the core tools using brew, so I copied the output from |
OK. It is much simpler than I expected and only if I know what I know now:
It very nicely generated func which is universal 64bit mac executable
and did what you said:
(needed to remove Now I have different problem:
Path |
I've fixed above by copying And so far so good! :D It seems it'll hold water until official version does all of it. So far what I've seen it is not far off :) |
Hi folks, as @natdan mentioned, the work to support arm64 is already in the v4.x branch. It will be included in the next release of core tools (I would guess that's in the next few weeks, but don't hold me to that). It will be available through npm first and homebrew shortly thereafter That being said, each language worker still needs to individually add support for arm64. Node.js, .NET and .NET Isolated are already working. Python, PowerShell, and Java are not - see issues linked in the original comment above for more information. You'll have to check those threads for any timelines or workarounds |
I followed your steps along and I managed to build it. Now I got this error: Do you can help me to show what I am missing? |
No, I haven't done anything else. Maybe there's some mismatch of versions? |
I went through a lot of steps to try to get this working and figured I'd share what I did to fix this error
I found that I had an ARM build in copied it to
and all worked.. this gives me hope that somehow this can be fixed in a new release but I can't say I'm familiar enough with brew/python to provide more context |
Just a quick update - we did an initial release of arm support through npm a few weeks ago, but ran into issues because Apple Silicon has stricter requirements for arm64 binaries than x64 binaries. I'm waiting to update brew to reference the arm64 bits until I can fix that issue. I've got it fixed in a local branch, so it should make it into the next v4 release. Just to reiterate because a few people have commented about Python, that is tracked separately in this issue: Azure/azure-functions-python-worker#915 |
Thanks to the solution from @natdan I also got the build running locally.
|
@kentongray's solution worked for me. brew install [email protected]
/opt/homebrew/bin/pip3 install grpcio
cp /opt/homebrew/lib/python3.9/site-packages/grpc/_cython/cygrpc.cpython-39-darwin.so /opt/homebrew/Cellar/azure-functions-core-tools@4/4.0.4483/workers/python/3.9/OSX/X64/grpc/_cython/ |
Closing this issue as an arm64 version of core tools can now be installed using either brew or npm! 🎉 Thanks for your patience everyone and sorry for the delay. Please see the original comment at the top of this thread to track any remaining work for a particular language, which is handled by a separate feature team for that language. |
FYI, if you are using |
In case you've already updated, here's the new work-a-round... brew install [email protected]
brew uninstall azure-functions-core-tools@4
/opt/homebrew/bin/pip3 install grpcio
npm i -g [email protected]
cp /opt/homebrew/lib/python3.9/site-packages/grpc/_cython/cygrpc.cpython-39-darwin.so ~/.nvm/versions/node/v14.17.6/lib/node_modules/azure-functions-core-tools/bin/workers/python/3.9/OSX/X64/grpc/_cython/cygrpc.cpython-39-darwin.so |
@reubano How are you starting local functions server after uninstalling Azure Functions from brew? After doing so I've lost cli func app Edit: |
@kijewskimateusz |
@reubano Thank you. Indeed problem was on my side as Node was not being autostarted with new terminal instance. Once fixed (used NVM), everything started working. |
I followed the instruction mentioned by @reubano. I don't get the initial error anymore but I still can't run functions locally. I get "connect ECONNREFUSED 127.0.01:9091" error. I believe this is because func command does not run properly. There are three run commands related to azure functions in my ~/.nvm/versions/node/v14.17.6/bin which are azfun, azurefunctions, and func. Tried to run them in terminal and non of them did anything. There is no output and no error. Am I missing something here? EDIT: I figured out the issue. I'm Mac newbie and didn't realize that I suppose to run these command in Rosetta terminal. I installed node 14.17.6 and followed steps given by @reubeno in a Rosetta terminal and now I can run azure functions locally. I guess we have to wait for the ARM64 version of azure function core tool. |
so I am wondering whether this issue is open or closed. Is arm64 supported at the moment? |
@eduedix It's supported in core tools, but not every language yet. See the comment at the top to track each language (Python and Java are the only ones left with outstanding work): #2834 (comment) If you have comments/questions, the best place to follow up is on the language-specific github issue |
Hi All I think I've encountered some bizarre error why pyodbc works on my machine after installing through brew etc. but when I try to use it inside an azure function it doesn't work. Im running on python 3.9.10 on Latest Azure functions 3x I previously had a project running on 2x and just recently created a new one and installed core tools 3.x and 4.x to try it out. When I run a Any hints? This hasn't happened before. Python 3.9.10 Stack trace |
|
The above worked, upon running command:
OS Monterey 12.3.1 |
Update: Core tools support for M1 macs has been released for both npm and brew.
In addition to work on core tools, each language worker also needs to add support individually:
The text was updated successfully, but these errors were encountered: