

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Administración de un proyecto de Etiquetas personalizadas de Amazon Rekognition
<a name="managing-project"></a>

En Etiquetas personalizadas de Amazon Rekognition, un proyecto sirve para gestionar los modelos que cree para una aplicación práctica específica. El proyecto se encarga de administrar los conjuntos de datos, el entrenamiento de los modelos, las versiones de los modelos, la evaluación de los modelos y el funcionamiento de los modelos del proyecto. 

**Topics**
+ [Eliminación de un proyecto de Etiquetas personalizadas de Amazon Rekognition](mp-delete-project.md)
+ [Descripción de un proyecto (SDK)](md-describing-project-sdk.md)
+ [Crear un proyecto con AWS CloudFormation](cloudformation.md)

# Eliminación de un proyecto de Etiquetas personalizadas de Amazon Rekognition
<a name="mp-delete-project"></a>

Puede eliminar un proyecto mediante la consola Amazon Rekognition o llamando a la API. [DeleteProject](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_DeleteProject) Para eliminar un proyecto, primero debe eliminar todos los modelos asociados. No se puede recuperar un proyecto o modelo después de eliminarlo. 

**Topics**
+ [Eliminación de un proyecto de Etiquetas personalizadas de Amazon Rekognition (consola)](#mp-delete-project-console)
+ [Eliminación de un proyecto de Etiquetas personalizadas de Amazon Rekognition (SDK)](#mp-delete-project-sdk)

## Eliminación de un proyecto de Etiquetas personalizadas de Amazon Rekognition (consola)
<a name="mp-delete-project-console"></a>

Puede eliminar un proyecto en la página de proyectos o en la página de detalles de un proyecto. En el siguiente procedimiento, se explica cómo eliminar un proyecto en la página de proyectos.

La consola de Etiquetas personalizadas de Amazon Rekognition elimina los modelos y conjuntos de datos asociados mientras se elimina el proyecto. No es posible eliminar un proyecto si alguno de los modelos está en ejecución o en fase de entrenamiento. Para detener un modelo en ejecución, consulte [Detención de un modelo de Etiquetas personalizadas de Amazon Rekognition (SDK)](rm-stop.md#rm-stop-sdk). Si el modelo se está entrenando, espere a que termine antes de eliminar el proyecto.

**Cómo eliminar un proyecto (consola)**

1. Abra la consola Amazon Rekognition en. [https://console.aws.amazon.com/rekognition/](https://console.aws.amazon.com/rekognition/)

1. Elija **Usar etiquetas personalizadas**.

1. Elija **Comenzar**. 

1. En el panel de navegación izquierdo, elija **Proyectos**.

1. En la página **Proyectos**, seleccione el botón que aparece junto al proyecto que desea eliminar. Se muestra la lista de proyectos echo-devices-project, con una versión creada el 25 de marzo de 2020 y las opciones para eliminar, entrenar un nuevo modelo o crear un proyecto.  
![\[Lista de proyectos que muestra el echo-devices-project proyecto y sus detalles.\]](http://docs.aws.amazon.com/es_es/rekognition/latest/customlabels-dg/images/delete-projects-page.png)

1. En la parte superior de la página, elija **Eliminar**. Tras esto, se abrirá el cuadro de diálogo **Eliminar proyecto**.

1. En caso de que el proyecto no tenga modelos asociados:

   1. Escriba **eliminar** para eliminar el proyecto.

   1. Seleccione **Eliminar** para eliminar el modelo.

1. En caso de que el proyecto tenga modelos asociados:

   1. Escriba **eliminar** para confirmar que desea eliminar los modelos y conjuntos de datos.

   1. Elija **Eliminar modelos asociados**, **Eliminar conjuntos de datos asociados** o **Eliminar conjuntos de datos y modelos asociados**, en función de si el modelo tiene conjuntos de datos, modelos o ambos. El proceso de eliminación del modelo puede tardar un tiempo.
**nota**  
La consola no puede eliminar modelos que estén en fase de entrenamiento o en ejecución. Inténtelo de nuevo después de detener los modelos en ejecución que aparecen en la lista y espere a que los modelos que se estén entrenando terminen.  
Si **cierra** el cuadro de diálogo mientras se elimina el modelo, los modelos seguirán borrándose. En otro momento, podrá eliminar el proyecto repitiendo este procedimiento. 

       El panel para eliminar un modelo proporciona instrucciones explícitas para eliminar los modelos asociados.   
![\[Interfaz para eliminar un proyecto.\]](http://docs.aws.amazon.com/es_es/rekognition/latest/customlabels-dg/images/delete-project-with-models.png)

   1. Escriba **eliminar** para confirmar que quiere eliminar el proyecto.

   1. Seleccione **Eliminar** para eliminar el proyecto.  
![\[Cuadro de diálogo que confirma la eliminación del proyecto echo-devices-project «» sin modelos.\]](http://docs.aws.amazon.com/es_es/rekognition/latest/customlabels-dg/images/delete-project.png)

## Eliminación de un proyecto de Etiquetas personalizadas de Amazon Rekognition (SDK)
<a name="mp-delete-project-sdk"></a>

Para eliminar un proyecto de Amazon Rekognition Custom Labels, debe [DeleteProject](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_DeleteProject)llamar y proporcionar el nombre de recurso de Amazon (ARN) del proyecto que desea eliminar. Para obtener los proyectos ARNs de su AWS cuenta, llame. [DescribeProjects](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_DescribeProjects) La respuesta incluye un conjunto de [ProjectDescription](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_ProjectDescription)objetos. El ARN del proyecto se corresponde con el campo `ProjectArn`. Puede usar el nombre del proyecto para identificar el ARN del proyecto. Por ejemplo, `arn:aws:rekognition:us-east-1:123456789010:project/project name/1234567890123`. 

Antes de eliminar un proyecto, primero debe eliminar todos los modelos y conjuntos de datos del proyecto. Para obtener más información, consulte [Eliminación de un modelo de Etiquetas personalizadas de Amazon Rekognition (SDK)](tm-delete-model.md#tm-delete-model-sdk) y [Eliminación de un conjuntos de datos](md-delete-dataset.md).

Puede que el proyecto tarde unos minutos en eliminarse. Durante ese tiempo, el estado del proyecto será `DELETING`. El proyecto se elimina si en una llamada posterior a [DescribeProjects](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_DescribeProjects) no incluye el proyecto que ha eliminado.

**Para eliminar un proyecto (SDK)**

1. Si aún no lo ha hecho, instale y configure el AWS CLI y el AWS SDKs. Para obtener más información, consulte [Paso 4: Configure y AWS CLI AWS SDKs](su-awscli-sdk.md).

1. Utilice el código siguiente para eliminar un proyecto. 

------
#### [ AWS CLI ]

   Cambie el valor de `project-arn` por el nombre del proyecto que desee eliminar.

   ```
   aws rekognition delete-project --project-arn project_arn \
     --profile custom-labels-access
   ```

------
#### [ Python ]

   Utilice el siguiente código. Indique los siguientes parámetros de línea de comandos:
   + `project_arn`: el ARN del proyecto que desea eliminar.

   ```
   # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
   # SPDX-License-Identifier: Apache-2.0
   
   """
   Purpose
   Amazon Rekognition Custom Labels project example used in the service documentation:
   https://docs.aws.amazon.com/rekognition/latest/customlabels-dg/mp-delete-project.html
   Shows how to delete an existing Amazon Rekognition Custom Labels project. 
   You must first delete any models and datasets that belong to the project.
   """
   
   import argparse
   import logging
   import time
   import boto3
   
   
   from botocore.exceptions import ClientError
   
   logger = logging.getLogger(__name__)
   
   
   def find_forward_slash(input_string, n):
       """
       Returns the location of '/' after n number of occurences. 
       :param input_string: The string you want to search
       : n: the occurence that you want to find.
       """
       position = input_string.find('/')
       while position >= 0 and n > 1:
           position = input_string.find('/', position + 1)
           n -= 1
       return position
   
   
   def delete_project(rek_client, project_arn):
       """
       Deletes an Amazon Rekognition Custom Labels project.
       :param rek_client: The Amazon Rekognition Custom Labels Boto3 client.
       :param project_arn: The ARN of the project that you want to delete.
       """
   
       try:
           # Delete the project
           logger.info("Deleting project: %s", project_arn)
   
           response = rek_client.delete_project(ProjectArn=project_arn)
   
           logger.info("project status: %s",response['Status'])
   
           deleted = False
   
           logger.info("waiting for project deletion: %s", project_arn)
   
           # Get the project name
           start = find_forward_slash(project_arn, 1) + 1
           end = find_forward_slash(project_arn, 2)
           project_name = project_arn[start:end]
   
           project_names = [project_name]
   
           while deleted is False:
   
               project_descriptions = rek_client.describe_projects(
                   ProjectNames=project_names)['ProjectDescriptions']
   
               if len(project_descriptions) == 0:
                   deleted = True
   
               else:
                   time.sleep(5)
   
           logger.info("project deleted: %s",project_arn)
   
           return True
   
       except ClientError as err:
           logger.exception(
               "Couldn't delete project - %s: %s",
               project_arn, err.response['Error']['Message'])
           raise
   
   
   def add_arguments(parser):
       """
       Adds command line arguments to the parser.
       :param parser: The command line parser.
       """
   
       parser.add_argument(
           "project_arn", help="The ARN of the project that you want to delete."
       )
   
   
   def main():
   
       logging.basicConfig(level=logging.INFO,
                           format="%(levelname)s: %(message)s")
   
       try:
   
           # get command line arguments
           parser = argparse.ArgumentParser(usage=argparse.SUPPRESS)
           add_arguments(parser)
           args = parser.parse_args()
   
           print(f"Deleting project: {args.project_arn}")
   
           # Delete the project.
           session = boto3.Session(profile_name='custom-labels-access')
           rekognition_client = session.client("rekognition")
   
           delete_project(rekognition_client,
                          args.project_arn)
   
           print(f"Finished deleting project: {args.project_arn}")
   
       except ClientError as err:
           error_message = f"Problem deleting project: {err}"
           logger.exception(error_message)
           print(error_message)
   
   
   if __name__ == "__main__":
       main()
   ```

------
#### [ Java V2 ]

   Utilice el siguiente código. Indique los siguientes parámetros de línea de comandos:
   + `project_arn`: el ARN del proyecto que desea eliminar.

   ```
   /*
   Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
   SPDX-License-Identifier: Apache-2.0
   */
   
   package com.example.rekognition;
   
   import java.util.List;
   import java.util.Objects;
   import java.util.logging.Level;
   import java.util.logging.Logger;
   
   import software.amazon.awssdk.auth.credentials.ProfileCredentialsProvider;
   import software.amazon.awssdk.regions.Region;
   import software.amazon.awssdk.services.rekognition.RekognitionClient;
   import software.amazon.awssdk.services.rekognition.model.DeleteProjectRequest;
   import software.amazon.awssdk.services.rekognition.model.DeleteProjectResponse;
   import software.amazon.awssdk.services.rekognition.model.DescribeProjectsRequest;
   import software.amazon.awssdk.services.rekognition.model.DescribeProjectsResponse;
   import software.amazon.awssdk.services.rekognition.model.ProjectDescription;
   import software.amazon.awssdk.services.rekognition.model.RekognitionException;
   
   public class DeleteProject {
   
       public static final Logger logger = Logger.getLogger(DeleteProject.class.getName());
   
       public static void deleteMyProject(RekognitionClient rekClient, String projectArn) throws InterruptedException {
   
           try {
   
               logger.log(Level.INFO, "Deleting project: {0}", projectArn);
   
               // Delete the project
   
               DeleteProjectRequest deleteProjectRequest = DeleteProjectRequest.builder().projectArn(projectArn).build();
               DeleteProjectResponse response = rekClient.deleteProject(deleteProjectRequest);
   
               logger.log(Level.INFO, "Status: {0}", response.status());
   
               // Wait until deletion finishes
   
               Boolean deleted = false;
   
               do {
   
   				    DescribeProjectsRequest describeProjectsRequest = DescribeProjectsRequest.builder().build();
                       DescribeProjectsResponse describeResponse = rekClient.describeProjects(describeProjectsRequest);
                       List<ProjectDescription> projectDescriptions = describeResponse.projectDescriptions();
   
                       deleted = true;
   
                       for (ProjectDescription projectDescription : projectDescriptions) {
   
                           if (Objects.equals(projectDescription.projectArn(), projectArn)) {
                               deleted = false;
                               logger.log(Level.INFO, "Not deleted: {0}", projectDescription.projectArn());
                               Thread.sleep(5000);
                               break;
                           }
                       }
   
               } while (Boolean.FALSE.equals(deleted));
   
               logger.log(Level.INFO, "Project deleted: {0} ", projectArn);
   
           } catch (
   
           RekognitionException e) {
               logger.log(Level.SEVERE, "Client error occurred: {0}", e.getMessage());
               throw e;
           }
   
       }
   
       public static void main(String[] args) {
   
           final String USAGE = "\n" + "Usage: " + "<project_arn>\n\n" + "Where:\n"
                + "   project_arn - The ARN of the project that you want to delete.\n\n";
   
           if (args.length != 1) {
                System.out.println(USAGE);
   	         System.exit(1);
           }
   
           String projectArn = args[0];
   
           try {
   
               RekognitionClient rekClient = RekognitionClient.builder()
                   .region(Region.US_WEST_2)
                   .credentialsProvider(ProfileCredentialsProvider.create("custom-labels-access"))
                   .build();
   
               // Delete the project.
               deleteMyProject(rekClient, projectArn);
   
               System.out.println(String.format("Project deleted: %s", projectArn));
   
               rekClient.close();
   
           } catch (RekognitionException rekError) {
               logger.log(Level.SEVERE, "Rekognition client error: {0}", rekError.getMessage());
               System.exit(1);
           }
   
           catch (InterruptedException intError) {
               logger.log(Level.SEVERE, "Exception while sleeping: {0}", intError.getMessage());
               System.exit(1);
           }
       }
   
   }
   ```

------

# Descripción de un proyecto (SDK)
<a name="md-describing-project-sdk"></a>

Puede utilizar la API de `DescribeProjects` para obtener información sobre sus proyectos.

**Cómo describir un proyecto (SDK)**

1. Si aún no lo ha hecho, instale y configure el AWS CLI y el AWS SDKs. Para obtener más información, consulte [Paso 4: Configure y AWS CLI AWS SDKs](su-awscli-sdk.md).

1. Utilice el siguiente código de ejemplo para describir un proyecto. Cambie `project_name` por el nombre del proyecto que desee describir. Si no indica `--project-names`, se devolverán las descripciones de todos los proyectos.

------
#### [ AWS CLI ]

   ```
   aws rekognition describe-projects --project-names project_name \
     --profile custom-labels-access
   ```

------
#### [ Python ]

   Utilice el siguiente código. Indique los siguientes parámetros de línea de comandos:
   + project\$1name``: el nombre del proyecto que desee describir. Si no indica un nombre, se devolverán las descripciones de todos los proyectos.

   ```
   # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
   # SPDX-License-Identifier: Apache-2.0
   
   """
   Purpose
   Shows how to describe an Amazon Rekognition Custom Labels project.
   """
   import argparse
   import logging
   import json
   import boto3
   from botocore.exceptions import ClientError
   
   logger = logging.getLogger(__name__)
   
   
   def display_project_info(project):
       """
       Displays information about a Custom Labels project.
       :param project: The project that you want to display information about.
       """
       print(f"Arn: {project['ProjectArn']}")
       print(f"Status: {project['Status']}")
   
       if len(project['Datasets']) == 0:
           print("Datasets: None")
       else:
           print("Datasets:")
   
       for dataset in project['Datasets']:
           print(f"\tCreated: {str(dataset['CreationTimestamp'])}")
           print(f"\tType: {dataset['DatasetType']}")
           print(f"\tARN: {dataset['DatasetArn']}")
           print(f"\tStatus: {dataset['Status']}")
           print(f"\tStatus message: {dataset['StatusMessage']}")
           print(f"\tStatus code: {dataset['StatusMessageCode']}")
           print()
       print()
   
   
   def describe_projects(rek_client, project_name):
       """
       Describes an Amazon Rekognition Custom Labels project, or all projects.
       :param rek_client: The Amazon Rekognition Custom Labels Boto3 client.
       :param project_name: The project you want to describe. Pass None to describe all projects.
       """
   
       try:
           # Describe the project
           if project_name is None:
               logger.info("Describing all projects.")
           else:
               logger.info("Describing project: %s.",project_name)
   
           if project_name is None:
               response = rek_client.describe_projects()
           else:
               project_names = json.loads('["' + project_name + '"]')
               response = rek_client.describe_projects(ProjectNames=project_names)
   
           print('Projects\n--------')
           if len(response['ProjectDescriptions']) == 0:
               print("Project(s) not found.")
           else:
               for project in response['ProjectDescriptions']:
                   display_project_info(project)
   
           logger.info("Finished project description.")
   
       except ClientError as err:
           logger.exception(
               "Couldn't describe project - %s: %s",
               project_name,err.response['Error']['Message'] )
           raise
   
   
   def add_arguments(parser):
       """
       Adds command line arguments to the parser.
       :param parser: The command line parser.
       """
   
       parser.add_argument(
           "--project_name",  help="The name of the project that you want to describe.", required=False
       )
   
   
   def main():
   
       logging.basicConfig(level=logging.INFO,
                           format="%(levelname)s: %(message)s")
   
       try:
   
           # Get command line arguments.
           parser = argparse.ArgumentParser(usage=argparse.SUPPRESS)
           add_arguments(parser)
   
           args = parser.parse_args()
   
           print(f"Describing projects: {args.project_name}")
   
           # Describe the project.
           session = boto3.Session(profile_name='custom-labels-access')
           rekognition_client = session.client("rekognition")
   
           describe_projects(rekognition_client,
                             args.project_name)
   
           if args.project_name is None:
               print("Finished describing all projects.")
           else:
               print("Finished describing project %s.", args.project_name)
   
       except ClientError as err:
           error_message = f"Problem describing project: {err}"
           logger.exception(error_message)
           print(error_message)
   
   
   if __name__ == "__main__":
       main()
   ```

------
#### [ Java V2 ]

   Utilice el siguiente código. Indique los siguientes parámetros de línea de comandos:
   + `project_name`: el ARN del proyecto que desea describir. Si no indica un nombre, se devolverán las descripciones de todos los proyectos.

   ```
   /*
      Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
      SPDX-License-Identifier: Apache-2.0
   */
   
   package com.example.rekognition;
   
   import java.util.ArrayList;
   import java.util.List;
   import java.util.logging.Level;
   import java.util.logging.Logger;
   
   import software.amazon.awssdk.auth.credentials.ProfileCredentialsProvider;
   import software.amazon.awssdk.services.rekognition.RekognitionClient;
   import software.amazon.awssdk.services.rekognition.model.DatasetMetadata;
   import software.amazon.awssdk.services.rekognition.model.DescribeProjectsRequest;
   import software.amazon.awssdk.services.rekognition.model.DescribeProjectsResponse;
   import software.amazon.awssdk.services.rekognition.model.ProjectDescription;
   import software.amazon.awssdk.services.rekognition.model.RekognitionException;
   
   public class DescribeProjects {
   
       public static final Logger logger = Logger.getLogger(DescribeProjects.class.getName());
   
       public static void describeMyProjects(RekognitionClient rekClient, String projectName) {
   
           DescribeProjectsRequest descProjects = null;
   
           // If a single project name is supplied, build projectNames argument
   
           List<String> projectNames = new ArrayList<String>();
   
           if (projectName == null) {
               descProjects = DescribeProjectsRequest.builder().build();
           } else {
               projectNames.add(projectName);
               descProjects = DescribeProjectsRequest.builder().projectNames(projectNames).build();
           }
   
           // Display useful information for each project.
   
           DescribeProjectsResponse resp = rekClient.describeProjects(descProjects);
   
           for (ProjectDescription projectDescription : resp.projectDescriptions()) {
   
               System.out.println("ARN: " + projectDescription.projectArn());
               System.out.println("Status: " + projectDescription.statusAsString());
               if (projectDescription.hasDatasets()) {
                   for (DatasetMetadata datasetDescription : projectDescription.datasets()) {
                       System.out.println("\tdataset Type: " + datasetDescription.datasetTypeAsString());
                       System.out.println("\tdataset ARN: " + datasetDescription.datasetArn());
                       System.out.println("\tdataset Status: " + datasetDescription.statusAsString());
                   }
               }
               System.out.println();
           }
   
       }
   
       public static void main(String[] args) {
   
           String projectArn = null;
   
           // Get command line arguments
   
           final String USAGE = "\n" + "Usage: " + "<project_name>\n\n" + "Where:\n"
                   + "   project_name - (Optional) The name of the project that you want to describe. If not specified, all projects "
                   + "are described.\n\n";
   
           if (args.length > 1) {
               System.out.println(USAGE);
               System.exit(1);
           }
   
           if (args.length == 1) {
               projectArn = args[0];
           }
   
           try {
   
               // Get the Rekognition client
               RekognitionClient rekClient = RekognitionClient.builder()
                   .credentialsProvider(ProfileCredentialsProvider.create("custom-labels-access"))
                   .region(Region.US_WEST_2)
                   .build();
               
               // Describe projects
   
               describeMyProjects(rekClient, projectArn);
   
               rekClient.close();
   
           } catch (RekognitionException rekError) {
               logger.log(Level.SEVERE, "Rekognition client error: {0}", rekError.getMessage());
               System.exit(1);
           }
   
       }
   
   }
   ```

------

# Crear un proyecto con AWS CloudFormation
<a name="cloudformation"></a>

Amazon Rekognition Custom Labels está AWS CloudFormation integrado con un servicio que le ayuda a modelar y AWS configurar sus recursos para que pueda dedicar menos tiempo a crear y administrar sus recursos e infraestructura. Usted crea una plantilla que describe todos los AWS recursos que desea y CloudFormation se encarga de aprovisionar y configurar esos recursos por usted.

Se puede utilizar CloudFormation para aprovisionar y configurar proyectos de etiquetas personalizadas de Amazon Rekognition. 

Cuando la utilices CloudFormation, podrás reutilizar la plantilla para configurar tus proyectos de Amazon Rekognition Custom Labels de forma coherente y repetida. Simplemente describa sus proyectos una vez y, a continuación, aprovisione los mismos proyectos una y otra vez en varias AWS cuentas y regiones. 

## Etiquetas y plantillas personalizadas de Amazon Rekognition CloudFormation
<a name="working-with-templates"></a>

Para aprovisionar y configurar proyectos de Etiquetas personalizadas de Amazon Rekognition y los servicios relacionados, debe conocer el funcionamiento de las [plantillas de CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-guide.html). Las plantillas son archivos de texto con formato JSON o YAML. Estas plantillas describen los recursos que desea aprovisionar en sus pilas. CloudFormation Si no estás familiarizado con JSON o YAML, puedes usar CloudFormation Designer para ayudarte a empezar con CloudFormation las plantillas. Para obtener más información, consulte [¿Qué es Designer de CloudFormation ? en la ](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/working-with-templates-cfn-designer.html) Guía del usuario de *AWS CloudFormation *.

 Para obtener información de referencia sobre los proyectos de Etiquetas personalizadas de Amazon Rekognition, incluidos ejemplos de plantillas JSON y YAML, consulte [Referencia de tipo de recurso de Rekognition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_Rekognition.html).

## Más información sobre CloudFormation
<a name="learn-more-cloudformation"></a>

Para obtener más información CloudFormation, consulte los siguientes recursos:
+ [AWS CloudFormation](https://aws.amazon.com/cloudformation/)
+ [AWS CloudFormation Guía del usuario](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)
+ [CloudFormation Referencia de la API](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/Welcome.html)
+ [AWS CloudFormation Guía del usuario de la interfaz de línea de comandos](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html)