Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Runtime + Deployment: Azure function support (preview version) #2923

Merged
merged 107 commits into from
May 12, 2020

Conversation

carlosscastro
Copy link
Member

@carlosscastro carlosscastro commented May 6, 2020

[Note that this is ccastro/azure-functions -> benbrown/azurefunctions, no master involved here]

fixes #2924

Preview version of Azure functions deploy support.

  • Runtime: Tweak and improve AzureFunctions project
  • Plugin: Minimal changes for function support
  • Provision script: Now supports WebApp, functions and custom ARM templates. I used the custom one to create an azure function with a fancy premium plan for example
  • ARM template: New arm template for functions equivalent to our web app arm template

Some limitations to the scope and considerations:

  • AzureWebApp plugn and AzureFunction plugin can have more code reuse. We can do that refactor as part of the interchangeable runtime work when we bring in the js runtime.
  • Functions can be skills, but ~1 day of work is required for azure functions to be able to be skill hosts.
  • This should be a preview feature, to gather data about how it is used. If we support multiple runtimes, we might want to be in a position where we don't have to support the deployment mechanisms of the underlying runtimes. More design should come into play around how the user experience is for deployment. How about for more mature projects that have source control?

Experience:

image

image

VanyLaw and others added 30 commits April 17, 2020 18:08
add many TODOs in code
@benbrown benbrown changed the base branch from benbrown/azurefunctions to master May 8, 2020 18:00
benbrown
benbrown previously approved these changes May 8, 2020
@github-actions
Copy link

github-actions bot commented May 8, 2020

Coverage Status

Coverage remained the same at 0.0% when pulling 52a85c6 on ccastro/azure-functions into 4c69132 on master.

@carlosscastro carlosscastro changed the title feat: [Dev branch PR] Runtime + Deployment: Azure function support (preview version) feat: Runtime + Deployment: Azure function support (preview version) May 9, 2020
@cwhitten cwhitten merged commit ebaec7b into master May 12, 2020
@cwhitten cwhitten deleted the ccastro/azure-functions branch May 12, 2020 22:24
lei9444 pushed a commit to lei9444/BotFramework-Composer-1 that referenced this pull request Jun 15, 2021
…icrosoft#2923)

* split the configuration as object

* fix deployment script, change settings path

* fix bugs in deploy script and change credential type:

* finish gethistory, getstatus, update history and status after publish

* add some code comments for clarity
add many TODOs in code

* more code comments

* more code comments for clarity

* add login script and hash the config as folder name

* add bot deploy package build into lib build

* split the provision part out of composer

* fix luis appid unfound error

* fix typo

* polish

* use bot root to config the path of settings

* differ bot to different layer

* change the order of loading settings

* update schema

* change login and provision script, from save file to output to console

* add comment

* fix merge conflict

* format resulting profile

* add comment about security

* use Bearer token auth when doing zipdeploy
remove use of websiteclient

* move provision out of composer, and make sure it not depend on internal package

* add provision subfields schema

* use token replace the credential

* fix output of token

* change the error message when token expire

* add provision error details, add configurable

* update schema require and log message return

* fix parse

* fix template

* update schema and provision script

* fix provision luis configurable

* detail the token's error handle

* Add support for using the ejected runtime code instead of the built in template when publishing to Azure

* Make it optional to persist the history to disk.
Keep it in memory instead.

* move provision script into shared asset folder that is copied into all new projets
change hashing to include bot name to avoid possible overlap when using shared resources

* add to readme

* more readme

* more readme

* clean up tmp folder after publish completes or fails

* remove empty config in provision and appPassword in provision result, Change provision default to true

* add token error handle when zipdeploy fail

* improve output of provision script:
* add usage if missing parameters
* colorize and format output
* add some additional error formatting

* improve output

* remove webManagerClient and use token instead

* clean up the order of fields, remove unused fields from profile
update schema with full form

* use publisher description rather than package name

* feat: Runtime refactor, new directory structure and Azure Function introduction phase 1 (microsoft#2855)

* Runtime: new folder structure, refactor common c# code into core, create function runtime

* Remove deprecated Bot Project

* Runtime: Fix tests

* Update runtime code owners

* Runtime: Part 1 of updating composer server to honor new runtime paths

* Runtime: tweaks for local publish to run prior to merge

* Runtime: fixes post merge

* Update azure publish to use the azure web app template.

* Azure publish: update bot project deploy to new directory structure

* Fix codeowners alias mistake

* Revert "Merge branch 'master' of https://github.com/microsoft/BotFramework-Composer into wenyluo/azure"

This reverts commit af077e248e47e32750629dee7b9b8c8c6e98d84a, reversing
changes made to e24071d0ddbce5554d498c1ba34eb18a93b8948d.

* WebApp + new runtime: deployment and local runtime all working

* Runtime: move nuget.config to dotnet runtime root

* Asset manager: add mock folder to reflect new runtime structure

* Local publish: remove unnecessary space

* Runtime: Add copyright header to all missing files

* Fix bad merge

* Runtime: rename js -> node and update readmes

* add an optional instructions field to the publish plugin so we ca nexplain how to get a config

* merge master

* fix linter warning

* create space for azure functions publish

* Runtime + Deployment: Azure function support (preview version)

* Deploy plugin: Scripts package lock

* Remove package lock to make build happy

* Plugins: attempt non-concurrent yarn install to avoid yarn known integrity issue

* Plugin provision script: Remove functions script, add param and unify into single script

* Azure functions runtime: Correct configuration precedence

* latest schema from master

* little deltas

* Functions: Add declarative component registration

Co-authored-by: Wenyi Luo <wenyluo@microsoft.com>
Co-authored-by: Qi Kang <qika@microsoft.com>
Co-authored-by: Ben Brown <benbro@microsoft.com>
Co-authored-by: Chris Whitten <christopher.whitten@microsoft.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Revise the runtime code we provide to users for configurability
4 participants