Habilitar App and API Protection para funciones de Google Cloud Run en Node.js
Este producto no es compatible con el
sitio Datadog seleccionado. (
).
La compatibilidad de AAP con Google Cloud Run está en vista previa.
Cómo funciona
La aplicación serverless-init
envuelve tu proceso y lo ejecuta como un subproceso. Inicia un escuchador de métricas de DogStatsD y un escuchador de trazas del Trace Agent. Recopila logs envolviendo los flujos stdout/stderr de tu aplicación. Después de arrancar, serverless-init
inicia tu comando como un subproceso.
Para una instrumentación completa, asegúrate de que estás llamando a datadog-init
como el primer comando que se ejecuta dentro de tu contenedor Docker. Puedes hacerlo configurándolo como punto de entrada, o configurándolo como el primer argumento en CMD.
Compatibilidad
La compatibilidad de Google Cloud Run con App and API Protection sin servidor está en vista previa.
Nota: La protección frente a amenazas no es compatible a través de la configuración remota. Utiliza los flujos para bloquear direcciones IP en tu WAF.
Para empezar
Añade las siguientes instrucciones y argumentos a tu Dockerfile.
COPY --from=datadog/serverless-init:1 /datadog-init /app/datadog-init
RUN npm install --prefix /dd_tracer/node dd-trace --save
ENV DD_SERVICE=datadog-demo-run-nodejs
ENV DD_ENV=datadog-demo
ENV DD_VERSION=1
ENV DD_APPSEC_ENABLED=1
ENTRYPOINT ["/app/datadog-init"]
CMD ["/nodejs/bin/node", "/path/to/your/app.js"]
Explicación
Copia serverless-init
de Datadog en tu imagen de Docker.
COPY --from=datadog/serverless-init:1 /datadog-init /app/datadog-init
Copia el rastreador Datadog Node.js en tu imagen Docker.
RUN npm install --prefix /dd_tracer/node dd-trace --save
Si instalas la biblioteca del rastreador de Datadog directamente en tu aplicación, como se indica en las instrucciones para la instrumentación manual del rastreador, omite este paso.
(Opcional) Añade etiquetas (tags) de Datadog.
ENV DD_SERVICE=datadog-demo-run-nodejs
ENV DD_ENV=datadog-demo
ENV DD_VERSION=1
ENV DD_APPSEC_ENABLED=1
Cambia el punto de entrada para contener tu aplicación en el proceso de serverless-init
de Datadog.
Nota: Si ya tienes un punto de entrada definido en tu archivo Docker, consulta la configuración alternativa.
ENTRYPOINT ["/app/datadog-init"]
Ejecuta tu aplicación binaria contenida en el punto de entrada. Adapta esta línea a tus necesidades.
CMD ["/nodejs/bin/node", "/path/to/your/app.js"]
Configuración alternativa
Si ya tienes un punto de entrada definido en tu archivo Docker, puedes modificar el argumento CMD.
COPY --from=datadog/serverless-init:1 /datadog-init /app/datadog-init
RUN npm install --prefix /dd_tracer/node dd-trace --save
ENV DD_SERVICE=datadog-demo-run-nodejs
ENV DD_ENV=datadog-demo
ENV DD_VERSION=1
ENV DD_APPSEC_ENABLED=1
CMD ["/app/datadog-init", "/nodejs/bin/node", "/path/to/your/app.js"]
Si necesitas que tu punto de entrada también se instrumente, puedes intercambiar tu punto de entrada y argumentos CMD en su lugar. Para obtener más información, consulta Funcionamiento de serverless-init
.
COPY --from=datadog/serverless-init:1 /datadog-init /app/datadog-init
RUN npm install --prefix /dd_tracer/node dd-trace --save
ENV DD_SERVICE=datadog-demo-run-nodejs
ENV DD_ENV=datadog-demo
ENV DD_VERSION=1
ENV DD_APPSEC_ENABLED=1
ENTRYPOINT ["/app/datadog-init"]
CMD ["/your_entrypoint.sh", "/nodejs/bin/node", "/path/to/your/app.js"]
Siempre y cuando el comando a ejecutar se pase como argumento a datadog-init
, recibirás la Instrumentación completa.
Referencias adicionales
Más enlaces, artículos y documentación útiles: