Entorno de ejecución de PHP

Tu función de Cloud Run se ejecuta en un entorno que consta de una versión del sistema operativo con paquetes complementarios, compatibilidad con idiomas y la biblioteca PHP Functions Framework, que admite e invoca tu función. Este entorno se identifica por la versión del idioma y se conoce como ID de tiempo de ejecución.

Preparación de la función

Puedes preparar una función directamente desde la Google Cloud consola o escribirla en tu máquina local y subirla. Para preparar tu máquina local para el desarrollo en PHP, consulta Usar PHP en Google Cloud.

Entornos de ejecución de PHP e imágenes base compatibles

Tiempo de ejecución ID de entorno de ejecución Pilas Imagen base de tiempo de ejecución
PHP 8.4 php84 google-22-full (predeterminado) google-22-full/php84
PHP 8.3 php83 google-22-full (predeterminado) google-22-full/php83
PHP 8.2 php82 google-22-full (predeterminado) google-22-full/php82
PHP 8.1 php81 google-18-full google-18-full/php81
PHP 7.4 php74 google-18-full google-18-full/php74

Selecciona tu tiempo de ejecución

Puedes seleccionar uno de los tiempos de ejecución de PHP admitidos para tu función durante la implementación.

Puedes seleccionar una versión del tiempo de ejecución mediante la Google Cloud consola o la CLI de gcloud. Haga clic en la pestaña para ver las instrucciones sobre cómo usar la herramienta que elija:

gcloud

Especifica la imagen base de PHP de tu función con la marca --base-image al desplegarla. Por ejemplo:

gcloud run deploy FUNCTION \
    --source . \
    --function FUNCTION_ENTRYPOINT \
    --base-image php84

Sustituye:

  • FUNCTION con el nombre de la función que vas a implementar. Puedes omitir este parámetro por completo, pero se te pedirá el nombre si lo haces.

  • FUNCTION_ENTRYPOINT con el punto de entrada de tu función en el código fuente. Este es el código que ejecuta Cloud Run cuando se ejecuta tu función. El valor de esta marca debe ser un nombre de función o un nombre de clase completo que exista en el código fuente.

Para obtener instrucciones detalladas sobre cómo desplegar una función con la CLI de gcloud, consulta Desplegar funciones en Cloud Run.

Consola

Puedes seleccionar una versión del tiempo de ejecución al crear o actualizar una función de Cloud Run en la Google Cloud consola. Para obtener instrucciones detalladas sobre cómo desplegar una función, consulta Desplegar funciones en Cloud Run.

Para seleccionar un tiempo de ejecución en la consola Google Cloud al crear una función, sigue estos pasos:

  1. En la Google Cloud consola, ve a la página Cloud Run:

    Ir a Cloud Run

  2. Haz clic en Escribir una función.

  3. En la lista Entorno de ejecución, selecciona una versión del entorno de ejecución de PHP.

  4. Haz clic en Crear y espera a que Cloud Run cree el servicio con una revisión de marcador de posición.

  5. La consola te redirigirá a la pestaña Fuente, donde podrás ver el código fuente de tu función. Haz clic en Guardar y volver a implementar.

Para obtener instrucciones detalladas sobre cómo actualizar la versión del tiempo de ejecución después de implementar la función, consulta Volver a implementar código fuente nuevo.

Estructura del código fuente

Para que las funciones de Cloud Run encuentren la definición de tu función, el código fuente debe seguir una estructura específica. Para obtener más información, consulta Escribir funciones de Cloud Run.

Configuración de PHP

Para configurar tu función de PHP, utiliza un php.ini archivo en el directorio raíz de la función. Puede ver los ajustes de configuración de PHP con la función phpinfo(), como se muestra en el siguiente código de ejemplo:


use Psr\Http\Message\ServerRequestInterface;

function phpInfoDemo(ServerRequestInterface $request): string
{
    // phpinfo() displays its output directly in the function's
    // HTTP response, so we don't need to explicitly return it
    //
    // Note: we recommend deleting the deployed Cloud Function once you no
    // longer need it, as phpinfo() may broadcast potential security issues.
    phpinfo();
    return '';
}

Especificar dependencias

PHP usa Composer para gestionar las dependencias. Para especificar las dependencias de tu función, debes añadirlas a un archivo de proyecto llamado composer.json.

El entorno de ejecución de PHP de las funciones de Cloud Run requiere que Functions Framework sea una dependencia explícita. Para añadir Functions Framework como dependencia, ejecuta el siguiente comando en el directorio que contiene el código de tu función (este directorio también debe contener el archivo composer.json):

composer require google/cloud-functions-framework

De esta forma, se añade Functions Framework a tu composer.json y se instala el paquete en el directorio vendor/.

Archivo autoload.php

Uno de los archivos incluidos en tu directorio vendor/ es autoload.php.

Añade la siguiente línea a la parte superior de tus secuencias de comandos PHP para requerir el archivo autoload.php, que automáticamente requires las demás dependencias de tu función:

require_once __DIR__ . '/vendor/autoload.php';

De forma predeterminada, el directorio vendor/ se ignora en el archivo .gcloudignore generado para reducir el número de archivos enviados en la implementación.