Aller au contenu

Azure Functions ​

Azure Functions est une plateforme serverless de Microsoft Azure. Vous pouvez exécuter votre code en réponse à des événements ; la plateforme gère automatiquement les ressources de calcul sous-jacentes.

Hono n'a pas été conçu initialement pour Azure Functions, mais l'adaptateur Azure Functions lui permet également de s'y exécuter.

Il fonctionne avec Azure Functions V4 sous Node.js 18 ou une version ultérieure.

1. Installation de la CLI ​

Pour créer une fonction Azure, vous devez d'abord installer Azure Functions Core Tools.

Sur macOS

sh
brew tap azure/functions
brew install azure-functions-core-tools@4

Pour les autres systèmes d'exploitation, suivez ce lien :

2. Configuration ​

Créez un projet TypeScript Node.js V4 dans le dossier courant.

sh
func init --typescript

Modifiez le préfixe de route par défaut de l'hôte. Ajoutez cette propriété à l'objet JSON racine de host.json :

json
"extensions": {
    "http": {
        "routePrefix": ""
    }
}

Information

Le préfixe de route par défaut d'Azure Functions est /api. Si vous ne le modifiez pas comme ci-dessus, veillez à commencer toutes vos routes Hono par /api.

Vous pouvez maintenant installer Hono et l'adaptateur Azure Functions avec :

sh
npm i @marplex/hono-azurefunc-adapter hono
sh
yarn add @marplex/hono-azurefunc-adapter hono
sh
pnpm add @marplex/hono-azurefunc-adapter hono
sh
bun add @marplex/hono-azurefunc-adapter hono

3. Bonjour le monde ​

Créez src/app.ts :

ts
// src/app.ts
import { Hono } from 'hono'
const app = new Hono()

app.get('/', (c) => c.text('Hello Azure Functions!'))

export default app

Créez src/functions/httpTrigger.ts :

ts
// src/functions/httpTrigger.ts
import { app } from '@azure/functions'
import { azureHonoHandler } from '@marplex/hono-azurefunc-adapter'
import honoApp from '../app'

app.http('httpTrigger', {
  methods: [
    //Add all your supported HTTP methods here
    'GET',
    'POST',
    'DELETE',
    'PUT',
  ],
  authLevel: 'anonymous',
  route: '{*proxy}',
  handler: azureHonoHandler(honoApp.fetch),
})

4. Exécution ​

Démarrez le serveur de développement localement. Ensuite, ouvrez http://localhost:7071 dans votre navigateur web.

sh
npm run start
sh
yarn start
sh
pnpm start
sh
bun run start

5. Déploiement ​

Information

Avant de pouvoir déployer sur Azure, vous devez créer certaines ressources dans votre infrastructure cloud. Consultez la documentation Microsoft sur la création des ressources Azure nécessaires à votre fonction.

Compilez le projet pour le déploiement :

sh
npm run build
sh
yarn build
sh
pnpm build
sh
bun run build

Déployez votre projet dans l'application de fonctions sur Azure Cloud. Remplacez <YourFunctionAppName> par le nom de votre application.

sh
func azure functionapp publish <YourFunctionAppName>

Publié sous licence MIT.