当前位置: 首页 > 知识库问答 >
问题:

将 GraalVM 本机映像迁移到 AWS 引力子 2(Arm64) 处理器的问题

叶坚
2023-03-14

现有实施:

  • 为x86_64架构配置的所有Lambda。
  • 这些lambda将运行GraalVM编译的Native映像来执行一些功能。
  • 此本机映像的编译是使用native-maven-plugin(0.9.9)使用Maven完成的

要将Lambdas移动到Graviton2实例,请执行以下操作:-

> < li>

根据本文,我们将模板中的架构更改为“arm64”。这会导致以下错误:< code > '。/native-executable:无法执行二进制文件“

为了让它在基于arm64的处理器上工作,我们尝试为aarm64重新编译此java代码。以下是我做的一些事情:-

  1. 使用DeLaGuardo/setup-graalvm将Github上的graalvm设置更改为arm64 base,然后出现以下错误:无法执行二进制文件:Exec格式错误错误:进程完成,退出代码126。
  2. 已尝试Graalvm包安装

综上所述,“arm64”的简单架构值更改不足以在基于Graviton2的AWS Lambdas上运行本机映像

如果有人能帮助我从这个瓶颈中前进,我将不胜感激。

共有2个答案

池兴邦
2023-03-14

从您发布的错误来看,docker进程可能没有足够的资源来编译本机可执行文件。

我会仔细检查您的GitHub操作配置,并在可能的情况下添加更多内存。

如果您使用AWS运行时接口客户端作为解决方案的一部分,您将需要版本2.1.1。这是第一个支持aarch 64的版本。

<dependency>
  <groupId>com.amazonaws</groupId>
  <artifactId>aws-lambda-java-runtime-interface-client</artifactId>
  <version>2.1.1</version>
</dependency>
史修明
2023-03-14

从版本 21.0 开始,GraalVM 支持 arm64 https://www.graalvm.org/22.0/reference-manual/native-image/ARM64/。

    < li >对于github操作,仅将“amd64”更改为“arm64”是不行的,您还需要使用qemu仿真器 < li >不清楚您是如何获得github操作设置的,但是您可以从这里获得一些参考 < li >从错误中可以看出< code>mvn未安装

这里也有一些步骤,用于 aarch64 https://www.graalvm.org/22.0/docs/getting-started/linux-aarch64/

 类似资料:
  • 我正在使用OpenJDK 12中的Nashorn JS引擎。纳肖恩似乎遭到了反对。我正在寻找可用的替代方案。我找到了GraalVM,但我不确定这是不是最好的。如何从Java执行GraalVM JavaScript?你有什么例子吗? Nashorn用的是Java: 在Nashorn中,我创建了一个WrappedMongoDatabase,它扩展了AbstractJSObject。在那里,我添加了一些

  • 我正在尝试使用graalVM v20.0.0CE创建一个简单的hello world本地映像。 最初,我收到了一个“本机工具链”错误,但从“x86 Native Tools Command Prompt for VS2017”启动了一个命令行,我就克服了这个障碍。 现在的问题是一串链接器错误: java.lib(jni_util.obj):错误LNK2019:函数jni _打印字符串中引用了未解析

  • 在哪里可以找到使用 -H:配置文件目录设置的 GraalVM 配置文件的文档/模式

  • 我正在尝试用Dockers创建一个GraalVM本地映像。我已经创建了一个Micronaut项目,并成功创建了jar应用程序,并在docker中运行;此外,我已经用这个jar文件创建了一个GraalVM本机映像,现在可以运行这个应用程序,但我需要在docker中运行一个GraalVM本机映像,在论坛中寻找答案。我发现有必要在docker中构建本机映像。因此我尝试了这个docker文件: 它不会抛出

  • 我在这里将Micronaut应用程序作为Graalvm本地映像进行试用。

  • 我正在尝试将我的. jar项目转换为本地映像,因为我需要在不支持Java的设备中运行它。为此,我安装了GraalVM和所有必需的依赖项,本地映像构建工作完美(或者至少看起来是这样,因为它在过程中不会产生任何错误)。 我用于构建的命令是: /usr/lib/jvm/graalvm/bin/native image-jar-MyApp。jar MyApp——启用http——启用https——无回退——