Skip to content

Commit 39808b8

Browse files
Write every README note as a GitHub alert (#146)
The READMEs wrote their callouts five ways: GitHub alerts (> [!NOTE]), a bold marker on its own line (> **Note**), an inline bold marker (> **Note:** text), a plain **Note:** paragraph, and one blockquote with no marker. Every callout is now a GitHub alert, with the type that matches what it says: - IMPORTANT: the Mac notes, the SQL Server EULA notes, and the note that the Event Hubs and Event Grid sample needs cdn.functions.azure.com to resolve. - TIP: the lstk az hints, the Azure CLI --verbose and --debug hint, and the storage account key hint. - CAUTION: pinning an emulator image older than localstack-pro#8102 breaks every Function App deployment on arm64. - NOTE: the first-deployment timing notes, the AKS samples pointer, the Terraform differences, the Java app running on the host, and the commented-out Service Bus function. The text stays as it was, except the Core Tools note of function-app-storage-http, which named 4.2.2 and AZURE_FUNCTIONS_CORE_TOOLS_VERSION: the emulator's default is 4.15.1 (4.13.0 on arm64), set through LS_AZURE_FUNCTIONS_CORE_TOOLS_VERSION. Fixes SMF-992 Claude-Session: https://claude.ai/code/session_01NGfV8ZhpdZCZfbmfwWd3Sw Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
1 parent fb5cdf7 commit 39808b8

41 files changed

Lines changed: 73 additions & 69 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎README.md‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ container images Microsoft publishes for `amd64` alone, so there is no `arm64` i
9797

9898
**"emulated" means `amd64` emulation, and how well the samples run depends on the emulator.** The emulator never pins `--platform`, so on an `arm64` host Docker pulls the `amd64` image and runs it under whatever emulation the runtime provides. Where none is registered, such as GitHub's `ubuntu-*-arm` runners, the image cannot start at all, which is why CI schedules only the natively-supported samples on `arm64`.
9999

100-
> [!NOTE]
100+
> [!IMPORTANT]
101101
> **Macs with Apple silicon: turn on Rosetta.** Docker Desktop emulates `amd64` with Rosetta only when **Use Rosetta for x86_64/amd64 emulation on Apple Silicon** is on (Settings, **General**, with the **Apple Virtualization framework** as the Virtual Machine Manager; Docker VMM has no Rosetta), and with QEMU otherwise.
102102
> Every code deployment, Function Apps included, is built with Microsoft's Oryx build image, which is `amd64`-only ([microsoft/Oryx#2133](https://github.com/microsoft/Oryx/issues/2133) asks for `arm64`) and is a .NET app, and [.NET does not support QEMU](https://github.com/dotnet/core/blob/main/release-notes/8.0/supported-os.md): under QEMU that build can crash ([#143](https://github.com/localstack/localstack-azure-samples/issues/143)).
103103
> Microsoft [does not test or support SQL Server under emulation](https://learn.microsoft.com/azure/azure-sql/database/local-dev-experience-dev-containers) either.
@@ -108,7 +108,8 @@ them instead. The authoritative list lives in `ARM64_SAMPLE_DIRS` in [run-sample
108108
the CI matrix is generated from it, so adding a sample there is all that is needed to have it
109109
covered natively on both architectures.
110110

111-
> **Note:** Function Apps on `arm64` were fixed by
111+
> [!CAUTION]
112+
> Function Apps on `arm64` were fixed by
112113
> [localstack-pro#8102](https://github.com/localstack/localstack-pro/pull/8102) and work on the
113114
> current `localstack/localstack-azure:latest`. If you pin an older emulator image, expect every
114115
> Function App deployment to fail with a misleading `500 ... No route to host`: those images

‎samples/aci-blob-storage/python/terraform/README.md‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,8 @@ The [deploy.sh](deploy.sh) script first builds and pushes the Docker image to a
2323
1. [Azure Storage Account](https://learn.microsoft.com/en-us/azure/storage/common/storage-account-overview): Provides blob storage for vacation activity data.
2424
2. [Azure Container Instances](https://learn.microsoft.com/en-us/azure/container-instances/container-instances-overview): Runs the containerized Flask application with public IP and DNS label.
2525

26-
> **Note:** Key Vault is not included in the Terraform deployment as the Azure Terraform provider does not yet support LocalStack's Key Vault URI format. The storage connection string is passed directly to ACI as a secure environment variable.
26+
> [!NOTE]
27+
> Key Vault is not included in the Terraform deployment as the Azure Terraform provider does not yet support LocalStack's Key Vault URI format. The storage connection string is passed directly to ACI as a secure environment variable.
2728
2829
For more information on the sample application, see [ACI Blob Storage](../README.md).
2930

‎samples/api-management-function-app/python/README.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ The life of a request: the client calls `GET /inventory/items` on the gateway wi
5858
- [Bicep](https://learn.microsoft.com/en-us/azure/azure-resource-manager/bicep/install) (for the Bicep deployment)
5959
- A LocalStack account with a valid `LOCALSTACK_AUTH_TOKEN` (see the [Auth Token guide](https://docs.localstack.cloud/getting-started/auth-token/))
6060

61-
> [!NOTE]
61+
> [!IMPORTANT]
6262
> **Macs with Apple silicon**: the function app runs natively on arm64, but the emulator builds each deployment with Microsoft's Oryx build image, which Microsoft publishes for amd64 only ([microsoft/Oryx#2133](https://github.com/microsoft/Oryx/issues/2133) asks for arm64).
6363
> Docker Desktop runs that build under amd64 emulation: in Docker Desktop's settings, under **General**, select the **Apple Virtualization framework** as the Virtual Machine Manager and turn on **Use Rosetta for x86_64/amd64 emulation on Apple Silicon**.
6464
> Under QEMU, which Docker Desktop uses otherwise (Rosetta off, or Docker VMM, which has no Rosetta), the build can crash, because Oryx is a .NET app and [.NET does not support QEMU](https://github.com/dotnet/core/blob/main/release-notes/8.0/supported-os.md).

‎samples/eventhubs-eventgrid/python/README.md‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,13 +93,14 @@ whatever happened to be in the last batch.
9393
- Python 3.12+ with `src/producers/requirements.txt` installed.
9494
- `jq` and `zip`.
9595

96+
> [!IMPORTANT]
9697
> **The emulator must be able to resolve `cdn.functions.azure.com` from the function container.**
9798
> The Event Hubs trigger lives in the Functions extension bundle, which the host downloads on
9899
> every cold container. If the emulator's DNS server cannot forward external queries, the host
99100
> aborts and the trigger silently never fires. Starting the emulator with `DNS_ADDRESS=0`
100101
> sidesteps it.
101102
102-
> [!NOTE]
103+
> [!IMPORTANT]
103104
> **Macs with Apple silicon**: the function app runs natively on arm64, but the emulator builds each deployment with Microsoft's Oryx build image, which Microsoft publishes for amd64 only ([microsoft/Oryx#2133](https://github.com/microsoft/Oryx/issues/2133) asks for arm64).
104105
> Docker Desktop runs that build under amd64 emulation: in Docker Desktop's settings, under **General**, select the **Apple Virtualization framework** as the Virtual Machine Manager and turn on **Use Rosetta for x86_64/amd64 emulation on Apple Silicon**.
105106
> Under QEMU, which Docker Desktop uses otherwise (Rosetta off, or Docker VMM, which has no Rosetta), the build can crash, because Oryx is a .NET app and [.NET does not support QEMU](https://github.com/dotnet/core/blob/main/release-notes/8.0/supported-os.md).

‎samples/eventhubs/python/README.md‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ schema registry.
104104
- [Terraform](https://developer.hashicorp.com/terraform/downloads) or the Bicep CLI, for
105105
the alternative deployments
106106

107-
> [!NOTE]
107+
> [!IMPORTANT]
108108
> **Macs with Apple silicon**: this sample's dashboard is a web app deployed from code. The emulator builds it with Microsoft's Oryx build image and runs it on an Oryx runtime image, and Microsoft publishes both for amd64 only ([microsoft/Oryx#2133](https://github.com/microsoft/Oryx/issues/2133) asks for arm64).
109109
> On a Mac with Apple silicon they run only under Docker Desktop's amd64 emulation: in Docker Desktop's settings, under **General**, select the **Apple Virtualization framework** as the Virtual Machine Manager and turn on **Use Rosetta for x86_64/amd64 emulation on Apple Silicon**.
110110
> Under QEMU, which Docker Desktop uses otherwise (Rosetta off, or Docker VMM, which has no Rosetta), the sample is not expected to work: Oryx is a .NET app, and [.NET does not support QEMU](https://github.com/dotnet/core/blob/main/release-notes/8.0/supported-os.md).
@@ -130,7 +130,7 @@ bash scripts/run-pipeline.sh # run the end-to-end demo
130130

131131
Then open the dashboard URL printed at the end of the deployment.
132132

133-
> **Note**
133+
> [!NOTE]
134134
> The first deployment downloads the Azure Functions build image and core tools inside the
135135
> emulator, which can take several minutes. Later runs reuse them.
136136

‎samples/function-app-front-door/python/README.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ The life of a request: the client calls `GET /catalog/1` on the endpoint → the
6969
- [jq](https://jqlang.org/) and `zip`
7070
- A LocalStack account with a valid `LOCALSTACK_AUTH_TOKEN` (see the [Auth Token guide](https://docs.localstack.cloud/getting-started/auth-token/))
7171

72-
> [!NOTE]
72+
> [!IMPORTANT]
7373
> **Macs with Apple silicon**: the function app runs natively on arm64, but the emulator builds each deployment with Microsoft's Oryx build image, which Microsoft publishes for amd64 only ([microsoft/Oryx#2133](https://github.com/microsoft/Oryx/issues/2133) asks for arm64).
7474
> Docker Desktop runs that build under amd64 emulation: in Docker Desktop's settings, under **General**, select the **Apple Virtualization framework** as the Virtual Machine Manager and turn on **Use Rosetta for x86_64/amd64 emulation on Apple Silicon**.
7575
> Under QEMU, which Docker Desktop uses otherwise (Rosetta off, or Docker VMM, which has no Rosetta), the build can crash, because Oryx is a .NET app and [.NET does not support QEMU](https://github.com/dotnet/core/blob/main/release-notes/8.0/supported-os.md).

‎samples/function-app-managed-identity/python/README.md‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ The LocalStack emulator emulates the following services, which are necessary at
5050
- [Bicep extension](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-bicep), if you plan to install the sample via Bicep.
5151
- [Terraform](https://developer.hashicorp.com/terraform/downloads), if you plan to install the sample via Terraform.
5252

53-
> [!NOTE]
53+
> [!IMPORTANT]
5454
> **Macs with Apple silicon**: the function app runs natively on arm64, but the emulator builds each deployment with Microsoft's Oryx build image, which Microsoft publishes for amd64 only ([microsoft/Oryx#2133](https://github.com/microsoft/Oryx/issues/2133) asks for arm64).
5555
> Docker Desktop runs that build under amd64 emulation: in Docker Desktop's settings, under **General**, select the **Apple Virtualization framework** as the Virtual Machine Manager and turn on **Use Rosetta for x86_64/amd64 emulation on Apple Silicon**.
5656
> Under QEMU, which Docker Desktop uses otherwise (Rosetta off, or Docker VMM, which has no Rosetta), the build can crash, because Oryx is a .NET app and [.NET does not support QEMU](https://github.com/dotnet/core/blob/main/release-notes/8.0/supported-os.md).
@@ -84,7 +84,7 @@ Deploy the application to LocalStack for Azure using one of these methods:
8484

8585
All deployment methods have been fully tested with both user-assigned and system-assigned managed identities against Azure and the LocalStack for Azure local emulator.
8686

87-
> **Note**
87+
> [!NOTE]
8888
> When you deploy the application to LocalStack for Azure for the first time, the initialization process involves downloading and building Docker images. This is a one-time operation—subsequent deployments will be significantly faster. Depending on your internet connection and system resources, this initial setup may take several minutes.
8989
9090
## Test
@@ -232,7 +232,7 @@ You can use [Azure Storage Explorer](https://learn.microsoft.com/en-us/azure/sto
232232
233233
![Azure Storage Explorer](./images/azure-storage-explorer.png)
234234
235-
> **Note**
235+
> [!TIP]
236236
> When sending commands to an emulated storage account, make sure to use the primary key generated by the emulator itself. For convenience, if you're connecting to the storage account directly with Azure Storage Explorer, you can use the default Azurite password. For more details, see [Connect to Azurite with SDKs and tools](https://learn.microsoft.com/en-us/azure/storage/common/storage-connect-azurite).
237237
238238
## References

‎samples/function-app-managed-identity/python/bicep/README.md‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ param runtimeVersion = '3.13'
6060

6161
The [deploy.sh](deploy.sh) script automates the deployment of all Azure resources and the sample application in a single step. Before running the script, customize the variable values based on your needs. In particular, use the `MANAGED_IDENTITY_TYPE` variable to specify the type of managed identity to provision: `SystemAssigned` or `UserAssigned`.
6262

63-
> **Note**
63+
> [!TIP]
6464
> You can use `lstk az` to proxy Azure CLI commands to the LocalStack for Azure emulator. Alternatively, run `lstk az start-interception` to automatically intercept and redirect all `az` commands to LocalStack. For more information, see the [lstk CLI documentation](https://docs.localstack.cloud/aws/developer-tools/running-localstack/lstk/).
6565
6666
The [deploy.sh](deploy.sh) script executes the following steps:
@@ -75,7 +75,7 @@ The [deploy.sh](deploy.sh) script executes the following steps:
7575
- Creates zip archive in format expected by Function App
7676
- Uploads pre-built application package to the newly created Function App
7777

78-
> **Note**
78+
> [!TIP]
7979
> Azure CLI commands use `--verbose` argument to print execution details and the `--debug` flag to show low-level REST calls for debugging. For more information, see [Get started with Azure CLI](https://learn.microsoft.com/en-us/cli/azure/get-started-with-azure-cli)
8080
8181
## Deployment

‎samples/function-app-managed-identity/python/scripts/README.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ This sample provides two Bash scripts to streamline the deployment process by au
5151

5252
These scripts eliminate manual configuration steps and enable one-command deployment of the entire infrastructure.
5353

54-
> [!NOTE]
54+
> [!TIP]
5555
> You can use `lstk az` to proxy Azure CLI commands to the LocalStack for Azure emulator. Alternatively, run `lstk az start-interception` to automatically intercept and redirect all `az` commands to LocalStack. To revert back to the default behavior and send commands to the Azure cloud, run `lstk az stop-interception`.
5656
5757

‎samples/function-app-managed-identity/python/terraform/README.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ For more information on the sample application, see [Azure Functions App with Ma
4747

4848
The [deploy.sh](deploy.sh) script automates the deployment of all Azure resources and the sample application in a single step. Before running the script, customize the variable values based on your needs. In particular, use the `MANAGED_IDENTITY_TYPE` variable to specify the type of managed identity to provision: `SystemAssigned` or `UserAssigned`.
4949

50-
> **Note**
50+
> [!TIP]
5151
> You can use `lstk az` to proxy Azure CLI commands to the LocalStack for Azure emulator. Alternatively, run `lstk az start-interception` to automatically intercept and redirect all `az` commands to LocalStack. With interception active, the standard `terraform` CLI also runs against LocalStack's Azure emulation environment, so no separate Terraform wrapper is needed. For more information, see the [lstk CLI documentation](https://docs.localstack.cloud/aws/developer-tools/running-localstack/lstk/).
5252
5353
The [deploy.sh](deploy.sh) script executes the following steps:

0 commit comments

Comments
 (0)