A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/Azure/azure-functions-extension-bundles below:

Azure/azure-functions-extension-bundles: Azure Functions Extension Bundles

Extension bundles provide a way for non-.NET function apps to reference and use Azure Function extension packages written in C#. It bundles several of the Azure Function extensions into a single package which can then be referenced extension via the host.json file. Below is a sample configuration:

{
    "version": "2.0",
    "extensionBundle": {
        "id": "Microsoft.Azure.Functions.ExtensionBundle",
        "version": "[4.*, 5.0.0)"
    }
}
Branch Status main Local Build and Packaging

Before building locally, you need to obtain the latest template artifacts and place them in the templatesArtifacts directory at the repository root.

Required template files (example versions):

ExtensionBundle.Preview.v3.Templates.3.0.5130.zip
ExtensionBundle.Preview.v4.Templates.4.0.5130.zip
ExtensionBundle.v1.Templates.1.0.5130.zip
ExtensionBundle.v2.Templates.1.0.5130.zip
ExtensionBundle.v3.Templates.1.0.5130.zip
ExtensionBundle.v4.Templates.1.0.5130.zip

How to obtain template artifacts:

# Set environment variables
$env:BUILD_REPOSITORY_LOCALPATH = "<ExtensionBundleRepoPath>"
$env:TEMPLATES_ARTIFACTS_DIRECTORY = "templatesArtifacts"

# Navigate to build directory and run
cd build
dotnet run skip:GenerateVulnerabilityReport,PackageNetCoreV3BundlesLinux,CreateCDNStoragePackageLinux,BuildBundleBinariesForLinux
# Set environment variables
export BUILD_REPOSITORY_LOCALPATH="<ExtensionBundleRepoPath>"
export TEMPLATES_ARTIFACTS_DIRECTORY="templatesArtifacts"

# Navigate to build directory and run
cd build
dotnet run skip:GenerateVulnerabilityReport,PackageNetCoreV3BundlesWindows,CreateRUPackage,CreateCDNStoragePackage,CreateCDNStoragePackageWindows,BuildBundleBinariesForWindows

Note: Replace <ExtensionBundleRepoPath> with the actual path to your extension bundle repository.

  1. Identify the bundle version you want to update and checkout the corresponding branch

  2. Add the following details to extensions.json file

    {
            "id": "Microsoft.Azure.WebJobs.Extensions.Kafka", // Nuget package id for the extension
    
            "majorVersion": "3",                              // Major version of the extension
    
            "name": "Kafka",                                  // This should match the name proprerty from bin/extensions.json in the generated output
                                                              // Easiest way to find out this is to perform the following steps.
                                                              // 1. Install the extension package to pre-compiled function app
                                                              // 2. Build the function app
                                                              // 3. Look at the bin/extension.json file in the output
    
            "bindings": [                                     // binding attributes supported by the extension.
                "kafkatrigger",
                "kafka"
            ]
        }
  3. Build and test the extension bundle

  4. To add a change or fix an issue that spans across multiple branches, try submitting the same set of commit hashes using cherry-pick in a pull request.

Debugging the build process in Visual Studio
  1. Open the build/Build.sln file in Visual Studio
  2. Create a debug profile for the project (right-click on the project, "Properties", "Debug", "Open debug launch profiles UI")
  3. Set the Command Line arguments using the instructions above (everything after dotnet run, i.e. "skip:XXX,YYY,...")
  4. Set the working directory to be the build directory
  5. F5
  1. Build extension bundles locally and locate the artifacts\Microsoft.Azure.Functions.ExtensionBundle.{version}_any-any.zip file.
  2. Create a function app via core tools, open host.json to verify that it has extension bundle configuration present.
  3. Execute the func GetExtensionBundlePath to find the path to the bundle being used.
  4. Replace the contents of the bundle directory from step 3 with the contents of the zip file from Step 1.

For comprehensive testing including Preview bundles and integration scenarios, see the emulator test framework at:

The emulator tests run automatically in CI for all PR builds and main branch builds, providing:

The project uses Azure DevOps pipelines with multiple stages:

  1. Unit Tests (RunUnitTests stage): Runs .NET unit tests
  2. Build (Build stage): Builds extension bundles for multiple platforms
  3. Emulator Tests (EmulatorTests stage): Runs Python-based emulator tests on Linux

Pipeline Configuration:

Emulator Test CI Features:

This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.microsoft.com.

When you submit a pull request, a CLA-bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4