Despliegue una función de PHP con dependencias de terceros en Function Compute. Para ello, empaquete su código y el directorio vendor en un archivo ZIP. Esta guía utiliza Nette\Utils como dependencia de ejemplo y abarca dos métodos de despliegue: Composer con la consola de Function Compute y Serverless Devs.
Preparar el código
Configure un directorio de código local con el controlador de su función antes del despliegue.
-
Cree un directorio llamado
mycodepara el código de su función.Linux y macOS: ejecute
mkdir -p /tmp/mycode.Windows: cree una carpeta llamada
mycode.
-
Dentro del directorio
mycode, cree el archivoindex.phpcon a continuación contenido:<?php require_once __DIR__ . '/vendor/autoload.php'; use Nette\Utils\Arrays; function handler($event, $context) { return Arrays::contains([1, 2, 3], 1); }
Método 1: usar Composer
Instale las dependencias de forma local con Composer, empaquete el código en un archivo ZIP y cárguelo mediante la consola de Function Compute.
Requisitos previos
Antes de empezar, asegúrese de contar con lo siguiente:
PHP y Composer instalados, con permiso para ejecutar comandos de Composer. Consulte Composer para ver las instrucciones de instalación.
(Opcional) Una función de PHP creada en la consola de Function Compute. Consulte Create an event function.
Instalar dependencias y desplegar
-
En el directorio
mycode, cree el archivocomposer.json:{ "require": { "nette/utils": "v3.2.5" } } En el directorio
mycode, ejecutecomposer installpara instalar las dependencias. Cuando finaliza el comando, Composer genera el archivocomposer.locky el directoriovendordentro demycode. Las dependencias descargadas se almacenan envendor.-
Empaquete todos los archivos de
mycodeen un archivo ZIP.-
Linux y macOS: vaya al directorio
mycodey ejecute:zip code.zip -r ./*Nota: Asegúrese de tener permisos de lectura y escritura sobre el directorio.
Windows: abra el directorio
mycode, seleccione todos los archivos, haga clic derecho y comprímalos en un archivo ZIP.
Nota: Asegúrese de que
index.phpse encuentre en el directorio raíz del paquete. -
En la consola de Function Compute, abra la función que desea actualizar. En la esquina superior derecha de la página de detalles de la función, haga clic en Upload Code y seleccione el archivo ZIP. También puede cargar un archivo ZIP al crear una función. Consulte Create an event function.
En la pestaña Code de la página de detalles de la función, haga clic en Test Function para comprobar el despliegue.
Método 2: usar Serverless Devs
Utilice Serverless Devs junto con Docker para compilar y desplegar su función sin gestionar manualmente el archivo ZIP.
Requisitos previos
Antes de empezar, asegúrese de haber completado lo siguiente:
Instalar dependencias y desplegar
-
En el directorio
mycode, cree el archivos.yamlcon a continuación contenido: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 -
En el directorio
mycode, cree el archivocomposer.json:{ "require": { "nette/utils": "^3.0" } } -
Ejecute el siguiente comando para instalar las dependencias dentro de un contenedor de Docker que coincida con el entorno de ejecución de Function Compute:
sudo s build --use-dockerCuando finaliza el comando, Serverless Devs instala las dependencias y el código en el directorio
./vendor. -
Ejecute el siguiente comando para desplegar la función:
sudo s deployUna vez que termina el comando, la función queda desplegada en Function Compute.
Pasos siguientes
Para gestionar dependencias sin empaquetarlas en cada despliegue, utilice las capas de Function Compute. Consulte Create a custom layer.