Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
73 commits
Select commit Hold shift + click to select a range
c451201
New LP for Azure Cobalt and other updates.
Oct 1, 2024
4b6b863
Update running_mca.md
madeline-underwood Oct 1, 2024
3265923
Create Figures
madeline-underwood Oct 1, 2024
629b103
Create _index.md
madeline-underwood Oct 1, 2024
fdae6d9
Update _index.md
madeline-underwood Oct 1, 2024
6e88303
Adding figures
madeline-underwood Oct 1, 2024
3b0c0d3
Create _next-steps.md
madeline-underwood Oct 1, 2024
03cf5ab
Create _review.md
madeline-underwood Oct 1, 2024
9824a6e
Create datasets-and-training.md
madeline-underwood Oct 1, 2024
26142c2
Create inference.md
madeline-underwood Oct 1, 2024
3623e09
Create intro.md
madeline-underwood Oct 1, 2024
b2fe852
Create intro2.md
madeline-underwood Oct 1, 2024
f710520
Create model.md
madeline-underwood Oct 1, 2024
33d6037
Restructured figs file directory
madeline-underwood Oct 1, 2024
3ef615a
Editorial review
madeline-underwood Oct 1, 2024
88d9231
Merge pull request #1284 from madeline-underwood/patch-18
pareenaverma Oct 1, 2024
b9b32b8
Editorial review
madeline-underwood Oct 1, 2024
ffa9875
fixed fig ref
madeline-underwood Oct 1, 2024
4436fef
Editorial
madeline-underwood Oct 1, 2024
fbd36af
Editorial
madeline-underwood Oct 1, 2024
6242c61
Sysbox install guide
jasonrandrews Oct 1, 2024
7d539d6
Sysbox install guide
jasonrandrews Oct 1, 2024
43f54c3
Sysbox install guide
jasonrandrews Oct 2, 2024
f4bbae0
Merge pull request #1286 from jasonrandrews/new-content
jasonrandrews Oct 2, 2024
3f215c7
Editorial first-pass
madeline-underwood Oct 2, 2024
4bf84a5
Editorial tweaks.
madeline-underwood Oct 2, 2024
ac08141
Final checks
madeline-underwood Oct 2, 2024
27ba236
Update azure-cobalt.md
pareenaverma Oct 2, 2024
b50742e
Update _review.md
pareenaverma Oct 2, 2024
488f289
Update _index.md
pareenaverma Oct 2, 2024
b775bba
Update _index.md
pareenaverma Oct 2, 2024
dec487e
Update azure-cobalt.md
pareenaverma Oct 2, 2024
073b19c
Merge pull request #1283 from pbk8s/main
pareenaverma Oct 2, 2024
38bfe6e
Update _index.md
madeline-underwood Oct 2, 2024
75a244c
Editorial review
madeline-underwood Oct 2, 2024
48b1b6c
Update repository on PMUv3 Learning Path
jasonrandrews Oct 2, 2024
1db05b6
Merge pull request #1288 from jasonrandrews/review
jasonrandrews Oct 2, 2024
e0d492b
Merge branch 'ArmDeveloperEcosystem:main' into Cobalt
madeline-underwood Oct 3, 2024
3d6fc28
Editorial review
madeline-underwood Oct 3, 2024
8ba37f1
Fixed typo
madeline-underwood Oct 3, 2024
e3d7d5a
Editorial review
madeline-underwood Oct 3, 2024
90f6786
Editorial
madeline-underwood Oct 3, 2024
456a604
Final checks
madeline-underwood Oct 3, 2024
051549f
Editorial and developmental editing.
madeline-underwood Oct 3, 2024
d97846b
Merge branch 'Cobalt' of https://github.com/madeline-underwood/arm-le…
madeline-underwood Oct 3, 2024
546fa73
fixed incorrect URL
madeline-underwood Oct 3, 2024
5faf463
Expanded reference title.
madeline-underwood Oct 3, 2024
be1e8fe
Merge pull request #1287 from madeline-underwood/sysbox
jasonrandrews Oct 3, 2024
afeab7a
Editorial
madeline-underwood Oct 3, 2024
36159ef
Update Java information
jasonrandrews Oct 3, 2024
24be777
Merge pull request #1289 from jasonrandrews/review
jasonrandrews Oct 3, 2024
d3e5f6a
Final checks
madeline-underwood Oct 4, 2024
2cff6dd
AWS SAM CLI install guide
jasonrandrews Oct 4, 2024
d4b4529
Merge pull request #1285 from madeline-underwood/combined-LP
pareenaverma Oct 4, 2024
4213b83
slight verbiage change.
zachlasiuk Oct 4, 2024
a10ab43
Merge branch 'demo-functionality' of https://github.com/zachlas/arm-l…
zachlasiuk Oct 4, 2024
cfc0f1b
Fixed Hugo .135 error in accessing csv file
zachlasiuk Oct 4, 2024
f605755
Merge pull request #1292 from zachlasiuk/demo-functionality
jasonrandrews Oct 4, 2024
8b40da5
Merge branch 'ArmDeveloperEcosystem:main' into Cobalt
madeline-underwood Oct 5, 2024
0dd5a70
Update azure-cobalt.md
madeline-underwood Oct 5, 2024
43c481c
Update _index.md
madeline-underwood Oct 5, 2024
730b77d
Update background.md
madeline-underwood Oct 5, 2024
7d67d7d
Update azure-cobalt.md
madeline-underwood Oct 5, 2024
a2b29e9
singular/plural agreement fix
madeline-underwood Oct 5, 2024
fe68328
Merge branch 'Cobalt' of https://github.com/madeline-underwood/arm-le…
madeline-underwood Oct 5, 2024
cee47cd
Added vs code to wperf install guide
RonanSynnottArm Oct 7, 2024
05339af
Final checks
madeline-underwood Oct 7, 2024
1f1bccd
Merge pull request #1294 from RonanSynnottArm/winperf
pareenaverma Oct 7, 2024
f085228
Merge pull request #1290 from madeline-underwood/Cobalt
pareenaverma Oct 7, 2024
7e8644c
Merge pull request #1291 from jasonrandrews/review
pareenaverma Oct 7, 2024
8c1e02a
Editorial checks
madeline-underwood Oct 8, 2024
19ec29e
Final checks
madeline-underwood Oct 8, 2024
619417d
Merge pull request #1296 from madeline-underwood/AWS-SAM-CLI
pareenaverma Oct 8, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
File renamed without changes.
Binary file added content/install-guides/_images/sysbox.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
177 changes: 177 additions & 0 deletions content/install-guides/aws-sam-cli.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,177 @@
---
title: AWS SAM CLI

author_primary: Jason Andrews
minutes_to_complete: 15

official_docs: https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/what-is-sam.html

additional_search_terms:
- AWS
- Lambda

layout: installtoolsall
multi_install: false
multitool_install_part: false
test_maintenance: false
tool_install: true
weight: 1
---

The Amazon Web Services (AWS) Serverless Application Model (SAM) CLI is an open-source command-line tool that you can use to build, test, and deploy serverless applications. The SAM CLI provides a Lambda-like execution environment that lets you locally build, test and debug applications defined by AWS SAM templates. It is available for a variety of operating systems and Linux distributions, and supports the Arm architecture.

## Before you begin

Follow the instructions below to install and try the latest version of the AWS SAM CLI for Ubuntu on Arm.

Confirm you are using an Arm machine by running:

```bash { target="ubuntu:latest" }
uname -m
```

The output should be:

```output
aarch64
```

If you see a different result, you are not using an Arm-based computer running 64-bit Linux.

Running the AWS SAM CLI requires Docker. Refer to the [Docker](/install-guides/docker/) Install Guide for installation instructions. Confirm Docker is running before installing the SAM CLI.

Python and Python pip are also required to run the SAM CLI example.

To install, run the following command:

```console
sudo apt install python-is-python3 python3-pip -y
```

## Download and install the AWS SAM CLI

There are two options to install the SAM CLI, you can select your preferred method:

* From a zip file.
* Using the Python `pip` command.

### Download and install from zip file

Use `wget`:

```bash
wget https://github.com/aws/aws-sam-cli/releases/latest/download/aws-sam-cli-linux-arm64.zip
unzip aws-sam-cli-linux-arm64.zip -d sam-install
sudo ./sam-install/install
```

### Install the SAM CLI using Python pip

```
sudo apt install python3-venv -y
python -m venv .venv
source .venv/bin/activate
pip install aws-sam-cli
```

### Confirm that the SAM CLI has been installed

```bash
sam --version
```

The version should be printed on screen:

```output
SAM CLI, version 1.125.0
```

## Example application

You can use the AWS SAM CLI to build and deploy a simple "Hello World" serverless application that includes the line `uname -m` to check the platform it is running on, by following these steps.

1. Create the project

Use the code below, adjusting the runtime argument if you have a different version of Python:

```console
sam init --runtime python3.12 --architecture arm64 --dependency-manager pip --app-template hello-world --name uname-app --no-interactive
```

2. Change to the new directory:

```console
cd uname-app
```

3. Modify the `hello_world/app.py` file to include the command `uname -m`

Use a text editor to replace the contents of the `hello_world/app.py` file with the code below:

```python
import json
import os

def lambda_handler(event, context):
"""Sample pure Lambda function

Parameters
----------
event: dict, required
API Gateway Lambda Proxy Input Format

Event doc: https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-lambda-proxy-integrations.html#api-gateway-simple-proxy-for-lambda-input-format

context: object, required
Lambda Context runtime methods and attributes

Context doc: https://docs.aws.amazon.com/lambda/latest/dg/python-context-object.html

Returns
------
API Gateway Lambda Proxy Output Format: dict

Return doc: https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-lambda-proxy-integrations.html
"""

ret = os.popen('uname -m').read()

return {
"statusCode": 200,
"body": json.dumps({
"message": ret,
# "location": ip.text.replace("\n", "")
}),
}
```

4. Build the application:

```console
sam build
```

5. Test the deployed application:

```console
sam local invoke "HelloWorldFunction" -e events/event.json
```

The output below shows the results from the command `uname -m` and the value of `aarch64` confirms an Arm Linux computer:

```output
Invoking app.lambda_handler (python3.12)
Local image was not found.
Removing rapid images for repo public.ecr.aws/sam/emulation-python3.12
Building image........................................................................................................................
Using local image: public.ecr.aws/lambda/python:3.12-rapid-arm64.

Mounting /home/ubuntu/uname-app/.aws-sam/build/HelloWorldFunction as /var/task:ro,delegated, inside runtime container
START RequestId: 7221da4d-346d-4e2e-831e-dcde1cb47b5b Version: $LATEST
END RequestId: 513dbd6f-7fc0-4212-ae13-a9a4ce2f21f4
REPORT RequestId: 513dbd6f-7fc0-4212-ae13-a9a4ce2f21f4 Init Duration: 0.26 ms Duration: 84.22 ms Billed Duration: 85 ms Memory Size: 128 MB Max Memory Used: 128 MB
{"statusCode": 200, "body": "{\"message\": \"aarch64\\n\"}"}
```

You are ready to use the AWS SAM CLI to build more complex functions and deploy them into AWS. Make sure to select `arm64` as the architecture for your Lambda functions.

77 changes: 70 additions & 7 deletions content/install-guides/java.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,13 @@ Below are some of the common methods to install Java. This includes both the Jav

Pick the one that works best for you.

## Install Java using the Linux package manager
{{% notice Note %}}
The Java Technology Compatibility Kit (TCK) is a test suite that verifies whether a Java implementation conforms to the Java SE Platform Specification. It's a crucial tool for ensuring that Java applications can run consistently across different platforms and implementations.

Check the [OCTLA Signatories List](https://openjdk.org/groups/conformance/JckAccess/jck-access.html) to see who has been granted access to the TCK.
{{% /notice %}}

## Can I install Java using the Linux package manager?

For distributions using `apt` - including Debian and Ubuntu:

Expand All @@ -55,7 +61,15 @@ sudo pacman -S jdk-openjdk
sudo pacman -S jre-openjdk
```

## Install Java using Amazon Corretto
## Can I install Java using Snap?

For Linux distributions with `snap` you can install Java using:

```console
sudo snap install openjdk
```

## How do I install Amazon Corretto?

Amazon Corretto is a no-cost distribution of the Open Java Development Kit (OpenJDK). It is maintained and supported by Amazon Web Services (AWS).

Expand All @@ -69,15 +83,64 @@ sudo apt-get update; sudo apt-get install -y java-21-amazon-corretto-jdk

More installation options for Corretto are available in the [Amazon Corretto 21 Guide for Linux](https://docs.aws.amazon.com/corretto/latest/corretto-21-ug/linux-info.html)

## Install Java using Snap
## How do I install the Microsoft Build of OpenJDK?

For Linux distributions with `snap` you can install Java using:
The Microsoft Build of OpenJDK is a no-cost, open source distribution of OpenJDK. It includes Long-Term Support (LTS) binaries for Java 11 and Java 17 and runs on Arm Linux.

{{% notice Note %}}
The Arm architecture is not available in the repositories for the `apt` package manager.
{{% /notice %}}

You can download a tar.gz file from [Download the Microsoft Build of OpenJDK](https://learn.microsoft.com/en-gb/java/openjdk/download)

For example:

```console
sudo snap install openjdk
wget https://aka.ms/download-jdk/microsoft-jdk-21.0.4-linux-aarch64.tar.gz
```

Extract the contents of the file:

```console
tar xvf microsoft-jdk-21.0.4-linux-aarch64.tar.gz
```

## Is there a way to install Java from the official website?
Move the contents to a directory of your choice:

```console
sudo mv jdk-21.0.4+7/ /usr/local
```

Set up environment variables to locate your installation:

```console
export JAVA_HOME=/usr/local/jdk-21.0.4+7
export PATH=$JAVA_HOME/bin:$PATH
```

Add the environment variables to your `~/.bashrc` file to set them permanently.

For more information about the available versions and supported platforms refer to [About the Microsoft Build of OpenJDK](https://learn.microsoft.com/en-gb/java/openjdk/overview).

## How do I install Eclipse Temurin from the Adoptium Working Group?

The Adoptium Working Group promotes and supports high-quality, TCK certified runtimes and associated technology for use across the Java ecosystem.

Eclipse Temurin is the name of the OpenJDK distribution from Adoptium.

To install Temurin on Ubuntu run:

```console
sudo apt install -y wget apt-transport-https gpg
wget -qO - https://packages.adoptium.net/artifactory/api/gpg/key/public | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/adoptium.gpg > /dev/null
echo "deb https://packages.adoptium.net/artifactory/deb $(awk -F= '/^VERSION_CODENAME/{print$2}' /etc/os-release) main" | sudo tee /etc/apt/sources.list.d/adoptium.list
sudo apt update
sudo apt install temurin-17-jdk -y
```

For more information about the available versions and supported platforms refer to [Temurin documentation](https://adoptium.net/docs/).

## How do I install Java from Oracle?

You can download Java from the [Oracle website](https://www.oracle.com/java/technologies/javase-downloads.html) and install it manually. Look for the files with ARM64 in the description.

Expand Down Expand Up @@ -159,7 +222,7 @@ javac 21.0.4

## Which version of Java should I use for Arm Linux systems?

It’s important to ensure that your version of Java is at least 11.0.9. There are large performance improvements starting from version 11.0.9. Since then, Java performance has steadily increased over time and newer versions will provide better performance.
For performance and security, it’s important to ensure that your version of Java is at least 11.0.12. Earlier versions lack significant performance improvements. Java performance has steadily increased over time and newer versions will provide better performance.

## Which flags are available for tuning the JVM?

Expand Down
Loading