GithubHelp home page GithubHelp logo

guitarrapc / azurefunctionsintroduction Goto Github PK

View Code? Open in Web Editor NEW
90.0 9.0 14.0 1.26 MB

Sample Code for Azure Functions

Home Page: http://tech.guitarrapc.com/archive/category/AzureFunctions

License: MIT License

C# 88.46% Batchfile 2.80% HCL 8.41% Dockerfile 0.33%
azure-functions azurefunctions serverless precompile-functions csx v2 samples

azurefunctionsintroduction's Introduction

AzureFunctionsIntroduction

This is Sample project for Azure Functions. May this repository help you understand Azure Functions better.

I strongly recommend you to use v2 samples. v1 and csx are limited and obsolated.

What you can know

Please refer v2/.

More Reference

Reference Description
Blog post - tech.guitarrapc.com Blog post for AzureFuncitons by repository owner.
Azure/Azure-Functions AzureFunctions official repo. You may find where to report Issue, Feature Requests, Questions and Help.
Microsoft Azure WebJobs SDK Quick Reference Web Job SDK cheat sheet.

Precompiled functions reference

Refer many samples and demo.

https://github.com/Azure/Azure-Functions/wiki/Samples-and-content

Following additional tips will be useful for first step.

Description Screenshot
VS2017 Update3 and higher is required for v2.
Use v2 precompile function when you want to gain more faster execution and IDE compile, debug benefits.
Unfortunately .csx is not yet match friendly for VS Debugging. It will not detect compile error and less intellisense at all.
Therefore you will find .csx will cause compile error on Function App portal so often. If you feel it reduce your efficiency, then use precompile instead.
There are several way for local debug with post/get request, LinqPad, PowerShell, curl and others. I use PostMan Chrome extensions heavily when local debugging and remote debugging.

Recommend Azure Functions settings for stability and efficiency

These settings are my recommendation with using AzureFunctions.

Description Screenshot
Use zipdeploy integration with Run From Package to prove deploy atomic. PackageDeploy offers blue/green whole function deployment.
In other words WebDeploy, ZipDeployment will not remove old name functions.
You should consider using package deploy as possible as you can, and zip deploy is good PUSH Deploy option.
Announcing zipdeploy integration with Run From Package #110
Concider to select Dynamic Service Plan if possible.
This will bring you best cost efficiency and scalability.
Keep your Azure Functions Runtime version up-to-date. Actually there's no meaning concider downtime because apply will be done in just a seconds.
Keep Function App Platform 32bit (don't change to 64bit)
Do not run out memory, add Dynamic Memory if needed! Default 128MB will be run out easiry. Upgrade to 256MB or higher as your app requires.
Dynamic Plan pricing is relates to Memory size, but less meanful to concider.
AzureFunctions pricing is here.
Make sure your functions memory comsumptions will be less than 1536MB. This is limiation of Dynamic Service Plan.
In case you exceed 1536MB there's 2 options.
- Divide to separate functions.
- Combine all functions to single App Service Plan.
Use AppSettings to store secret values. This eliminate sensitive value in the source code.
You can load it with both System.Environment.GetEnvironmentVariable("Key") or System.Configuration.ConfigurationManager.AppSettings["Key"].
C# sample with screenShot: GetEnvironmentVariable("Secret_Value") or ConfigurationManager.AppSettings["Secret_Value"];
See C# Dev Samples for more details
appsettings.json is deprecated, use local.settings.json instead.
Fetch AppSettings on Remote Azure to local dev install npm i -g azure-functions-cli, login func azure login, select subscription func azure subscriptions list, list functionapp ``func azure functionapp list, then fetch to local func azure functionapp fetch-app-settings AzureFunctionsIntroduction`. rename to local.settings.json and now all variables are fetched to local as like remote.
Use ConfigurationManager if possible. ConfigurationManager is rather better for above fetch approatch, it can dectypt fetched encrypt data. ConfigurationManagerHelper will improve ConfigurationManager mutch friendly.
Set AzureWebJobsStorage for Timer Triggers or others.
Enable Managed Service Identity when using KeyVault or access to other azure resource. Then add AccessPolicy of KeyVault. But still cannot debug from local. Use Remote Debug.

Not Recommend

There's are possible but I never recommend. These settings will bring complexity.

Description Screenshot
Don't use v1 from now. v2 is far more recommended.
Default TimeZone is UTC, but you can use LocalTime zone with WEBSITE_TIME_ZONE into Application Settings.
You can obtain all timezone string with System.TimeZoneInfo.GetSystemTimeZones()
Detail is here : Changing the server time zone on Azure Web Apps
To keep Deployment simplicity, I never recommend mix up Precompile functions and .csx functions.

License

MIT

azurefunctionsintroduction's People

Contributors

dependabot-support avatar dependabot[bot] avatar guitarrapc avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

azurefunctionsintroduction's Issues

Deployment should use Azure RM Web Deployment

There are 2 choice to deploy from CI to AzureFunctions in VSTS.

  1. MSDeploy
  2. Azure RM Web Deployment

If you are using VSTS, Azure RM Web Deployment is the best way for many reasons.

  • You can eliminate credential when deployment.
    • Just pass SiteName is fine, as VSTS already connected with Azure Subscription.
  • You can deploy from Blob when adding Publish Build Artifact.
  • You can complete your build settings within YAML.
    • No more GUI settings!
    • Credential information prevents you from set everything inside YAML.

Dependabot couldn't find a <anything>.(cs|vb|fs)proj for this project

Dependabot couldn't find a .(cs|vb|fs)proj for this project.

Dependabot requires a .(cs|vb|fs)proj to evaluate your project's current Dotnet dependencies. It had expected to find one at the path: /v2/src/<anything>.(cs|vb|fs)proj.

If this isn't a Dotnet project, or if it is a library, you may wish to disable updates for it from within Dependabot.

You can mention @dependabot in the comments below to contact the Dependabot team.

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.