Déployez une fonction PHP avec des dépendances tierces sur Function Compute en regroupant votre code et le répertoire vendor dans un fichier ZIP. Ce guide utilise Nette\Utils comme exemple de dépendance et présente deux méthodes de déploiement : Composer via la console Function Compute, et Serverless Devs.
Préparer votre code
Avant le déploiement, configurez un répertoire de code local contenant le handler de votre fonction.
-
Créez un répertoire nommé
mycodepour le code de votre fonction.Linux et macOS : Exécutez
mkdir -p /tmp/mycode.Windows : Créez un dossier nommé
mycode.
-
Dans le répertoire
mycode, créez le fichierindex.phpavec le contenu suivant :<?php require_once __DIR__ . '/vendor/autoload.php'; use Nette\Utils\Arrays; function handler($event, $context) { return Arrays::contains([1, 2, 3], 1); }
Méthode 1 : Utiliser Composer
Installez les dépendances localement avec Composer, regroupez le code dans un fichier ZIP, puis téléchargez-le via la console Function Compute.
Prérequis
Avant de commencer, assurez-vous de disposer des éléments suivants :
PHP et Composer installés, avec les permissions nécessaires pour exécuter les commandes Composer. Consultez Composer pour les instructions d'installation.
(Facultatif) Une fonction PHP créée dans la console Function Compute. Reportez-vous à Créer une fonction événementielle.
Installer les dépendances et déployer
-
Dans le répertoire
mycode, créez le fichiercomposer.json:{ "require": { "nette/utils": "v3.2.5" } } Toujours dans le répertoire
mycode, exécutezcomposer installpour installer les dépendances. Une fois la commande terminée, Composer génère un fichiercomposer.lockainsi qu'un répertoirevendordansmycode. Les dépendances téléchargées se trouvent dans le répertoirevendor.-
Regroupez tous les fichiers du répertoire
mycodedans un fichier ZIP.-
Linux et macOS : Accédez au répertoire
mycodeet exécutez la commande suivante :zip code.zip -r ./*Note: Vérifiez que vous disposez bien des permissions en lecture et en écriture sur ce répertoire.
Windows : Ouvrez le répertoire
mycode, sélectionnez l'ensemble des fichiers, faites un clic droit, puis compressez-les dans un fichier ZIP.
Note: Assurez-vous que le fichier
index.phpse trouve bien à la racine du package. -
Dans la console Function Compute, ouvrez la fonction à mettre à jour. Dans l'angle supérieur droit de la page de détails de la fonction, cliquez sur Upload Code et sélectionnez le fichier ZIP. Vous pouvez également charger un fichier ZIP lors de la création d'une fonction. Reportez-vous à Créer une fonction événementielle.
Sous l'onglet Code de la page de détails de la fonction, cliquez sur Test Function pour vérifier le bon déroulement du déploiement.
Méthode 2 : Utiliser Serverless Devs
Serverless Devs, combiné à Docker, permet de construire et déployer votre fonction sans avoir à gérer manuellement le fichier ZIP.
Prérequis
Avant de commencer, assurez-vous d'avoir réalisé les étapes suivantes :
Installer les dépendances et déployer
-
Dans le répertoire
mycode, créez le fichiers.yamlavec le contenu suivant :edition: 3.0.0 name: fcDeployApp access: "default" vars: # The global variables. region: "cn-hangzhou" resources: hello_world: component: fc3 # The name of the component. props: region: ${vars.region} # For information about how to use variables, visit https://docs.serverless-devs.com/serverless-devs/yaml#%E5%8F%98%E9%87%8F%E8%B5%8B%E5%80%BC. functionName: "testphp" description: 'this is a test' runtime: "php7.2" code: ./ handler: index.handler memorySize: 128 timeout: 30 -
Toujours dans le répertoire
mycode, créez le fichiercomposer.json:{ "require": { "nette/utils": "^3.0" } } -
Exécutez la commande ci-dessous afin d'installer les dépendances dans un conteneur Docker correspondant à l'environnement d'exécution de Function Compute :
sudo s build --use-dockerUne fois la commande terminée, Serverless Devs place les dépendances et le code dans le répertoire
./vendor. -
Lancez le déploiement de la fonction à l'aide de la commande suivante :
sudo s deployÀ l'issue de cette opération, votre fonction est déployée sur Function Compute.
Étapes suivantes
Pour gérer vos dépendances sans les inclure systématiquement dans chaque déploiement, utilisez les couches (layers) de Function Compute. Consultez Créer une couche personnalisée.