Habilitación de la protección de aplicaciones y API para las funciones de Google Cloud Run en Go
Este producto no es compatible con el
sitio Datadog seleccionado. (
).
La compatibilidad de AAP con Google Cloud Run está en la 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 la protección de aplicaciones y API serverless está en la 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
Instala manualmente el rastreador Go antes de desplegar tu aplicación. Compila tu binario go con la etiqueta “appsec” habilitada (go build --tags "appsec" ...). Añade las siguientes instrucciones y argumentos a tu archivo Docker:
COPY --from=datadog/serverless-init:1 /datadog-init /app/datadog-init
ENTRYPOINT ["/app/datadog-init"]
ENV DD_SERVICE=datadog-demo-run-go
ENV DD_ENV=datadog-demo
ENV DD_VERSION=1
ENV DD_APPSEC_ENABLED=1
Explicación
Copia serverless-init de Datadog en tu imagen de Docker.
COPY --from=datadog/serverless-init:1 /datadog-init /app/datadog-init
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 dentro de tu archivo Docker, consulta la configuración alternativa.
ENTRYPOINT ["/app/datadog-init"]
(Opcional) Añade etiquetas (tags) de Datadog.
ENV DD_SERVICE=datadog-demo-run-go
ENV DD_ENV=datadog-demo
ENV DD_VERSION=1
ENV DD_APPSEC_ENABLED=1
Ejecuta tu aplicación binaria contenida en el punto de entrada. Adapta esta línea a tus necesidades.
CMD ["/path/to/your-go-binary"]
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
ENV DD_SERVICE=datadog-demo-run-go
ENV DD_ENV=datadog-demo
ENV DD_VERSION=1
ENV DD_APPSEC_ENABLED=1
CMD ["/app/datadog-init", "/path/to/your-go-binary"]
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 Cómo funciona serverless-init.
COPY --from=datadog/serverless-init:1 /datadog-init /app/datadog-init
ENV DD_SERVICE=datadog-demo-run-go
ENV DD_ENV=datadog-demo
ENV DD_VERSION=1
ENV DD_APPSEC_ENABLED=1
ENTRYPOINT ["/app/datadog-init"]
CMD ["your_entrypoint.sh", "/path/to/your-go-binary"]
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: