Este documento está dirigido a arquitectos empresariales y desarrolladores de software que quieran crear una canalización de automatización para usar Active Assist en su organización. Google Cloud Forma parte de una serie en la que se analizan patrones de arquitectura que las empresas pueden usar para optimizar su presencia en la nube a gran escala con Active Assist. La serie consta de las siguientes partes:
- Patrones para usar Active Assist a gran escala
- Usar flujos de trabajo sin servidor con Active Assist (este documento)
- Usar la cadena de herramientas de GKE Enterprise con Active Assist
En este tutorial se explica cómo usar Google Cloud tecnologías sin servidor para crear una canalización de automatización que recupere y procese las recomendaciones de Active Assist. Las recomendaciones se basan en las reglas de negocio definidas por tu empresa. La canalización de automatización que has configurado en este tutorial te ayuda a trabajar con Active Assist a gran escala sin dejar de mantener un proceso de revisión y activación dirigido por el equipo. Este enfoque es útil cuando tu empresa quiere ampliar el uso de la cartera de Active Assist, pero quiere mantener el control del proceso de revisión y activación en los equipos. Ofrece una alternativa al uso de un flujo de procesamiento de integración continua y entrega continua (CI/CD).
La arquitectura que se muestra en este tutorial es genérica y puedes ampliarla para que funcione con otros productos sin servidor. En este tutorial se da por hecho que conoces las siguientes tecnologías: Google Cloud
Para completar este tutorial, debes tener una cuenta de Slack o una herramienta similar de notificaciones o de procesamiento de incidencias. La herramienta debe estar configurada en tu máquina y lista para usarse.
Arquitectura
Como la arquitectura que se muestra en este tutorial es modular, puedes adaptar el componente de notificaciones a los requisitos de tu empresa. En este tutorial se muestra cómo generar notificaciones y enviarlas a Slack. También puedes enviar notificaciones a Pub/Sub o a cualquier otra herramienta de procesamiento de notificaciones o incidencias.
En el siguiente diagrama de arquitectura se muestran los componentes que se usan en este tutorial:
La arquitectura tiene los siguientes componentes:
- Un servicio de Cloud Run que un programador activa a intervalos fijos. El servicio invoca las APIs Recommender leyendo los metadatos (IDs de proyecto y tipos de recomendación) que se definen y almacenan en una colección de Firestore.
- Un tema de Pub/Sub en el que se insertan y procesan las recomendaciones de Active Assist.
- Un segundo servicio de Cloud Run que analiza las recomendaciones de Active Assist. Este servicio determina cómo se procesan las recomendaciones en función de las reglas de negocio definidas por tu empresa y almacenadas en una colección de Firestore.
- Dos colecciones de Firestore para almacenar los metadatos y las reglas de negocio. Las colecciones de Firestore funcionan de la siguiente manera:
- La primera colección almacena los metadatos de la empresa relevantes para obtener recomendaciones de Active Assist. En este tutorial, los atributos
recommendation type
,Google Cloud project IDs
ylocations
se usan como metadatos empresariales. El serviciorecommendation-collector
de Cloud Run usa estos atributos para determinar qué tipos de recomendaciones se obtienen. - La segunda colección almacena las reglas de negocio que se aplican cuando se procesan las recomendaciones.
- La primera colección almacena los metadatos de la empresa relevantes para obtener recomendaciones de Active Assist. En este tutorial, los atributos
Objetivos
- Crea un servicio de Cloud Run de ejemplo para obtener recomendaciones de Asistencia activa de un proyecto de ejemplo e insertarlas en un tema de Pub/Sub.
- Crea dos colecciones de Firestore para almacenar metadatos de ejemplo y reglas de negocio, respectivamente.
- Crea un segundo servicio de Cloud Run para procesar recomendaciones según las reglas de negocio de ejemplo que definas en este tutorial.
- Crea un canal de Slack al que el servicio de Cloud Run envíe recomendaciones de ejemplo de Active Assist.
- Prueba la canalización completa con recomendaciones de Active Assist de ejemplo.
Costes
En este documento, se utilizan los siguientes componentes facturables de Google Cloud:
Para generar una estimación de costes basada en el uso previsto,
utiliza la calculadora de precios.
Cuando termines las tareas que se describen en este documento, puedes evitar que se te siga facturando eliminando los recursos que has creado. Para obtener más información, consulta la sección Limpiar.
Antes de empezar
-
In the Google Cloud console, go to the project selector page.
-
Select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
- Anota el ID del proyecto del gestor de recomendaciones. Google Cloud Necesitarás este ID en la siguiente sección para configurar tu entorno.
-
Enable the Cloud Build, Firestore, App Engine,Pub/Sub, Cloud Run, Cloud Scheduler, and Cloud Source Repositories APIs.
En este tutorial, se usan las credenciales de aplicación predeterminadas. Si se te pide que crees credenciales en la página Añadir credenciales a tu proyecto, haz clic en Cancelar.Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. -
Verify that billing is enabled for your Google Cloud project.
-
Crea lo siguiente:
- Un canal de Slack de ejemplo.
- Una aplicación de Slack de ejemplo y un webhook entrante para recibir notificaciones generadas por un motor llamado
recommendation-rules-engine
. Configurarás el motor más adelante en este tutorial.
Cuando hayas creado una aplicación de Slack y una URL de webhook entrante, anota la URL, ya que la necesitarás más adelante en este tutorial.
Crear el flujo de procesamiento sin servidor
En esta sección, creará los componentes que necesita para crear la canalización sin servidor. La plataforma genera recomendaciones de Active Assist basadas en patrones de uso y métricas del sistema. En función de las recomendaciones que se generen, cada categoría de recomendación puede usar un periodo predeterminado diferente del pasado para analizar los datos de uso y las métricas.
Si tienes un proyecto de ejemplo Google Cloud que tiene recursos y recomendaciones de Active Assist, puedes ejecutar la canalización para procesar esas recomendaciones después de hacer los cambios oportunos en el código de ejemplo proporcionado.
Crear las colecciones de Firestore
En esta sección, crearás dos colecciones de Firestore.
La primera, la colección activeassist-metadata
, almacena los metadatos de la empresa
relevantes para obtener recomendaciones de Asistencia activa. La segunda, la colección activeassist-business-rules
, almacena las reglas de negocio que se aplican cuando la canalización procesa las recomendaciones.
Cuando se analizan las recomendaciones de Active Assist, en función de las reglas de negocio de la colección de Firestore, se genera y se envía una notificación, o bien la recomendación se aplica automáticamente al recurso correspondiente. Google Cloud
Crea la colección activeassist-metadata
En la Google Cloud consola, ve a la página de Firestore.
Crea una base de datos de Firestore si aún no tienes una. Si ya tienes una base de datos de Firestore, ve al siguiente paso.
Crea la base de datos:
- Haz clic en Seleccionar modo nativo para activar Firestore.
- Selecciona una región cercana a la región en la que se ejecutan tus servicios de Cloud Run.
- Haz clic en Crear base de datos. La configuración tarda unos minutos en completarse.
En la página de Firestore, haga clic en Start Collection (Iniciar colección).
En el campo ID de colección, introduzca lo siguiente:
activeassist-metadata
.Rellena los campos tal como se muestra en la siguiente tabla. Para añadir el siguiente campo, haz clic en Añadir campo.
Nombre del campo Tipo de campo Valor de campo Nota project
string
Stub-Project-ID
En este tutorial se usa un stub para el valor del campo. Si quieres usar las recomendaciones de un proyecto de Google Cloud , introduce el ID del proyecto. locations
array
global
Algunas recomendaciones pueden ser específicas de una región o una zona, como las recomendaciones de reajuste de tamaño de máquinas virtuales. Otras recomendaciones son globales, como las de gestión de identidades y accesos. recommenderType
string
google.iam.policy.Recommender
No aplicable Cuando se hayan rellenado los campos, haz clic en Guardar.
Crea la colección activeassist-business-rules
- Haz clic en Iniciar colección.
En el campo ID de colección, introduce lo siguiente:
activeassist-business-rules
.Rellena el documento tal como se muestra en la siguiente tabla. Para añadir el siguiente campo, haz clic en Añadir campo.
Nombre del campo Tipo de campo Valor de campo Nota action
string
Notify
Si asigna el valor Apply
, el servicio aplicará la recomendación y quitará el rol que no se utilice.projectId
string
Stub-Project-ID
En este tutorial se usa una recomendación de stub. Si quieres usar las recomendaciones de un proyecto de Google Cloud , introduce el ID del proyecto. projectNumber
string
999999999
En este tutorial se usa una recomendación de stub.
Si usas una recomendación de un proyecto Google Cloud , introduce el número del proyecto. Puedes encontrar el número de proyecto en la Google Cloud página de bienvenida de la consola.recommenderType
string
google.iam.policy.Recommender
No aplicable recommenderSubtype
string
REMOVE_ROLE
No aplicable slackWebhookURL
string
Introduce la URL del webhook de Slack que has generado en un paso anterior. La URL es similar a la siguiente:
https://hooks.slack.com/services/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
En este tutorial se explica cómo crear una regla para determinar si una recomendación se aplica automáticamente o si se genera una notificación y se envía a una plataforma como Slack. Para saber cómo se puede aplicar una recomendación automáticamente en función de la evaluación de las reglas de negocio de ejemplo que hayas configurado, consulta el repositorio asociado.
Cuando se haya rellenado el documento, haga clic en Guardar.
Crear un servicio de Cloud Run programado
En esta sección, crearás un servicio de Cloud Run programado llamado recommendation-collector
que invoca la API Recommender y obtiene recomendaciones activas. En este tutorial, se utiliza la API Recommender de gestión de identidades y accesos como API Recommender. El servicio lee los metadatos de la colección activeassist-metadata
de Firestore que has creado para determinar qué recomendaciones debe obtener.
Haz clic en Abrir en Cloud Shell para abrir Cloud Shell en el proyecto del gestor de recomendaciones.
Cuando se abra Cloud Shell, se ejecutarán los siguientes comandos:
- El comando para clonar el repositorio de GitHub.
- El comando para cambiar de directorio.
Cuando aparezca el cuadro de diálogo Abrir en Cloud Shell, selecciona Confiar y, a continuación, haz clic en Confirmar.
Define el ID y el número del proyecto de Recommendation Manager actual como variables:
export RECO_MGR_PROJECT=PROJECT_ID gcloud config set project $RECO_MGR_PROJECT export RECO_MGR_PROJECT_NUMBER=$(gcloud projects describe $DEVSHELL_PROJECT_ID --format='value(projectNumber)')
Sustituye
PROJECT_ID
por el ID del proyecto. Una vez que hayas introducido los comandos, haz clic en Autorizar cuando se te solicite.Define la variable de la región de implementación:
export REGION=us-central1
Aunque en este tutorial se usa la región
us-central1
, puedes usar cualquier región en la que esté disponible Cloud Run.Crea una variable de entorno para tu imagen Docker:
export RECOMMENDER_IMAGE=gcr.io/$RECO_MGR_PROJECT/recommendation-collector:1.0
Crea la imagen Docker y súbela a Container Registry:
gcloud builds submit --tag $RECOMMENDER_IMAGE
Crea una cuenta de servicio para que el servicio
recommendation-collector
interactúe con otros servicios de la canalización: Google Cloudgcloud iam service-accounts create recommendation-collector-sa \ --description "Service Account that the recommendation-collector service uses to invoke other Google Cloud services" \ --display-name "recommendation-collector-sa" \ --project $RECO_MGR_PROJECT
Es recomendable conceder permisos granulares a tus servicios de Cloud Run asignando roles predefinidos a la cuenta de servicio. Para obtener más información, consulta Identidad de servicio.
Da a la cuenta de servicio del servicio
recommendation-collector
acceso a Firestore y a la API Recommender:gcloud projects add-iam-policy-binding $RECO_MGR_PROJECT \ --member serviceAccount:recommendation-collector-sa@$RECO_MGR_PROJECT.iam.gserviceaccount.com \ --role roles/datastore.user gcloud projects add-iam-policy-binding $RECO_MGR_PROJECT \ --member serviceAccount:recommendation-collector-sa@$RECO_MGR_PROJECT.iam.gserviceaccount.com \ --role roles/pubsub.publisher
Si estás siguiendo este tutorial con el ejemplo
stub
proporcionado en el repositorio que has clonado, ve al siguiente paso.Si vas a crear la canalización de este tutorial con las recomendaciones generadas para un proyecto de Google Cloud , debes asignar permisos de gestión de identidades y accesos a las cuentas de servicio que has creado para ejecutar los dos servicios de Cloud Run.
Define una variable de entorno,
TEST_PROJECT_ID
, con el ID del proyecto para el que ejecutas esta canalización antes de ejecutar los comandos:export TEST_PROJECT_ID=TEST_PROJECT_ID gcloud projects add-iam-policy-binding $TEST_PROJECT_ID \ --member serviceAccount:recommendation-collector-sa@$RECO_MGR_PROJECT.iam.gserviceaccount.com \ --role roles/recommender.iamAdmin gcloud projects add-iam-policy-binding $TEST_PROJECT_ID \ --member serviceAccount:recommendation-collector-sa@$RECO_MGR_PROJECT.iam.gserviceaccount.com \ --role roles/serviceusage.serviceUsageConsumer gcloud services enable recommender.googleapis.com --project $TEST_PROJECT_ID
Asegúrate de que el ID de proyecto que usas coincide con el que introdujiste al crear las colecciones de Firestore.
En este tutorial, desplegarás el servicio con una variable de entorno llamada
STUB_RECOMMENDATIONS
. Esta variable te permite usar un stub para probar la pipeline.Despliega el servicio de Cloud Run:
gcloud run deploy recommendation-collector \ --image=$RECOMMENDER_IMAGE \ --no-allow-unauthenticated \ --region $REGION \ --platform managed \ --service-account recommendation-collector-sa@$RECO_MGR_PROJECT.iam.gserviceaccount.com \ --set-env-vars="STUB_RECOMMENDATIONS=true" \ --project $RECO_MGR_PROJECT \
Acepta las peticiones del sistema.
Si quieres ejecutar la canalización con las recomendaciones de Active Assist generadas para un proyecto Google Cloud , quita la siguiente línea del comando antes de implementarlo:
--set-env-vars="STUB_RECOMMENDATIONS=true"
Configurar una tarea de Cloud Scheduler para ejecutar el recommender-collector service
En Cloud Shell, crea una cuenta de servicio para que las tareas de Cloud Scheduler la usen para ejecutar el servicio
recommendation-collector
:gcloud iam service-accounts create recommender-scheduler-sa \ --description "Service Account used by Cloud Scheduler to invoke the recommender-parser service" \ --display-name "recommender-scheduler-sa" \ --project $RECO_MGR_PROJECT
Asigna el rol
run/invoker
a la cuenta de servicio para que pueda invocar el servicio de Cloud Run:gcloud run services add-iam-policy-binding recommendation-collector \ --member=serviceAccount:recommender-scheduler-sa@$RECO_MGR_PROJECT.iam.gserviceaccount.com \ --role=roles/run.invoker \ --region=$REGION \ --platform=managed
Obtén la URL del servicio
recommendation-collector
:export RECOMMENDER_SERVICE_URI=`gcloud run services describe recommendation-collector \ --platform managed \ --project $RECO_MGR_PROJECT \ --region $REGION \ --format="value(status.url)"`/run
Crea una tarea de Cloud Scheduler llamada
recommender-iam-scheduler
:gcloud scheduler jobs create http recommender-iam-scheduler \ --project $RECO_MGR_PROJECT \ --time-zone "America/Los_Angeles" \ --schedule="0 */3 * * *" \ --uri=$RECOMMENDER_SERVICE_URI \ --description="Scheduler job to invoke recommendation pipeline" \ --oidc-service-account-email="recommender-scheduler-sa@$RECO_MGR_PROJECT.iam.gserviceaccount.com" \ --headers="Content-Type=application/json" \ --http-method="POST"
Define la zona horaria para que coincida con la de tu ubicación. El formato del valor de la zona horaria se basa en la base de datos tz.
Para obtener más información, consulta gcloud scheduler jobs create http.
Tu tarea de Cloud Scheduler invoca la ruta
/run
del serviciorecommendation-collector
.Al definir la marca
--schedule="0 */3 * * *"
, se ejecuta el trabajo de Scheduler cada tres horas. Puedes cambiar este ajuste según tus necesidades. Para obtener más información, consulta Configurar programaciones de tareas cron.
Crea el motor de reglas de recomendaciones para procesar las recomendaciones
En esta sección, crearás un segundo servicio de Cloud Run llamado recommendation-rules-engine
para procesar las recomendaciones que recoge el servicio recommendation-collector
. Pub/Sub invoca el servicio recommendation-rules-engine
cuando se insertan nuevas recomendaciones en el tema activeassist-recommendations
.
Este servicio analiza las recomendaciones en función de las reglas de negocio que haya definido en la colección activeassist-business-rules
.
En Cloud Shell, abre el directorio
recommendation-rules-engine
:cd ../recommendation-rules-engine
Crea una variable de entorno para tu imagen Docker:
export RULES_ENGINE_IMAGE=gcr.io/$RECO_MGR_PROJECT/recommendation-rules-engine:1.0
Crea la imagen Docker y súbela a Container Registry:
gcloud builds submit --tag $RULES_ENGINE_IMAGE
Crea una cuenta de servicio para que el servicio
recommendation-rules-engine
interactúe con otros servicios de la canalización: Google Cloudgcloud iam service-accounts create recommendation-rules-sa \ --description "Service Account that recommendation-rules-engine uses to invoke other Google Cloud services" \ --display-name "recommendation-rules-sa" \ --project $RECO_MGR_PROJECT
Da acceso a Firestore a la cuenta de servicio del servicio
recommendation-rules-engine
:gcloud projects add-iam-policy-binding $RECO_MGR_PROJECT \ --member serviceAccount:recommendation-rules-sa@$RECO_MGR_PROJECT.iam.gserviceaccount.com \ --role roles/datastore.user
Si estás usando los stubs proporcionados en este tutorial, ve al siguiente paso.
Si vas a probar la canalización con recomendaciones generadas para unGoogle Cloud proyecto en lugar de los stubs proporcionados en este tutorial, ejecuta los siguientes comandos para permitir que la cuenta de servicio del motor de reglas acceda a tu proyecto:
gcloud projects add-iam-policy-binding $TEST_PROJECT_ID \ --member serviceAccount:recommendation-rules-sa@$RECO_MGR_PROJECT.iam.gserviceaccount.com \ --role roles/serviceusage.serviceUsageConsumer gcloud projects add-iam-policy-binding $TEST_PROJECT_ID \ --member serviceAccount:recommendation-rules-sa@$RECO_MGR_PROJECT.iam.gserviceaccount.com \ --role roles/recommender.iamAdmin gcloud projects add-iam-policy-binding $TEST_PROJECT_ID \ --member serviceAccount:recommendation-rules-sa@$RECO_MGR_PROJECT.iam.gserviceaccount.com \ --role roles/resourcemanager.projectIamAdmin
Despliega el servicio de Cloud Run:
gcloud run deploy recommendation-rules-engine \ --image=$RULES_ENGINE_IMAGE \ --no-allow-unauthenticated \ --region $REGION \ --platform managed \ --service-account recommendation-rules-sa@$RECO_MGR_PROJECT.iam.gserviceaccount.com \ --project $RECO_MGR_PROJECT
Acepta las peticiones del sistema.
Obtén la URL
recommendation-rules-engine
:export RECOMMENDER_SERVICE_RULES_URI=`gcloud run services describe recommendation-rules-engine \ --platform managed \ --project $RECO_MGR_PROJECT \ --region $REGION \ --format="value(status.url)"`/process
La URL que obtienes en este paso se invoca cuando hay nuevas recomendaciones disponibles en el tema de Pub/Sub que creas en el siguiente paso.
Crear un tema de Pub/Sub para recomendaciones activas
En esta sección, crearás un tema de Pub/Sub para las recomendaciones de Active Assist que el servicio recommender-collector
obtiene invocando la API Recommender.
En Cloud Shell, crea un tema de Pub/Sub:
gcloud pubsub topics create activeassist-recommendations
Crea una cuenta de servicio para que Pub/Sub la use para invocar el servicio de
recommendation-rules-engine
Cloud Run:gcloud iam service-accounts create recommendation-engine-sub-sa \ --description "Service Account used by Pub/Sub to push recommendations to the recommendation-rules-engine service" \ --display-name "recommendation-engine-sub-sa" \ --project $RECO_MGR_PROJECT
La cuenta de servicio de Pub/Sub debe estar asociada a los roles que necesita para publicar mensajes e invocar el servicio
recommendation-rules-engine
:gcloud projects add-iam-policy-binding $RECO_MGR_PROJECT \ --member serviceAccount:recommendation-engine-sub-sa@$RECO_MGR_PROJECT.iam.gserviceaccount.com \ --role roles/run.invoker \ --project $RECO_MGR_PROJECT
Crear una suscripción al tema de Pub/Sub
Crea una suscripción al servicio
recommendation-rules-engine
:# grant Pub/Sub the permission to create tokens PUBSUB_SERVICE_ACCOUNT="service-$RECO_MGR_PROJECT_NUMBER@gcp-sa-pubsub.iam.gserviceaccount.com" gcloud projects add-iam-policy-binding $RECO_MGR_PROJECT \ --member="serviceAccount:$PUBSUB_SERVICE_ACCOUNT"\ --role='roles/iam.serviceAccountTokenCreator' # configure the subscription push identity gcloud pubsub subscriptions create active-assist-recommendations-for-rules-engine \ --topic=activeassist-recommendations \ --topic-project=$RECO_MGR_PROJECT \ --push-auth-service-account=recommendation-engine-sub-sa@$RECO_MGR_PROJECT.iam.gserviceaccount.com \ --ack-deadline=60 \ --push-endpoint=$RECOMMENDER_SERVICE_RULES_URI
Permite que la cuenta de servicio
recommendation-engine-sub-sa
que has creado invoque el serviciorecommendation-rules-engine
:gcloud run services add-iam-policy-binding recommendation-rules-engine \ --member=serviceAccount:recommendation-engine-sub-sa@$RECO_MGR_PROJECT.iam.gserviceaccount.com \ --role=roles/run.invoker \ --region=$REGION \ --platform=managed
Ejecutar pruebas integrales con stubs
La plataforma genera las recomendaciones de Active Assist en función de los patrones de uso y las métricas del sistema. Cada categoría de recomendación puede usar un periodo predeterminado diferente del pasado para analizar los datos de uso y las métricas en función de los cuales se generan las recomendaciones. Por ejemplo, la plataforma genera recomendaciones de IAM en función de los patrones de uso de los últimos 90 días.
Para probar la canalización completa, el repositorio que has clonado para este tutorial proporciona recomendaciones de ejemplo (stubs) que puedes usar para ejecutar la canalización completa.
En esta sección, harás lo siguiente:
- Inspecciona las recomendaciones de stubs.
- Invoca la canalización manualmente.
- Comprueba si se genera una notificación y se envía al canal de Slack que has creado.
Revisa las recomendaciones de ejemplo que se proporcionan en el repositorio:
cat ../recommendation-collector/stub.json
Este archivo proporciona una recomendación de ejemplo con una acción
REMOVE
para un rol de ejemplo llamadoroles/gkehub.connect
.Ejecuta el siguiente comando para que Cloud Scheduler ejecute la tarea inmediatamente, en lugar de esperar a la siguiente ejecución programada:
gcloud scheduler jobs run recommender-iam-scheduler
En la página de la consola Cloud Scheduler, en la columna Resultado de la tarea
recommender-iam-scheduler
, comprueba que el resultado sea Éxito.Para ver una vista detallada de los pasos que ejecuta cada servicio, también puedes consultar los registros de servicio de Cloud Run del servicio
recommendation-collector
y del serviciorecommendation-rules-engine
.Cuando se ejecute correctamente la canalización integral sin servidor que crees en este tutorial, se generará una notificación de Slack que contendrá los detalles de la vinculación de roles recomendada para que la elimines. A continuación, se muestra un ejemplo de la notificación que recibes:
Project xxxxxxxx\ **Impact**: SECURITY\ This role has not been used during the observation window.\ **Role**: roles/gkehub.connect\ **Member**: serviceAccount:sample-sa@recommendation-sample.iam.gserviceaccount.com\ **Action**: remove
Limpieza
Para evitar que los recursos utilizados en este tutorial se cobren en tu cuenta de Google Cloud, elimina el proyecto que contiene los recursos o conserva el proyecto y elimina los recursos.
Siguientes pasos
- Consulta información sobre cómo usar las recomendaciones en un sistema de infraestructura como código.
- Consulta más información sobre las tecnologías Google Cloud sin servidor.
- Consulta cómo integrar las recomendaciones de Policy Intelligence en una canalización de IaC.