Azure Functions をローカルで実行したい時、Azure Functions Core Tools が動かなかったので対応を行った際のメモ。

install

1
2
3
4
brew tap azure/functions
brew install azure-functions-core-tools@4
# if upgrading on a machine that has 2.x or 3.x installed:
brew link --overwrite azure-functions-core-tools@4

実行時のエラー

1
2
Microsoft.Azure.WebJobs.Script: Architecture Arm64 is not supported for language python.
Failed to initialize worker provider for: /opt/homebrew/Cellar/azure-functions-core-tools@4/4.0.4544/workers/python

対応

1
2
3
4
5
brew install python@3.9
brew uninstall azure-functions-core-tools@4
/opt/homebrew/bin/pip3 install grpcio
npm i -g azure-functions-core-tools@4.0.4483
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

ここから抜粋

私は Volta を使っているので、最後のコマンドを以下のように変更

1
2
cd /Users/sayakan/.volta/tools/image/packages/azure-functions-core-tools/lib/node_modules/azure-functions-core-tools/bin/workers/python/3.9/OSX/X64/grpc/_cython/
cp /opt/homebrew/lib/python3.9/site-packages/grpc/_cython/cygrpc.cpython-39-darwin.so .

終わりに

M1 がリリースされて結構経つのにいまだに対応していないのはなかなか不便だなーと感じている。。

References