Esta página ha sido traducida por una máquina.

Problemas al desplegar aplicaciones y funciones

Descubra cómo solucionar problemas al desplegar aplicaciones y funciones con OCI Functions.

Puede que se produzcan estos problemas al desplegar aplicaciones y funciones con OCI Functions.

El despliegue de una aplicación devuelve el mensaje "unauthorized: incorrect username or password"

Al desplegar una aplicación, es posible que vea un mensaje similar al siguiente:

$ fn -v deploy --app acme-app

Deploying go-app to app: acme-app
Bumped to version 0.0.2
Building image phx.ocir.io/ansh81vru1zp/acme-repo/go-app:0.0.2
FN_REGISTRY: phx.ocir.io/ansh81vru1zp/acme-repo
Current Context: acme-functions-compartment
Sending build context to Docker daemon 5.12kB
Step 1/10 : FROM fnproject/go:dev as build-stage
Get https://registry-1.docker.io/v2/fnproject/go/manifests/dev: unauthorized: incorrect username or password

El mensaje indica un intento innecesario o incorrecto de conexión a Docker Hub. Para resolver esta situación, desconéctese de Docker con el siguiente comando:

Comando
docker logout

Una vez desconectado de Docker, vuelva a ejecutar el comando para desplegar la aplicación.

El despliegue de una función devuelve un mensaje "error al ejecutar docker push, ¿está conectado a docker?"

Si ve un mensaje similar al siguiente al desplegar una función, vuelva a comprobar que el entorno de desarrollo no tiene la variable de entorno FN_REGISTRY definida en el nombre de usuario de Docker:

The push refers to repository [docker.io. ...
.
.
.
denied: requested access to the resource is denied
Fn: error running docker push, are you logged into docker?: exit status 1
See fn <command> --help’ for more information.
			

Si ha utilizado la plataforma de Fn Project de código abierto, es posible que haya seguido las instrucciones de la documentación de Fn Project para definir la variable de entorno FN_REGISTRY en el nombre de usuario de Docker a fin de permitir la interacción con el registro oficial de Docker (docker.io).

La variable de entorno FN_REGISTRY sustituye al valor de la opción de registro en el contexto de la CLI de Fn Project.

Para usar la CLI de Fn Project con OCI Functions, realice una de las siguientes acciones:

  • Anule la definición de la variable de entorno FN_REGISTRY.
  • Sustituya la variable de entorno FN_REGISTRY con la opción global --registry cuando introduzca un comando de la CLI de Fn Project que interactúe con Oracle Cloud Infrastructure Registry.

El despliegue de una función devuelve un mensaje ListTriggers y un error 500

Al implementar una función que ha creado previamente con una versión anterior de la CLI de Fn Project, es posible que aparezca un mensaje similar al siguiente:

Fn: [GET /triggers][500] ListTriggers default  &{Fields: Message:Internal server error}

Este mensaje indica que el archivo func.yaml de la función contiene una o más definiciones de disparador HTTP. OCI Functions no es compatible actualmente con disparadores HTTP. Para desplegar la función, elimine la sección triggers: del archivo func.yaml.

Para evitar crear nuevos archivos func.yaml que contengan definiciones de disparador, siga las instrucciones de Instalación de la CLI de Fn Project para actualizar la CLI de Fn Project a la versión más reciente.

El despliegue de una función devuelve un mensaje del siguiente tipo: "La imagen no existe o no tiene acceso para utilizarla"

Al desplegar una función mediante una instancia informática de Oracle Cloud Infrastructure como el entorno de desarrollo de OCI Functions, puede que vea un mensaje similar al siguiente:

Fn: Image phx.ocir.io/ansh81vru1zp/acme-repo/helloworld-func:0.0.2 does not exist or you do not have access to use it.

Este mensaje indica que la instancia informática no tiene acceso a Oracle Cloud Infrastructure Registry.

Vuelva a comprobar que existe una sentencia de política (similar a la que se muestra a continuación) en el compartimento raíz del arrendamiento para permitir que un grupo dinámico que incluya el OCID de la instancia informática pueda acceder a Oracle Cloud Infrastructure Registry:

 Allow dynamic-group <dynamic-group-name> to read repos in tenancy

Para obtener más información sobre el uso de una instancia informática de Oracle Cloud Infrastructure como el entorno de desarrollo, consulte Diferentes opciones para los entornos de desarrollo de funciones.

El despliegue de una función en OCI Functions devuelve el mensaje "Fn: Missing subnets annotation"

Al desplegar una función en OCI Functions, es posible que aparezca el siguiente mensaje:

$ fn deploy --app joes-helloworld-app

Deploying helloworld-func to app: joes-helloworld-app
.
.
.
Fn: Missing subnets annotation

Si ve el mensaje Fn: Missing subnets annotation, confirme que ha introducido el nombre de aplicación correcto. Por ejemplo:

  • Es posible que la aplicación no esté en el compartimento especificado actualmente por el contexto de la CLI de Fn Project.
  • Es posible que la aplicación ya existiera anteriormente, pero que se haya suprimido posteriormente.

El despliegue de una función en OCI Functions devuelve el mensaje "La arquitectura de imagen de la función 'x86' es incompatible..."

Al desplegar una función en OCI Functions, es posible que aparezca un mensaje similar al siguiente:

$ fn deploy --app joes-helloworld-app

Deploying helloworld-func to app: joes-helloworld-app
.
.
.
Fn: Service error:InvalidParameter. Invalid Invalid image - Function's image architecture 'x86' is incompatible with the application's shape type 'GENERIC_X86_ARM'. http status code: 400. Opc request id:...

Este mensaje indica que la imagen de la función no incluye las dependencias necesarias (imágenes secundarias) para la unidad de la aplicación. Una causa probable del mensaje es el uso de la versión 0.6.24 (o anterior) de la CLI de Fn Project para desplegar una función con una imagen x86 para:

  • una aplicación que tiene una unidad de arquitectura múltiple (como Generic_X86_ARM)
  • una aplicación que tiene una sola unidad de arquitectura que no es compatible con una imagen x86 (como Generic_ARM)

A partir de la versión 0.6.25 de la CLI de Fn Project, cuando utiliza el comando fn deploy --app <app-name> para crear una función y desplegarla en OCI Functions, la CLI de Fn Project crea la imagen de Docker de la función con las dependencias necesarias para la unidad de la aplicación. Si la aplicación tiene una unidad de arquitectura múltiple (como Generic_X86_ARM, la unidad de aplicación por defecto desde septiembre de 2023), la CLI de Fn Project crea una imagen de arquitectura múltiple para la función. La imagen de la función y la forma de la aplicación siempre son compatibles.

Sin embargo, la versión 0.6.24 (y anteriores) de la CLI de Fn Project siempre crea imágenes de Docker con las dependencias necesarias para una única arquitectura, la arquitectura x86. Como imagen de arquitectura única, dicha imagen x86 solo es compatible con aplicaciones que tienen la unidad de arquitectura única Generic_X86. La imagen x86 no es compatible con las aplicaciones que tienen:

  • una unidad de arquitectura múltiple (como Generic_X86_ARM, la unidad de aplicación por defecto desde septiembre de 2023)
  • una unidad de arquitectura única que no sea Generic_X86 (como Generic_ARM)

Para desplegar la función correctamente, debe proporcionar una imagen compatible con la unidad de la aplicación. Realice una de las siguientes acciones:

  • Use la versión 0.6.25 o posterior de la CLI de Fn Project (recomendado).
  • Despliegue la función en una aplicación diferente que tenga una unidad compatible con la imagen de la función (cree una nueva aplicación si es necesario). Suponiendo que utiliza la versión 0.6.24 o anterior de la CLI de Fn Project, despliegue siempre la función en una aplicación que tenga una unidad Generic_X86.
  • Utilice Docker para crear una imagen compatible con la unidad de arquitectura de la aplicación.

Para obtener más información, consulte Especificación de la arquitectura de recursos informáticos en la que ejecutar funciones.

El despliegue de una función en OCI Functions en Cloud Shell devuelve el mensaje "OL8 Cloud Shell no soporta compilaciones cruzadas y compilaciones de funciones de varias archivos..."

Al desplegar una función en OCI Functions en el entorno de desarrollo de Cloud Shell, puede que aparezca un mensaje similar al siguiente:

OL8 CloudShell does not support cross-compilation and multi-arch functions builds. Please ensure the architecture of your App matches the CloudShell architecture.

Este mensaje indica que la función se basa en una imagen de arquitectura múltiple, que la aplicación tiene una unidad de arquitectura múltiple o que la sesión de Cloud Shell y la aplicación tienen una arquitectura diferente.

En el entorno de desarrollo de Cloud Shell, OCI Functions no soporta la creación y el despliegue de funciones basadas en imágenes de arquitectura múltiple ni aplicaciones con unidades de arquitectura múltiple. Además, la arquitectura de la sesión de Cloud Shell debe ser la misma que la arquitectura de la aplicación.

Para obtener más información: