Code Monkey home page Code Monkey logo

azure-functions-extension-bundles's Introduction

Overview

Extension bundle provides a way for non-dotnet function apps to reference and use to Azure Function extension packages written in C#. It does that by bundling several of the azure function extensions into a single package and then referencing extension bundle via host.json. Below is sample configuration for extension bundles.

{
    "version": "2.0",
    "extensionBundle": {
        "id": "Microsoft.Azure.Functions.ExtensionBundle",
        "version": "[1.*, 2.0.0)"
    }
}

Build status

Branch Status
v1.x Build Status
v2.x Build Status
v3.x Build Status
v3.x-preview Build Status
v4.x-preview Build Status

Build Requirements

Build Steps

Windows

cd build

dotnet run skip:PackageNetCoreV3BundlesLinux,CreateCDNStoragePackageLinux,BuildBundleBinariesForLinux,DownloadManifestUtility,RunManifestUtilityLinux,RunManifestUtilityWindows

Linux

cd build

dotnet run skip:dotnet run skip:PackageNetCoreV2Bundle,PackageNetCoreV3BundlesWindows,CreateRUPackage,CreateCDNStoragePackage,CreateCDNStoragePackageWindows,BuildBundleBinariesForWindows,DownloadManifestUtility,RunManifestUtilityWindows,RunManifestUtilityLinux

Add extension to a extension bundle

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

    Bundle version Branch
    v1.x https://github.com/Azure/azure-functions-extension-bundles/tree/v1.x
    v2.x https://github.com/Azure/azure-functions-extension-bundles/tree/v2.x
    v3.x https://github.com/Azure/azure-functions-extension-bundles/tree/v3.x
    v3.x-preview https://github.com/Azure/azure-functions-extension-bundles/tree/v3.x-preview
    v4.x-preview https://github.com/Azure/azure-functions-extension-bundles/tree/v4.x-preview
  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

Add template to extension bundle.

Test an Extension Bundle

  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.
    • Sample commands for node app: func init . --worker-runtime node
  3. Execute the func GetExtensionBundlePath to find the path to the bundle being used.
    • Sample response: %userprofile%\.azure-functions-core-tools\Functions\ExtensionBundles\Microsoft.Azure.Functions.ExtensionBundle\2.8.4
  4. Replace the contents of the bundle directory from step 3 with the contents of the zip file from Step 1.

Contributing

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 [email protected] with any additional questions or comments.

azure-functions-extension-bundles's People

Contributors

cgillum avatar davidmrdavid avatar francisco-gamino avatar kashimiz avatar lankaapura avatar microsoftopensource avatar msftgits avatar sidkri avatar soninaren avatar tsuyoshiushio avatar yojagad avatar zackliu avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.