Free Trial Book a Demo
feature-image

Azure Functions Live – December 2018

Categories: Microsoft Azure Tags:

Azure Functions team is live again! This episode is presented by Jeff Hollan, Program Manager – Azure Functions team, Eduardo Laureano, Program Manager – Azure Functions team and Katy Shimizu, Developer at Azure Functions Team

The session started in a celebratory mood for the upcoming Christmas and the New Year season.

What’s New

Jeff & Eduardo revisited the announcements made in the recent Microsoft Connect().

  1. Azure Functions Support to Python in Preview – Read more
  2. Host functions on the new Linux Consumption plan – this is now in (public preview) and supported with Azure Functions 2.0. This supports modules built on JavaScript and Python which doesn’t make sense to host them on the Windows platform. This also enables to host as containers instead of code pieces with configuration. If you use Visual Studio Code and Python, this platform suits the best. It also has integration to AppInsights.
  3. Key Vault Integration: Security considerations for Azure Functions has been a hot topic always. Key Vault has always been very high on the request list. The intention to use key vaults is to keep and manage the key secrets from one place and access them from Azure Functions.
  4. Key Vault References Feature – makes it so that your app can work as if it were using App Settings as they have been, meaning no code changes are required. There is no necessity to use any SDK anymore to access secrets. These Security Enhancements are discussed in detail in this blog by Matthew Henderson – Simplifying security for serverless and web apps with Azure Functions and App Service
  5. Azure Functions can be deployed on Kubernetes – Serverless like capabilities are being introduced with Kubernetes. You can now Scale down to zero when there is no usage and scale up when required.
  6. API Management supports management for Serverless APIs – considerations like request authentication and authorization, rate limit and quota enforcement, request and response transformation, logging and tracing, or version management can now be achieved through API Management as you build Serverless APIs
  7. Improvements in Monitoring pipelines – The capability to see exceptions, should they be addressed, what more telemetry need to be sent etc
  8. Serverless Community Library – Now community is encouraged to share some sample code for others to know how easily they can deploy functions. Deploying these code samples to Azure Function in your subscription is supported.

Support for JavaScript in Durable Functions (Generally Available)

Katy Shimizu did a quick rundown on building Durable Functions with Java Script – Durable Functions is a way of orchestrating multiple Azure Functions together. There is an Orchestrator function which provides task parallelization, timeouts and implementation of complex workflow scenario.

The latest package version available through npm for durable-functions is 1.1.2 – this is a first GA version though.

Call to Orchestrator function initializes and boots up durable task framework mechanism in JavaScript. The asterisk mentioned in the function is to designate the function as a generator function which is a way of doing step wise execution in JavaScript.

Activity functions are called within Orchestrator function in the workflow. Yield keyword is used to wait for the async operation.

Generator functions and yield are the basic paradigms to implement Durable Function using JavaScript.

Orchestrator functions need to be deterministic than being async or awaitable.

Azure Functions Live

Refreshed Durable Functions Documentation

.Net and JavaScript are treated with the same level of importance. What is used to be a sub section under Azure Functions, Durable Functions are now moved out as a separate section. Read more

Q&A

  1. C# programming model leverages attributes, are there any possibilities to bring such capability to other languages – for e.g: decorators for python or javascript?
    Looking into it, but it has got its own challenges. It doesn’t naturally fall in other languages.
  2. Dependency Injection – what’s the update?
    May be available in the first few months of next year. Jeff Hollan says he is closely following this.
  3. Connection Limits to Azure Functions, are there plans to increase?
    Connections is now 600 in all regions, 1200 in most (will be 1200 in all by end of the month). We hope this will mean people won’t hit this exception ever again. 1200 *per instance* so when we scale out it becomes 1200 * instances.
  4. Will plain old .net core web apps get simpler keyvault access as well?
    If using app services than yes. The feature of app settings
  5. Do Azure Functions have support for authentication and authorization for ServerlessAPI? We build HTTP trigger based serverless API
    There are few options –
    App Service Authentication – works for App Svc and Functions at Func app level. Configure that real tight integration with Azure AD. Create App in that environment and tasks to your resources to it.
    Deal authentication using API Management layer – validate your requests using JWT Tokens.
    At Function Level – use API Key
    Custom Authorization – implanted using code. Maybe made easy with Dependency injection
  6. With API Management, for Serverless Consumption plan where there is per execution pricing, what are the plans for Azure Functions proxy?
    Azure Functions has HTTP support by default. They can be used to create HTTP triggers. With proxies, we can do routing, re-routing intercept, and mock API. No plans to retire proxy for now. At some point, proxies and API Management may be integrated. Proxies are a feature of runtime whereas API Management Serverless is more powerful which can support custom policy, caching, rate limits, throttling – proxies don’t do any of these.
  7. Is it possible to pass a custom status back up from a sub orchestration? (the context of the parent orchestration isn’t available)
    It is not possible now. Can be considered a feature request.
    Passing back status to normal orchestrator is possible as the context is available.
  8. In JavaScript Durable Orchestrator – could activity function be any function? i.e. can it call a function that is not JavaScript?
    There is a restriction on function apps i.e. it can be implemented only in a particular language. There are ways to have a cross-function app calling making use of HTTP endpoints. Cross function app communication is in beginning stages. More news to follow in the new year.
  9. Are there any architecture diagram showing a realistic serverless API (Mgmt Gateway + Functions Apps for API backends)
    There are some artifacts work in progress with few samples that will discuss
    Functions + API Management
    Functions + Event Streams
    Functions + Cosmos DB etc
  10. Any thoughts or plans around DevOps or CI/CD for deployment strategy for Functions?
    There is some interesting work in progress. May be demonstrated soon in one of the future webcasts

Some of the blogs highlighted:

Making Sense of Azure Durable Functions – Mikhail Shilkov

Layered Architecture with Azure API Management, Azure Functions, Azure Key Vault and Cosmos Graph Database – Abhishek

How to build a serverless report server with Azure Functions and SendGrid – Burke Holland

Connect with Azure Functions team on twitter @AzureFunctions handle. Visit this link for the list of members: https://twitter.com/AzureFunctions/lists/azure-functions-team/members

Announcements

  1. Ignite, The Tour – Jeff Hollan will be traveling to Sydney and probably New Zealand
  2. Microsoft Product Team will be representing at ServerlessDays conferences
  3. Next Webcast Live may happen in late Jan 2019.

Let us break for the vacations till then! Season’s Greetings!!