Apple Silicon(M2 MacBook Air)でAzure Functions Core Tools+Java言語でうまく動かなかった(未解決)

はじめに

先日、M2 MacBook Airを買い、色々とセットアップしました。 Apple Sillicon搭載マシンがでたのが2020年11月で、1年半以上経っていることもあって多くのツールはApple Silliconに対応していましたが、Azure Functionsのローカル実行用として使われるAzure Functions Core ToolsJavaではまだ未対応ということではまったので、ここでその内容を記します。

サンプル

Durable Functionsの動作検証のため、Quick Startにあるコードを実行しようとしました。すると、以下のエラーメッセージが出て起動できませんでした。

Azure Functions Core Tools
Core Tools Version:       4.0.4736 Commit hash: N/A  (64-bit)
Function Runtime Version: 4.8.1.18957

[2022-08-21T05:41:47.806Z] A host error has occurred during startup operation 'e87c7af2-7243-4df8-b9cd-142cac9bc1fb'.
[2022-08-21T05:41:47.806Z] Grpc.Core: Error loading native library. Not found in any of the possible locations: /Users/miyohide/.azure-functions-core-tools/Functions/ExtensionBundles/Microsoft.Azure.Functions.ExtensionBundle.Preview/4.2.1/bin/libgrpc_csharp_ext.arm64.dylib,/Users/miyohide/.azure-functions-core-tools/Functions/ExtensionBundles/Microsoft.Azure.Functions.ExtensionBundle.Preview/4.2.1/bin/runtimes/osx-arm64/native/libgrpc_csharp_ext.arm64.dylib,/Users/miyohide/.azure-functions-core-tools/Functions/ExtensionBundles/Microsoft.Azure.Functions.ExtensionBundle.Preview/4.2.1/bin/../../runtimes/osx-arm64/native/libgrpc_csharp_ext.arm64.dylib.
Value cannot be null. (Parameter 'provider')

> Task :azureFunctionsRun FAILED

Issue

色々と検索してみると、以下のIssueを見つけました。

github.com

このIssueに書かれているものによると、Javaに関しては以下の記述がありました。

Java: blocked because the Java worker only supports Java 8 & 11 and AFAIK Java itself doesn't support Apple Silicon until at least Java 17

JavaApple Siliconサポートは少なくともJava 17以降ということなので、Java版の直近の対応はちょっと難しそうですね...

やるとすれば、Azure上にWindows/Linux仮想マシンを立てて開発するか、言語を変えるかかと。