npm install @upstash/redis
Create a new function from template.
func new --name CounterFunction --template "HTTP trigger" --authlevel "anonymous"
/src/functions/CounterFunction.ts
import { app, HttpRequest, HttpResponseInit, InvocationContext } from "@azure/functions";
import { Redis } from "@upstash/redis";
const redis = new Redis({
url: process.env.UPSTASH_REDIS_REST_URL,
token: process.env.UPSTASH_REDIS_REST_TOKEN
});
export async function CounterFunction(request: HttpRequest, context: InvocationContext): Promise<HttpResponseInit> {
const count = await redis.incr("counter");
return { status: 200, body: `Counter: ${count}` };
};
app.http('CounterFunction', {
methods: ['GET', 'POST'],
authLevel: 'anonymous',
handler: CounterFunction
});
az account list-locations
Create a resource group.
az group create --name AzureFunctionsQuickstart-rg --location <REGION>
Create a storage account.
az storage account create --name <STORAGE_NAME> --location <REGION> --resource-group AzureFunctionsQuickstart-rg --sku Standard_LRS --allow-blob-public-access false
Create your Function App.
az functionapp create --resource-group AzureFunctionsQuickstart-rg --consumption-plan-location <REGION> --runtime node --runtime-version 18 --functions-version 4 --name <APP_NAME> --storage-account <STORAGE_NAME>
az functionapp config appsettings set --name <APP_NAME> --resource-group AzureFunctionsQuickstart-rg --settings UPSTASH_REDIS_REST_URL=<YOUR_URL> UPSTASH_REDIS_REST_TOKEN=<YOUR_TOKEN>
Take a build of your application.
Publish your application.
func azure functionapp publish <APP_NAME>
Visit the given Invoke URL.