es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

AWS CDK Python Docker arroja un error de montaje de vínculo no válido al intentar agrupar el código.

Estoy intentando desplegar una función lambda de Python con dependencias y estoy obteniendo un error del demonio de Docker (en Centos linux) que hay una especificación inválida de montaje de enlace. El error es “ruta/a/mi/código:/entrada-activo:z,delegado”: modo inválido: delegado.

Lo siguiente es cómo se ve mi código para la función lambda:

    python_function = Function(
        self,
        id="PythonFunction",
        runtime=Runtime.PYTHON3_9,
        handler="app.main.lambda_handler",
        timeout=Duration.seconds(20),
        code=Code.from_asset(
            path=str(python_function_path.resolve()),
            bundling=BundlingOptions(
                image=Runtime.PYTHON3_9.bundling_image,
                command=[
                    "bash",
                    "-c",
                    "pip install -r requirements.txt -t /asset-output && cp -au . /asset-output",
                ],
            ),
        ),
        memory_size=128,
        log_retention=RetentionDays.TWO_WEEKS,
    )

Esto funciona perfectamente en mi Mac, pero intentando desplegarlo desde Centos es sin éxito.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    El mensaje de error indica que hay una especificación de montaje de enlace no válida para el código de la función lambda, específicamente en el modo delegado. Este error está ocurriendo en una máquina Centos Linux y no es reproducible en un Mac.

    Una posible solución es cambiar la opción de empaquetado del comando para no incluir el modo “delegado”. Por ejemplo:

    command=[
        "bash",
        "-c",
        "pip install -r requirements.txt -t /asset-output && cp -au . /asset-output",
        "--no-delegated",
    ],
    

    Alternativamente, el problema puede estar relacionado con la versión de Docker en la máquina Centos. La actualización a una versión más nueva de Docker puede resolver el problema.

    También es posible que haya un problema con la ruta de archivo que se está pasando a Code.from_asset (). Verifique que la ruta esté correctamente formateada para la máquina Centos.

Comments are closed.