forked from serverless/serverless
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request serverless#6822 from tbarlow12/azure-python-template
Azure Python template
- Loading branch information
Showing
8 changed files
with
307 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
# Azure Functions | ||
|
||
Refer to [Serverless docs](https://serverless.com/framework/docs/providers/azure/guide/intro/) for more information. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,103 @@ | ||
# Logs | ||
logs | ||
*.log | ||
npm-debug.log* | ||
yarn-debug.log* | ||
yarn-error.log* | ||
lerna-debug.log* | ||
|
||
# Diagnostic reports (https://nodejs.org/api/report.html) | ||
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json | ||
|
||
# Runtime data | ||
pids | ||
*.pid | ||
*.seed | ||
*.pid.lock | ||
|
||
# Directory for instrumented libs generated by jscoverage/JSCover | ||
lib-cov | ||
|
||
# Coverage directory used by tools like istanbul | ||
coverage | ||
|
||
# nyc test coverage | ||
.nyc_output | ||
|
||
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) | ||
.grunt | ||
|
||
# Bower dependency directory (https://bower.io/) | ||
bower_components | ||
|
||
# node-waf configuration | ||
.lock-wscript | ||
|
||
# Compiled binary addons (https://nodejs.org/api/addons.html) | ||
build/Release | ||
|
||
# Dependency directories | ||
node_modules/ | ||
jspm_packages/ | ||
|
||
# TypeScript v1 declaration files | ||
typings/ | ||
|
||
# Optional npm cache directory | ||
.npm | ||
|
||
# Optional eslint cache | ||
.eslintcache | ||
|
||
# Optional REPL history | ||
.node_repl_history | ||
|
||
# Output of 'npm pack' | ||
*.tgz | ||
|
||
# Yarn Integrity file | ||
.yarn-integrity | ||
|
||
# dotenv environment variables file | ||
.env | ||
.env.test | ||
|
||
# parcel-bundler cache (https://parceljs.org/) | ||
.cache | ||
|
||
# next.js build output | ||
.next | ||
|
||
# nuxt.js build output | ||
.nuxt | ||
|
||
# vuepress build output | ||
.vuepress/dist | ||
|
||
# Serverless directories | ||
.serverless/ | ||
|
||
# FuseBox cache | ||
.fusebox/ | ||
|
||
# DynamoDB Local files | ||
.dynamodb/ | ||
|
||
# TypeScript output | ||
dist | ||
out | ||
|
||
# Azure Functions artifacts | ||
bin | ||
obj | ||
appsettings.json | ||
local.settings.json | ||
.python_packages/ | ||
|
||
# Python | ||
__pycache__/ | ||
|
||
# Virtual Environments | ||
env/ | ||
.env/ | ||
.venv/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
{ | ||
"version": "2.0" | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
azure.functions | ||
azure-functions-worker |
148 changes: 148 additions & 0 deletions
148
lib/plugins/create/templates/azure-python/serverless.yml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,148 @@ | ||
# Welcome to Serverless! | ||
# | ||
# This file is the main config file for your service. | ||
# It's very minimal at this point and uses default values. | ||
# You can always add more config options for more control. | ||
# We've included some commented out config examples here. | ||
# Just uncomment any of them to get that config option. | ||
# | ||
# For full config options, check the docs: | ||
# docs.serverless.com | ||
# | ||
# Happy Coding! | ||
|
||
service: tabarlow-azure-python # NOTE: update this with your service name | ||
|
||
# You can pin your service to only deploy with a specific Serverless version | ||
# Check out our docs for more details | ||
# frameworkVersion: "=X.X.X" | ||
|
||
provider: | ||
name: azure | ||
region: West Europe | ||
runtime: python3.6 | ||
# prefix: "sample" # prefix of generated resource name | ||
# subscriptionId: A356AC8C-E310-44F4-BF85-C7F29044AF99 | ||
# stage: dev | ||
# type: premium # premium azure functions | ||
|
||
environment: # these will be created as application settings | ||
VARIABLE_FOO: 'foo' | ||
|
||
# you can define apim configuration here | ||
# apim: | ||
# apis: | ||
# - name: v1 | ||
# subscriptionRequired: false # if true must provide an api key | ||
# displayName: v1 | ||
# description: V1 sample app APIs | ||
# protocols: | ||
# - https | ||
# path: v1 | ||
# tags: | ||
# - tag1 | ||
# - tag2 | ||
# authorization: none | ||
# cors: | ||
# allowCredentials: false | ||
# allowedOrigins: | ||
# - "*" | ||
# allowedMethods: | ||
# - GET | ||
# - POST | ||
# - PUT | ||
# - DELETE | ||
# - PATCH | ||
# allowedHeaders: | ||
# - "*" | ||
# exposeHeaders: | ||
# - "*" | ||
|
||
plugins: # look for additional plugins in the community plugins repo: https://github.com/serverless/plugins | ||
- serverless-azure-functions | ||
|
||
# you can add packaging information here | ||
package: | ||
# include: | ||
# - include-me.py | ||
# - include-me-dir/** | ||
exclude: | ||
- env/** | ||
- .env/** | ||
# # - exclude-me.py | ||
# # - exclude-me-dir/** | ||
# - local.settings.json | ||
# - .vscode/** | ||
# - node_modules/** | ||
# - .gitignore | ||
# - .git/** | ||
# - env/** | ||
# - package.json | ||
# - package-lock.json | ||
|
||
functions: | ||
hello: | ||
handler: src/handlers/hello.main | ||
events: | ||
- http: true | ||
x-azure-settings: | ||
methods: | ||
- GET | ||
authLevel: anonymous | ||
|
||
goodbye: | ||
handler: src/handlers/goodbye.main | ||
events: | ||
- http: true | ||
x-azure-settings: | ||
methods: | ||
- GET | ||
authLevel: anonymous | ||
# The following are a few examples of other events you can configure: | ||
# storageBlob: | ||
# handler: src/handlers/storageBlob | ||
# events: | ||
# - blob: | ||
# x-azure-settings: | ||
# name: blob # Specifies which name is available on `context` | ||
# path: blob-sample/{blobName} | ||
# connection: AzureWebJobsStorage # App Setting/environment variable which contains Storage Account Connection String | ||
# storageQueue: | ||
# handler: src/handlers/storageQueue | ||
# events: | ||
# - queue: queue-sample | ||
# x-azure-settings: | ||
# name: message # Specifies which naem is available on `context` | ||
# connection: AzureWebJobsStorage | ||
# timer: | ||
# handler: src/handlers/timer | ||
# events: | ||
# - timer: | ||
# x-azure-settings: | ||
# schedule: '*/10 * * * * *' | ||
# eventhub: | ||
# handler: src/handlers/eventHub | ||
# events: | ||
# - eventHub: | ||
# x-azure-settings: | ||
# name: eventHubMessages # Specifies which name it's available on `context` | ||
# eventHubName: sample-hub # Specifies the Name of the Event Hub | ||
# consumerGroup: $Default # Specifies the consumerGroup to listen with | ||
# connection: EVENT_HUBS_CONNECTION # App Setting/environment variable which contains Event Hubs Namespace Connection String | ||
# serviceBusQueue: | ||
# handler: src/handlers/serviceBusQueue | ||
# events: | ||
# - serviceBus: | ||
# x-azure-settings: | ||
# name: message # Specifies which name is available on `context` | ||
# queueName: sample-queue # Name of the service bus queue to consume | ||
# connection: SERVICE_BUS_CONNECTION # App Setting/environment variable variable which contains Service Bus Namespace Connection String | ||
# serviceBusTopic: | ||
# handler: src/handlers/serviceBusTopic | ||
# events: | ||
# - serviceBus: | ||
# x-azure-settings: | ||
# name: message # Specifies which name it's available on `context` | ||
# topicName: sample-topic # Name of the service bus topic to consume | ||
# subscriptionName: sample-subscription # Name of the topic subscription to retrieve from | ||
# connection: SERVICE_BUS_CONNECTION # App Setting/environment variable variable which contains Service Bus Namespace Connection String |
Empty file.
24 changes: 24 additions & 0 deletions
24
lib/plugins/create/templates/azure-python/src/handlers/goodbye.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
import logging | ||
|
||
import azure.functions as func | ||
|
||
|
||
def main(req: func.HttpRequest) -> func.HttpResponse: | ||
logging.info('Python HTTP trigger function processed a request.') | ||
|
||
name = req.params.get('name') | ||
if not name: | ||
try: | ||
req_body = req.get_json() | ||
except ValueError: | ||
pass | ||
else: | ||
name = req_body.get('name') | ||
|
||
if name: | ||
return func.HttpResponse(f'Goodbye {name}!') | ||
else: | ||
return func.HttpResponse( | ||
"Please pass a name on the query string or in the request body", | ||
status_code=400 | ||
) |
24 changes: 24 additions & 0 deletions
24
lib/plugins/create/templates/azure-python/src/handlers/hello.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
import logging | ||
|
||
import azure.functions as func | ||
|
||
|
||
def main(req: func.HttpRequest) -> func.HttpResponse: | ||
logging.info('Python HTTP trigger function processed a request.') | ||
|
||
name = req.params.get('name') | ||
if not name: | ||
try: | ||
req_body = req.get_json() | ||
except ValueError: | ||
pass | ||
else: | ||
name = req_body.get('name') | ||
|
||
if name: | ||
return func.HttpResponse(f"Hello {name}!") | ||
else: | ||
return func.HttpResponse( | ||
"Please pass a name on the query string or in the request body", | ||
status_code=400 | ||
) |