

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.

# Cómo empezar con Amazon DataZone
<a name="getting-started"></a>

La información de esta sección te ayuda a empezar a utilizar Amazon DataZone. Si eres nuevo en Amazon DataZone, empieza por familiarizarte con los conceptos y la terminología que se presentan en[DataZone Terminología y conceptos de Amazon](datazone-concepts.md).

Antes de iniciar los pasos de cualquiera de estos flujos de trabajo de inicio rápido, debe completar los procedimientos descritos en la sección [Configuración](setting-up.md) de esta guía. Si utilizas una AWS cuenta completamente nueva, debes [configurar los permisos necesarios para usar la consola de DataZone administración de Amazon](create-iam-roles.md). Si utilizas una AWS cuenta que tiene objetos del AWS Glue Data Catalog existentes, también debes [configurar los permisos de Lake Formation para Amazon DataZone](lake-formation-permissions-for-datazone.md). 

Esta sección de introducción explica los siguientes flujos de trabajo de DataZone inicio rápido de Amazon:

**Topics**
+ [Guía de DataZone inicio rápido de Amazon con datos de AWS Glue](quickstart-glue.md)
+ [Guía de DataZone inicio rápido de Amazon con los datos de Amazon Redshift](quickstart-rs.md)
+ [Guía de DataZone inicio rápido de Amazon con scripts de muestra](quickstart-apis.md)

# Guía de DataZone inicio rápido de Amazon con datos de AWS Glue
<a name="quickstart-glue"></a>

Completa los siguientes pasos de inicio rápido para recorrer todos los flujos de trabajo de productores y consumidores de datos en Amazon DataZone con ejemplos de datos de AWS Glue. 

**Topics**
+ [Paso 1: Crea el portal de DataZone dominios y datos de Amazon](#create-domain-gs-glue)
+ [Paso 2: Crear el proyecto de publicación](#create-publishing-project-gs-glue)
+ [Paso 3: Crear el entorno](#create-environment-gs-glue)
+ [Paso 4: Producir datos para su publicación](#produce-data-for-publishing-gs-glue)
+ [Paso 5: Recopila metadatos de AWS Glue](#gather-metadata-from-glue-gs-glue)
+ [Paso 6: Seleccione y publique el activo de datos](#curate-data-asset-gs-glue)
+ [Paso 7: Crear el proyecto para el análisis de datos](#create-project-for-data-analysis-gs-glue)
+ [Paso 8: Crear un entorno para el análisis de datos](#create-environment-gs2-glue)
+ [Paso 9: Buscar en el catálogo de datos y suscribirse a los datos](#search-catalog-subscribe-gs-glue)
+ [Paso 10: Aprobar la solicitud de suscripción](#approve-subscription-request-gs-glue)
+ [Paso 11: Cree una consulta y analice los datos en Amazon Athena](#analyze-data-gs-glue)

## Paso 1: Crea el portal de DataZone dominios y datos de Amazon
<a name="create-domain-gs-glue"></a>

En esta sección se describen los pasos para crear un DataZone dominio de Amazon y un portal de datos para este flujo de trabajo.

Complete el siguiente procedimiento para crear un DataZone dominio de Amazon. Para obtener más información sobre DataZone los dominios de Amazon, consulte[DataZone Terminología y conceptos de Amazon](datazone-concepts.md). 

1. **Ve a la DataZone consola de Amazon en [https://console.aws.amazon.com/datazone](https://console.aws.amazon.com/datazone), inicia sesión y, a continuación, selecciona Crear dominio.** 
**nota**  
Si quieres usar un DataZone dominio de Amazon existente para este flujo de trabajo, selecciona **Ver dominios**, elige el dominio que quieres usar y, a continuación, continúa con el paso 2 de creación de un proyecto de publicación.

1. En la página **Crear dominio**, proporcione valores para los siguientes campos: 
   + **Nombre**: especifique un nombre para su dominio. A los efectos de este flujo de trabajo, puede llamar a este dominio **Marketing**.
   + **Descripción**: especifique una descripción de dominio opcional.
   + **Cifrado de datos**: tus datos se cifran de forma predeterminada con una clave que te AWS pertenece y administra por ti. Para este caso de uso, puede dejar la configuración de cifrado de datos predeterminada.

     Para obtener más información sobre las claves administradas por el cliente, consulte [El cifrado de datos en reposo para Amazon DataZone](encryption-rest-datazone.md). Si usa su propia clave de KMS para el cifrado de datos, debe incluir la siguiente declaración en su valor predeterminado [AmazonDataZoneDomainExecutionRole](AmazonDataZoneDomainExecutionRole.md).

------
#### [ JSON ]

****  

     ```
     {
         "Version":"2012-10-17",		 	 	 
         "Statement": [
             {
                 "Sid": "Statement1",
                 "Effect": "Allow",
                 "Action": [
                     "kms:Decrypt",
                     "kms:DescribeKey",
                     "kms:GenerateDataKey"
                 ],
                 "Resource": [
                     "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
                 ]
             }
         ]
     }
     ```

------
   + **Acceso al servicio**: deje sin cambios la opción seleccionada de forma predeterminada **Usar un rol predeterminado**.
**nota**  
Si utilizas un DataZone dominio de Amazon existente para este flujo de trabajo, puedes elegir la opción **Usar un rol de servicio existente** y, a continuación, elegir un rol existente en el menú desplegable.
   + En **Configuración rápida**, seleccione **Configurar esta cuenta para el consumo y la publicación de datos**. Esta opción habilita los DataZone planos integrados en Amazon de **Data Lake** y **Data Warehouse**, y configura los permisos, los recursos, un proyecto predeterminado y los perfiles de entorno de data lake y data warehouse necesarios para esta cuenta. Para obtener más información sobre los DataZone blueprints de Amazon, consulte[DataZone Terminología y conceptos de Amazon](datazone-concepts.md).
   + No realice cambios en el resto de campos de la sección **Detalles de permisos**. 
**nota**  
Si ya tienes un DataZone dominio de Amazon, puedes elegir la opción **Usar un rol de servicio existente** y, a continuación, elegir un rol existente en el menú desplegable para el rol **Glue Manage Access, el rol** **Redshift Manage Access y el rol** **Provisioning**. 
   + No realice cambios en los campos de **Etiquetas**.
   + Elija **Crear un dominio**.

1. Una vez que el dominio se haya creado correctamente, selecciónelo y, en la página de resumen del dominio, anote la **URL del portal de datos** correspondiente a este dominio. Puedes usar esta URL para acceder a tu portal de DataZone datos de Amazon y completar el resto de los pasos de este flujo de trabajo. También puede ir al portal de datos seleccionando **Abrir el portal de datos**.

**nota**  
En la versión actual de Amazon DataZone, una vez creado el dominio, la URL generada para el portal de datos no se puede modificar.

La creación del dominio puede tardar varios minutos en completarse. Espere a que el dominio tenga el estado de **Disponible** antes de ir al paso siguiente.

## Paso 2: Crear el proyecto de publicación
<a name="create-publishing-project-gs-glue"></a>

En esta sección se describen los pasos necesarios para crear el proyecto de publicación para este flujo de trabajo.

1. Cuando completes el paso 1 anterior y crees un dominio, verás el mensaje ¡**Bienvenido a Amazon DataZone\$1** ventana. En esta ventana, seleccione **Crear proyecto**.

1. Especifique el nombre del proyecto, por ejemplo, para este flujo de trabajo, puede asignarle un nombre **SalesDataPublishingProject**, dejar el resto de los campos sin cambios y, a continuación, seleccionar **Crear**.

## Paso 3: Crear el entorno
<a name="create-environment-gs-glue"></a>

En esta sección se describen los pasos necesarios para crear un entorno para este flujo de trabajo.

1. Cuando haya completado el Paso 2 anterior y haya creado su proyecto, verá la ventana **Su proyecto está listo para usar**. En esta ventana, seleccione **Crear entorno**.

1. En la página **Crear entorno**, especifique lo siguiente y, a continuación, elija **Crear entorno**.

1. Especifique los valores para los siguientes campos:
   + **Nombre**: especifique el nombre del entorno. Para este tutorial, puede llamarlo `Default data lake environment`.
   + **Descripción**: especifique una descripción para el entorno.
   + **Perfil de entorno**: elija el perfil de **DataLakeProfile**entorno. Esto le permite utilizar Amazon DataZone en este flujo de trabajo para trabajar con datos en Amazon S3, AWS Glue Catalog y Amazon Athena.
   + Para este tutorial, no realice cambios en el resto de los campos.

1. Seleccione **Creación de entorno**.

## Paso 4: Producir datos para su publicación
<a name="produce-data-for-publishing-gs-glue"></a>

En esta sección se describen los pasos necesarios para producir datos para su publicación en este flujo de trabajo.

1. Cuando complete el paso 3 anterior, en su proyecto `SalesDataPublishingProject`, en el panel de la derecha, en **Herramientas de análisis**, elija **Amazon Athena**. Esto abre el editor de consultas de Athena con las credenciales de su proyecto para la autenticación. Asegúrese de que su entorno de publicación esté seleccionado en el menú desplegable del ** DataZone entorno de Amazon** y de que la `<environment_name>%_pub_db` base de datos esté seleccionada como en el editor de consultas.

1. En este tutorial, utilizará el script de consulta **Create Table as Select** (CTAS) para crear una tabla nueva que desee publicar en Amazon. DataZone En su editor de consultas, ejecute este script de CTAS para crear una tabla `mkt_sls_table` que pueda publicar y poner a disposición para su búsqueda y suscripción. 

   ```
   CREATE TABLE mkt_sls_table AS
   SELECT 146776932 AS ord_num, 23 AS sales_qty_sld, 23.4 AS wholesale_cost, 45.0 as lst_pr, 43.0 as sell_pr, 2.0 as disnt, 12 as ship_mode,13 as warehouse_id, 23 as item_id, 34 as ctlg_page, 232 as ship_cust_id, 4556 as bill_cust_id
   UNION ALL SELECT 46776931, 24, 24.4, 46, 44, 1, 14, 15, 24, 35, 222, 4551
   UNION ALL SELECT 46777394, 42, 43.4, 60, 50, 10, 30, 20, 27, 43, 241, 4565
   UNION ALL SELECT 46777831, 33, 40.4, 51, 46, 15, 16, 26, 33, 40, 234, 4563
   UNION ALL SELECT 46779160, 29, 26.4, 50, 61, 8, 31, 15, 36, 40, 242, 4562
   UNION ALL SELECT 46778595, 43, 28.4, 49, 47, 7, 28, 22, 27, 43, 224, 4555
   UNION ALL SELECT 46779482, 34, 33.4, 64, 44, 10, 17, 27, 43, 52, 222, 4556
   UNION ALL SELECT 46779650, 39, 37.4, 51, 62, 13, 31, 25, 31, 52, 224, 4551
   UNION ALL SELECT 46780524, 33, 40.4, 60, 53, 18, 32, 31, 31, 39, 232, 4563
   UNION ALL SELECT 46780634, 39, 35.4, 46, 44, 16, 33, 19, 31, 52, 242, 4557
   UNION ALL SELECT 46781887, 24, 30.4, 54, 62, 13, 18, 29, 24, 52, 223, 4561
   ```

   Asegúrese de que la tabla **mkt\$1sls\$1table** se ha creado correctamente en la sección **Tablas y vistas** de la parte izquierda. Ahora tienes un activo de datos que se puede publicar en el DataZone catálogo de Amazon.

## Paso 5: Recopila metadatos de AWS Glue
<a name="gather-metadata-from-glue-gs-glue"></a>

En esta sección se describe el paso de recopilar metadatos de AWS Glue para este flujo de trabajo.

1. Una vez que hayas completado el paso 4 anterior, en el portal de DataZone datos de Amazon, elige el `SalesDataPublishingProject` proyecto, luego elige la pestaña **Datos** y, a continuación, elige **Fuentes de datos** en el panel de la izquierda.

1. Elija el origen que se creó como parte del proceso de creación del entorno. 

1. Seleccione **Ejecutar** junto al menú desplegable **Acción** y, a continuación, seleccione el botón de actualización. Una vez finalizada la ejecución de la fuente de datos, los activos se añaden al DataZone inventario de Amazon.

## Paso 6: Seleccione y publique el activo de datos
<a name="curate-data-asset-gs-glue"></a>

En esta sección se describen los pasos para seleccionar y publicar el activo de datos en este flujo de trabajo.

1. Una vez que hayas completado el paso 5 anterior, en el portal de DataZone datos de Amazon, elige el `SalesDataPublishingProject` proyecto que creaste en el paso anterior, elige la pestaña **Datos** de **inventario** en el panel de la izquierda y localiza la `mkt_sls_table` tabla.

1. Abra la página de detalles del activo `mkt_sls_table` para ver los nombres empresariales generados automáticamente. Seleccione el icono de **metadatos generados automáticamente** para ver los nombres generados automáticamente para los activos y las columnas. Puede aceptar o rechazar cada nombre de forma individual o elegir **Aceptar todos** para aplicar los nombres generados. Si lo desea, también puede añadir el formulario de metadatos disponible a su activo y seleccionar los términos del glosario para clasificar los datos.

1. Elija **Publicar activo** para publicar el activo `mkt_sls_table`.

## Paso 7: Crear el proyecto para el análisis de datos
<a name="create-project-for-data-analysis-gs-glue"></a>

En esta sección se describen los pasos necesarios para crear el proyecto para el análisis de datos. Este es el comienzo de los pasos de consumo de datos de este flujo de trabajo.

1. Una vez que hayas completado el paso 6 anterior, en el portal de DataZone datos de Amazon, selecciona **Crear proyecto** **en el menú desplegable Proyecto**.

1. En la página **Crear proyecto**, especifique el nombre del proyecto, por ejemplo, para este flujo de trabajo, puede asignarle un nombre **MarketingDataAnalysisProject**, dejar el resto de los campos sin cambios y, a continuación, seleccionar **Crear**.

## Paso 8: Crear un entorno para el análisis de datos
<a name="create-environment-gs2-glue"></a>

En esta sección se describen los pasos necesarios para crear un entorno para el análisis de datos.

1. Una vez que haya completado el paso 7 anterior, en el portal de DataZone datos de Amazon, elija el `MarketingDataAnalysisProject` proyecto, elija la pestaña **Entornos** y, por último, elija **Crear entorno**.

1. En la página **Crear entorno**, especifique lo siguiente y, a continuación, elija **Crear entorno**.
   + **Nombre**: especifique el nombre del entorno. Para este tutorial, puede llamarlo `Default data lake environment`.
   + **Descripción**: especifique una descripción para el entorno.
   + **Perfil de entorno**: elija el perfil de **DataLakeProfile**entorno integrado.
   + Para este tutorial, no realice cambios en el resto de los campos.

## Paso 9: Buscar en el catálogo de datos y suscribirse a los datos
<a name="search-catalog-subscribe-gs-glue"></a>

En esta sección se describen los pasos para buscar en el catálogo de datos y suscribirse a los datos.

1. Una vez que complete el paso 8 anterior, en el portal de DataZone datos de Amazon, elija el DataZone icono de Amazon y, en el campo DataZone **Búsqueda** de Amazon, busque activos de datos mediante palabras clave (por ejemplo, «catálogo» o «ventas») en la barra de **búsqueda** del portal de datos. 

   Si es necesario, aplique filtros o clasifíquelos y, una vez que encuentre el activo de **Datos de ventas del producto**, podrá seleccionarlo para abrir la página de detalles del activo.

1. En la página de detalles del activo de **Datos de ventas por catálogo**, elija **Suscribirse**.

1. En el cuadro de diálogo **Suscríbete**, selecciona tu proyecto de **MarketingDataAnalysisProject**consumo en el menú desplegable, especifica el motivo de tu solicitud de suscripción y, a continuación, selecciona **Suscribirse**.

## Paso 10: Aprobar la solicitud de suscripción
<a name="approve-subscription-request-gs-glue"></a>

En esta sección se describen los pasos para aprobar la solicitud de suscripción.

1. Una vez que complete el paso 9 anterior, en el portal de DataZone datos de Amazon, elija el **SalesDataPublishingProject**proyecto con el que publicó su activo.

1. Elija la pestaña **Datos**, luego **Datos publicados** y, por último, **Solicitudes entrantes**.

1. Ahora puede ver la fila de la nueva solicitud que necesita aprobación. Elija **Ver solicitud**. Indique el motivo de la aprobación y elija **Aprobar**.

## Paso 11: Cree una consulta y analice los datos en Amazon Athena
<a name="analyze-data-gs-glue"></a>

Ahora que has publicado correctamente un activo en el DataZone catálogo de Amazon y te has suscrito a él, puedes analizarlo.

1. En el portal de DataZone datos de Amazon, elige tu proyecto de **MarketingDataAnalysisProject**consumidor y, a continuación, en el panel de la derecha, en **Herramientas de análisis**, selecciona el enlace **Consulta de datos** con Amazon Athena. Esto abre el editor de consultas de Amazon Athena con las credenciales de su proyecto para la autenticación. Elija el entorno de **MarketingDataAnalysisProject**consumo en el menú desplegable **Amazon DataZone Environment** del editor de consultas y, a continuación, elija el de su proyecto en el menú desplegable `<environment_name>%sub_db` de la base de datos.

1. Ahora puede ejecutar consultas en la tabla suscrita. Puede elegir la tabla en **Tablas y vistas** y, a continuación, elegir **Vista previa** para que la declaración seleccionada aparezca en la pantalla del editor. Ejecute la consulta para ver los resultados: 

# Guía de DataZone inicio rápido de Amazon con los datos de Amazon Redshift
<a name="quickstart-rs"></a>

Complete los siguientes pasos de inicio rápido para recorrer todos los flujos de trabajo de productores y consumidores de datos en Amazon DataZone con ejemplos de datos de Amazon Redshift. 

**Topics**
+ [Paso 1: Crea el portal de DataZone dominios y datos de Amazon](#create-domain-gs-rs)
+ [Paso 2: Crear el proyecto de publicación](#create-publishing-project-gs-rs)
+ [Paso 3: Crear el entorno](#create-environment-gs-rs)
+ [Paso 4: Producir datos para su publicación](#produce-data-for-publishing-gs-rs)
+ [Paso 5: Reunir metadatos de Amazon Redshift](#gather-metadata-from-glue-gs-rs)
+ [Paso 6: Seleccione y publique el activo de datos](#curate-data-asset-gs-rs)
+ [Paso 7: Crear el proyecto para el análisis de datos](#create-project-for-data-analysis-gs-rs)
+ [Paso 8: Crear un entorno para el análisis de datos](#create-environment-gs2-rs)
+ [Paso 9: Buscar en el catálogo de datos y suscribirse a los datos](#search-catalog-subscribe-gs-rs)
+ [Paso 10: Aprobar la solicitud de suscripción](#approve-subscription-request-gs-rs)
+ [Paso 11: Crear una consulta y analizar los datos en Amazon Redshift](#analyze-data-gs-rs)

## Paso 1: Crea el portal de DataZone dominios y datos de Amazon
<a name="create-domain-gs-rs"></a>

Complete el siguiente procedimiento para crear un DataZone dominio de Amazon. Para obtener más información sobre DataZone los dominios de Amazon, consulte[DataZone Terminología y conceptos de Amazon](datazone-concepts.md). 

1. **Ve a la DataZone consola de Amazon en [https://console.aws.amazon.com/datazone](https://console.aws.amazon.com/datazone), inicia sesión y, a continuación, selecciona Crear dominio.**
**nota**  
Si quieres usar un DataZone dominio de Amazon existente para este flujo de trabajo, selecciona Ver dominios, elige el dominio que quieres usar y, a continuación, continúa con el paso 2 de creación de un proyecto de publicación.

1. En la página **Crear dominio**, proporcione valores para los siguientes campos: 
   + **Nombre**: especifique un nombre para su dominio. A los efectos de este flujo de trabajo, puede llamar a este dominio `Marketing`.
   + **Descripción**: especifique una descripción de dominio opcional.
   + **Cifrado de datos**: tus datos se cifran de forma predeterminada con una clave que te AWS pertenece y administra por ti. Para este tutorial, puede dejar la configuración de cifrado de datos predeterminada.

     Para obtener más información sobre las claves administradas por el cliente, consulte [El cifrado de datos en reposo para Amazon DataZone](encryption-rest-datazone.md). Si usa su propia clave de KMS para el cifrado de datos, debe incluir la siguiente declaración en su valor predeterminado [AmazonDataZoneDomainExecutionRole](AmazonDataZoneDomainExecutionRole.md).

------
#### [ JSON ]

****  

     ```
     {
         "Version":"2012-10-17",		 	 	 
         "Statement": [
             {
                 "Sid": "Statement1",
                 "Effect": "Allow",
                 "Action": [
                     "kms:Decrypt",
                     "kms:DescribeKey",
                     "kms:GenerateDataKey"
                 ],
                 "Resource": [
                     "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
                 ]
             }
         ]
     }
     ```

------
   + **Acceso al servicio**: selecciona la opción **Usar un rol de servicio personalizado** y, a continuación, elige **AmazonDataZoneDomainExecutionRole**uno en el menú desplegable.
   + En **Configuración rápida**, seleccione **Configurar esta cuenta para el consumo y la publicación de datos**. Esta opción habilita los DataZone planos integrados de Amazon para **Data Lake** y **Data Warehouse**, y configura los permisos y recursos necesarios para completar el resto de los pasos de este flujo de trabajo. Para obtener más información sobre los DataZone blueprints de Amazon, consulte[DataZone Terminología y conceptos de Amazon](datazone-concepts.md).
   + No realice cambios en el resto de los campos de **Detalles de los permisos** y **Etiquetas** y, a continuación, seleccione **Crear dominio**.

1. Una vez que el dominio se haya creado correctamente, selecciónelo y, en la página de resumen del dominio, anote la **URL del portal de datos** correspondiente a este dominio. Puedes usar esta URL para acceder a tu portal de DataZone datos de Amazon y completar el resto de los pasos de este flujo de trabajo.

**nota**  
En la versión actual de Amazon DataZone, una vez creado el dominio, la URL generada para el portal de datos no se puede modificar.

La creación del dominio puede tardar varios minutos en completarse. Espere a que el dominio tenga el estado de **Disponible** antes de ir al paso siguiente.

## Paso 2: Crear el proyecto de publicación
<a name="create-publishing-project-gs-rs"></a>

En la siguiente sección se describen los pasos para crear el proyecto de publicación en este flujo de trabajo.

1. Cuando complete el paso 1, navegue hasta el portal de DataZone datos de Amazon mediante la URL del portal de datos e inicie sesión con sus credenciales de inicio de sesión único (SSO) o AWS de IAM. 

1. **Elija **Crear proyecto**, especifique el nombre del proyecto, por ejemplo, para este flujo de trabajo, puede asignarle un nombre **SalesDataPublishingProject**, dejar el resto de los campos sin cambios y, a continuación, elegir Crear.**

## Paso 3: Crear el entorno
<a name="create-environment-gs-rs"></a>

En la siguiente sección se describen los pasos para crear un entorno en este flujo de trabajo.

1. Cuando complete el paso 2, en el portal de DataZone datos de Amazon, elija el `SalesDataPublishingProject` proyecto que creó en el paso anterior, elija la pestaña **Entornos** y, por último, elija **Crear entorno**.

1. En la página **Crear entorno**, especifique lo siguiente y, a continuación, elija **Crear entorno**.
   + **Nombre**: especifique el nombre del entorno. Para este tutorial, puede llamarlo `Default data warehouse environment`.
   + **Descripción**: especifique una descripción para el entorno.
   + **Perfil de entorno**: elija el perfil de **DataWarehouseProfile**entorno.
   + Proporcione el nombre del clúster de Amazon Redshift, el nombre de la base de datos y el ARN secreto del clúster de Amazon Redshift en el que se almacenan los datos. 
**nota**  
Asegúrese de que su secreto en AWS Secrets Manager incluya las siguientes etiquetas (clave/valor):  
Para el clúster de Amazon Redshift, datazone.rs.cluster: <cluster\$1name:database name>  
Para el grupo de trabajo Amazon Redshift sin servidor: datazone.rs.workgroup: <workgroup\$1name:database\$1name>
AmazonDataZoneProject: <projectID> 
AmazonDataZoneDomain: <domainID>
Para obtener más información, consulte [Almacenamiento de credenciales de bases de datos en AWS Secrets Manager](https://docs.aws.amazon.com//redshift/latest/mgmt/data-api-access.html#data-api-secrets).  
El usuario de la base de datos que proporcione en AWS Secrets Manager debe tener permisos de superusuario.

## Paso 4: Producir datos para su publicación
<a name="produce-data-for-publishing-gs-rs"></a>

En la siguiente sección se describen los pasos para la producción de datos para publicación en este flujo de trabajo.

1. Cuando complete el paso 3, en el portal de DataZone datos de Amazon, elija el `SalesDataPublishingProject` proyecto y, a continuación, en el panel de la derecha, en **Herramientas de análisis**, elija **Amazon Redshift**. Esto abre el editor de consultas de Amazon Redshift con las credenciales de su proyecto para la autenticación.

1. En este tutorial, utilizará el script de consulta **Create Table as Select** (CTAS) para crear una tabla nueva que desee publicar en Amazon. DataZone En su editor de consultas, ejecute este script de CTAS para crear una tabla `mkt_sls_table` que pueda publicar y poner a disposición para su búsqueda y suscripción. 

   ```
   CREATE TABLE mkt_sls_table AS
   SELECT 146776932 AS ord_num, 23 AS sales_qty_sld, 23.4 AS wholesale_cost, 45.0 as lst_pr, 43.0 as sell_pr, 2.0 as disnt, 12 as ship_mode,13 as warehouse_id, 23 as item_id, 34 as ctlg_page, 232 as ship_cust_id, 4556 as bill_cust_id
   UNION ALL SELECT 46776931, 24, 24.4, 46, 44, 1, 14, 15, 24, 35, 222, 4551
   UNION ALL SELECT 46777394, 42, 43.4, 60, 50, 10, 30, 20, 27, 43, 241, 4565
   UNION ALL SELECT 46777831, 33, 40.4, 51, 46, 15, 16, 26, 33, 40, 234, 4563
   UNION ALL SELECT 46779160, 29, 26.4, 50, 61, 8, 31, 15, 36, 40, 242, 4562
   UNION ALL SELECT 46778595, 43, 28.4, 49, 47, 7, 28, 22, 27, 43, 224, 4555
   UNION ALL SELECT 46779482, 34, 33.4, 64, 44, 10, 17, 27, 43, 52, 222, 4556
   UNION ALL SELECT 46779650, 39, 37.4, 51, 62, 13, 31, 25, 31, 52, 224, 4551
   UNION ALL SELECT 46780524, 33, 40.4, 60, 53, 18, 32, 31, 31, 39, 232, 4563
   UNION ALL SELECT 46780634, 39, 35.4, 46, 44, 16, 33, 19, 31, 52, 242, 4557
   UNION ALL SELECT 46781887, 24, 30.4, 54, 62, 13, 18, 29, 24, 52, 223, 4561
   ```

   Asegúrese de que la tabla **mkt\$1sls\$1table** se ha creado correctamente. Ahora tienes un activo de datos que se puede publicar en el DataZone catálogo de Amazon.

## Paso 5: Reunir metadatos de Amazon Redshift
<a name="gather-metadata-from-glue-gs-rs"></a>

En la siguiente sección se describen los pasos para recopilar metadatos de Amazon Redshift.

1. Una vez que complete el paso 4, en el portal de DataZone datos de Amazon, elija el `SalesDataPublishingProject` proyecto, luego elija la pestaña **Datos** y, por último, elija **Fuentes de datos**.

1. Elija el origen que se creó como parte del proceso de creación del entorno. 

1. Seleccione **Ejecutar** junto al menú desplegable **Acción** y, a continuación, seleccione el botón de actualización. Una vez finalizada la ejecución de la fuente de datos, los activos se añaden al DataZone inventario de Amazon.

## Paso 6: Seleccione y publique el activo de datos
<a name="curate-data-asset-gs-rs"></a>

En la siguiente sección se describen los pasos para seleccionar y publicar el activo de datos en este flujo de trabajo.

1. Cuando hayas completado el paso 5, en el portal de DataZone datos de Amazon, selecciona el `SalesDataPublishingProject` proyecto y, a continuación, selecciona la pestaña **Datos**, selecciona **Datos de inventario** y localiza la `mkt_sls_table` tabla.

1. Abra la página de detalles del activo `mkt_sls_table` para ver los nombres empresariales generados automáticamente. Seleccione el icono de **metadatos generados automáticamente** para ver los nombres generados automáticamente para los activos y las columnas. Puede aceptar o rechazar cada nombre de forma individual o elegir **Aceptar todos** para aplicar los nombres generados. Si lo desea, también puede añadir el formulario de metadatos disponible a su activo y seleccionar los términos del glosario para clasificar los datos.

1. Elija **Publicar** para publicar el activo `mkt_sls_table`.

## Paso 7: Crear el proyecto para el análisis de datos
<a name="create-project-for-data-analysis-gs-rs"></a>

En esta sección se describen los pasos necesarios para crear el proyecto para el análisis de datos en este flujo de trabajo.

1. Cuando complete el paso 6, en el portal de DataZone datos de Amazon, elija **Crear proyecto**.

1. En la página **Crear proyecto**, especifique el nombre del proyecto, por ejemplo, para este flujo de trabajo, puede asignarle un nombre **MarketingDataAnalysisProject**, dejar el resto de los campos sin cambios y, por último, elegir **Crear**.

## Paso 8: Crear un entorno para el análisis de datos
<a name="create-environment-gs2-rs"></a>

En la siguiente sección se describen los pasos para crear un entorno para el análisis de datos en este flujo de trabajo.

1. Cuando complete el paso 7, en el portal de DataZone datos de Amazon, elija el `MarketingDataAnalysisProject` proyecto que creó en el paso anterior, elija la pestaña **Entornos** y, a continuación, elija **Agregar entorno**.

1. En la página **Crear entorno**, especifique lo siguiente y, a continuación, elija **Crear entorno**.
   + **Nombre**: especifique el nombre del entorno. Para este tutorial, puede llamarlo `Default data warehouse environment`.
   + **Descripción**: especifique una descripción para el entorno.
   + **Perfil de entorno**: elija **DataWarehouseProfile**el perfil de entorno.
   + Proporcione el nombre del clúster de Amazon Redshift, el nombre de la base de datos y el ARN secreto del clúster de Amazon Redshift en el que se almacenan los datos. 
**nota**  
Asegúrese de que su secreto en AWS Secrets Manager incluya las siguientes etiquetas (clave/valor):  
Para el clúster de Amazon Redshift, datazone.rs.cluster: <cluster\$1name:database name>  
Para el grupo de trabajo Amazon Redshift sin servidor: datazone.rs.workgroup: <workgroup\$1name:database\$1name>
AmazonDataZoneProject: <projectID> 
AmazonDataZoneDomain: <domainID>
Para obtener más información, consulte [Almacenamiento de credenciales de bases de datos en AWS Secrets Manager](https://docs.aws.amazon.com//redshift/latest/mgmt/data-api-access.html#data-api-secrets).  
El usuario de la base de datos que proporcione en AWS Secrets Manager debe tener permisos de superusuario.
   + Para este tutorial, no realice cambios en el resto de los campos.

## Paso 9: Buscar en el catálogo de datos y suscribirse a los datos
<a name="search-catalog-subscribe-gs-rs"></a>

En la siguiente sección se describen los pasos para buscar en el catálogo de datos y para suscribirse a los datos.

1. Cuando complete el paso 8, en el portal de DataZone datos de Amazon, busque activos de datos mediante palabras clave (p. ej., «catálogo» o «ventas») en la barra de **búsqueda** del portal de datos. 

   Si es necesario, aplique filtros o clasifíquelos y, una vez que encuentre el activo de Datos de ventas del producto, podrá seleccionarlo para abrir la página de detalles del activo.

1. En la página de detalles del activo de Datos de ventas del producto, elija **Suscribirse**.

1. En el cuadro de diálogo, elija su proyecto de consumidor en el menú desplegable, indique el motivo de la solicitud de acceso y, a continuación, seleccione **Suscribirse**.

## Paso 10: Aprobar la solicitud de suscripción
<a name="approve-subscription-request-gs-rs"></a>

En esta sección se describen los pasos para aprobar la solicitud de suscripción en este flujo de trabajo.

1. Una vez que complete el paso 9, en el portal de DataZone datos de Amazon, elija el **SalesDataPublishingProject**proyecto con el que publicó su activo.

1. Elija la pestaña **Datos**, luego **Datos publicados** y, por último, **Solicitudes entrantes**.

1. Seleccione el enlace para ver la solicitud y, a continuación, elija **Aprobar**. 

## Paso 11: Crear una consulta y analizar los datos en Amazon Redshift
<a name="analyze-data-gs-rs"></a>

Ahora que has publicado correctamente un activo en el DataZone catálogo de Amazon y te has suscrito a él, puedes analizarlo.

1. En el panel derecho del portal de DataZone datos de Amazon, haz clic en el enlace Amazon Redshift. Esto abrirá el editor de consultas de Amazon Redshift con las credenciales de su proyecto para la autenticación.

1. Ahora puede ejecutar una consulta (instrucción de selección) en la tabla suscrita. Puede hacer clic en la tabla (three-vertical-dots opción) y seleccionar la vista previa para que la declaración seleccionada aparezca en la pantalla del editor. Ejecute la consulta para ver los resultados: 

# Guía de DataZone inicio rápido de Amazon con scripts de muestra
<a name="quickstart-apis"></a>

Puede acceder a Amazon DataZone a través del portal de administración o el portal de DataZone datos de Amazon, o mediante programación mediante la API DataZone HTTPS de Amazon, que le permite emitir solicitudes HTTPS directamente al servicio. Esta sección contiene ejemplos de scripts que invocan a Amazon y DataZone APIs que puedes usar para completar las siguientes tareas comunes:

**Topics**
+ [Crea un portal de datos y DataZone dominios de Amazon](#create-domain-gs-glue-api)
+ [Creación de un proyecto de publicación](#create-publishing-project-gs-glue-api)
+ [Creación de un perfil de entorno](#create-environment-profile-gs-glue-api)
+ [Creación de un entorno](#create-environment-gs-glue-api)
+ [Recopila metadatos de AWS Glue](#gather-metadata-from-glue-gs-glue-api)
+ [Selección y publicación de un activo de datos](#curate-data-asset-gs-glue-api)
+ [Búsqueda en el catálogo de datos y suscripción a los datos](#search-catalog-subscribe-gs-glue-api)
+ [Búsqueda de activos en el catálogo de datos](#search-catalog-subscribe-gs-glue-api)
+ [Otros scripts de muestra útiles](#other-useful-scripts-api)

## Crea un portal de datos y DataZone dominios de Amazon
<a name="create-domain-gs-glue-api"></a>

Puedes usar el siguiente script de ejemplo para crear un DataZone dominio de Amazon. Para obtener más información sobre DataZone los dominios de Amazon, consulte[DataZone Terminología y conceptos de Amazon](datazone-concepts.md). 

```
import sys
import boto3

// Initialize datazone client
region = 'us-east-1'
dzclient = boto3.client(service_name='datazone', region_name='us-east-1')

// Create DataZone domain
def create_domain(name):
    return dzclient.create_domain(
        name = name,
        description = "this is a description",
        domainExecutionRole = "arn:aws:iam::<account>:role/AmazonDataZoneDomainExecutionRole",
    )
```

## Creación de un proyecto de publicación
<a name="create-publishing-project-gs-glue-api"></a>

Puedes usar el siguiente script de ejemplo para crear un proyecto de publicación en Amazon DataZone.

```
// Create Project
def create_project(domainId):
    return dzclient.create_project(
        domainIdentifier = domainId,
        name = "sample-project"
    )
```

## Creación de un perfil de entorno
<a name="create-environment-profile-gs-glue-api"></a>

Puede utilizar los siguientes scripts de ejemplo para crear un perfil de entorno en Amazon DataZone.

Este carga útil de muestra se utiliza cuando se invoca la API `CreateEnvironmentProfile`:

```
Sample Payload
{
    "Content":{
        "project_name": "Admin_project",
        "domain_name": "Drug-Research-and-Development",
        "blueprint_account_region": [
            {
                "blueprint_name": "DefaultDataLake",
                "account_id": ["066535990535",
                "413878397724",
                "676266385322", 
                "747721550195", 
                "755347404384"
                ],
                "region": ["us-west-2", "us-east-1"]
            },
            {
                "blueprint_name": "DefaultDataWarehouse",
                "account_id": ["066535990535",
                "413878397724",
                "676266385322", 
                "747721550195", 
                "755347404384"
                ],
                "region":["us-west-2", "us-east-1"]
            }
        ]
    }
}
```

Este script de muestra invoca la API `CreateEnvironmentProfile`:

```
def create_environment_profile(domain_id, project_id, env_blueprints)    
        try:
            response = dz.list_environment_blueprints(
                domainIdentifier=domain_id,
                managed=True
            )
            env_blueprints = response.get("items")
            env_blueprints_map = {}
            for i in env_blueprints:
                env_blueprints_map[i["name"]] = i['id']
            
            print("Environment Blueprint map", env_blueprints_map)
            for i in blueprint_account_region:
                print(i)
                for j in i["account_id"]:
                    for k in i["region"]:
                        print("The env blueprint name is", i['blueprint_name'])
                        dz.create_environment_profile(
                            description='This is a test environment profile created via lambda function',
                            domainIdentifier=domain_id,
                            awsAccountId=j,
                            awsAccountRegion=k,
                            environmentBlueprintIdentifier=env_blueprints_map.get(i["blueprint_name"]),
                            name=i["blueprint_name"] + j + k + "_profile",
                            projectIdentifier=project_id
                        )
        except Exception as e:
            print("Failed to created Environment Profile")
            raise e
```

Esta es la carga útil de salida de muestra una vez que se ha invocado la API `CreateEnvironmentProfile`:

```
{
    "Content":{
        "project_name": "Admin_project",
        "domain_name": "Drug-Research-and-Development",
        "blueprint_account_region": [
            {
                "blueprint_name": "DefaultDataWarehouse",
                "account_id": ["111111111111"],
                "region":["us-west-2"],
                "user_parameters":[
                    {
                        "name": "dataAccessSecretsArn",
                        "value": ""
                    }
                ] 
            }
        ]
    }
}
```

## Creación de un entorno
<a name="create-environment-gs-glue-api"></a>

Puede utilizar el siguiente script de ejemplo para crear un entorno en Amazon DataZone.

```
def create_environment(domain_id, project_id,blueprint_account_region ):
         try:
            #refer to get_domain_id and get_project_id for fetching ids using names.
            sts_client = boto3.client("sts")
            # Get the current account ID
            account_id = sts_client.get_caller_identity()["Account"]
            print("Fetching environment profile ids")
            env_profile_map = get_env_profile_map(domain_id, project_id)

            for i in blueprint_account_region:
                for j in i["account_id"]:
                    for k in i["region"]:
                        print(" env blueprint name", i['blueprint_name'])
                        profile_name = i["blueprint_name"] + j + k + "_profile"
                        env_name = i["blueprint_name"] + j + k + "_env"
                        description = f'This is environment is created for {profile_name}, Account {account_id} and region {i["region"]}'
                        try:
                            dz.create_environment(
                                description=description,
                                domainIdentifier=domain_id,
                                environmentProfileIdentifier=env_profile_map.get(profile_name),
                                name=env_name,
                                projectIdentifier=project_id
                            )
                            print(f"Environment created - {env_name}")
                        except:
                            dz.create_environment(
                                description=description,
                                domainIdentifier=domain_id,
                                environmentProfileIdentifier=env_profile_map.get(profile_name),
                                name=env_name,
                                projectIdentifier=project_id,
                                userParameters= i["user_parameters"] 
                            )
                            print(f"Environment created - {env_name}")
        except Exception as e:
            print("Failed to created Environment")
            raise e
```

## Recopila metadatos de AWS Glue
<a name="gather-metadata-from-glue-gs-glue-api"></a>

Puedes usar este script de ejemplo para recopilar metadatos de AWS Glue. Este script se ejecuta según una programación estándar. Puede recuperar los parámetros del script de muestra y hacerlos globales. Obtenga el ID del proyecto, entorno y dominio mediante las funciones estándar. El origen de datos de AWS Glue se crea y ejecuta a una hora estándar que se puede actualizar en la sección cron del script. 

```
def crcreate_data_source(domain_id, project_id,data_source_name)
        print("Creating Data Source")
        data_source_creation = dz.create_data_source(
            # Define data source : Customize the data source to which you'd like to connect
            # define the name of the Data source to create, example: name ='TestGlueDataSource'
            name=data_source_name,
            # give a description for the datasource (optional), example: description='This is a dorra test for creation on DZ datasources'
            description=data_source_description,
            # insert the domain identifier corresponding to the domain to which the datasource will belong, example: domainIdentifier= 'dzd_6f3gst5jjmrrmv'
            domainIdentifier=domain_id,
            # give environment identifier , example: environmentIdentifier= '3weyt6hhn8qcvb'
            environmentIdentifier=environment_id,
            # give corresponding project identifier, example: projectIdentifier= '6tl4csoyrg16ef',
            projectIdentifier=project_id,
            enableSetting="ENABLED",
            # publishOnImport used to select whether assets are added to the inventory and/or discovery catalog .
            # publishOnImport = True : Assets will be added to project's inventory as well as published to the discovery catalog
            # publishOnImport = False : Assets will only be added to project's inventory.
            # You can later curate the metadata of the assets and choose subscription terms to publish them from the inventory to the discovery catalog.
            publishOnImport=False,
            # Automated business name generation : Use AI to automatically generate metadata for assets as they are published or updated by this data source run.
            # Automatically generated metadata can be be approved, rejected, or edited by data publishers.
            # Automatically generated metadata is badged with a small icon next to the corresponding metadata field.
            recommendation={"enableBusinessNameGeneration": True},
            type="GLUE",
            configuration={
                "glueRunConfiguration": {
                    "dataAccessRole": "arn:aws:iam::"
                    + account_id
                    + ":role/service-role/AmazonDataZoneGlueAccess-"
                    + current_region
                    + "-"
                    + domain_id
                    + "",
                    "relationalFilterConfigurations": [
                        {
                            #
                            "databaseName": glue_database_name,
                            "filterExpressions": [
                                {"expression": "*", "type": "INCLUDE"},
                            ],
                            #    "schemaName": "TestSchemaName",
                        },
                    ],
                },
            },
            # Add metadata forms to the data source (OPTIONAL).
            # Metadata forms will be automatically applied to any assets that are created by the data source.
            # assetFormsInput=[
            #     {
            #         "content": "string",
            #         "formName": "string",
            #         "typeIdentifier": "string",
            #         "typeRevision": "string",
            #     },
            # ],
            schedule={
                "schedule": "cron(5 20 * * ? *)",
                "timezone": "UTC",
            },
        )
        # This is a suggested syntax to return values
        #        return_values["data_source_creation"] = data_source_creation["items"]
        print("Data Source Created")


//This is the sample response payload after the CreateDataSource API is invoked:

{
    "Content":{
        "project_name": "Admin",
        "domain_name": "Drug-Research-and-Development",
        "env_name": "GlueEnvironment",
        "glue_database_name": "test",
        "data_source_name" : "test",
        "data_source_description" : "This is a test data source"
    }
}
```

## Selección y publicación de un activo de datos
<a name="curate-data-asset-gs-glue-api"></a>

Puede utilizar los siguientes scripts de ejemplo para seleccionar y publicar activos de datos en Amazon DataZone.

Puede utilizar el siguiente script para crear tipos de formulario personalizados:

```
 
def create_form_type(domainId, projectId):
    return dzclient.create_form_type(
        domainIdentifier = domainId,
        name = "customForm",
        model = {
            "smithy": "structure customForm { simple: String }"
        },
        owningProjectIdentifier = projectId,
        status = "ENABLED"
    )
```

Puede utilizar el siguiente script de muestra para crear tipos de activos personalizados:

```
def create_custom_asset_type(domainId, projectId):
    return dzclient.create_asset_type(
        domainIdentifier = domainId,
        name = "userCustomAssetType",
        formsInput = {
            "Model": {
                "typeIdentifier": "customForm",
                "typeRevision": "1",
                "required": False
            }
        },
        owningProjectIdentifier = projectId,
    )
```

Puede utilizar el siguiente script de muestra para crear activos personalizados:

```
def create_custom_asset(domainId, projectId):
    return dzclient.create_asset(
        domainIdentifier = domainId,
        name = 'custom asset',
        description = "custom asset",
        owningProjectIdentifier = projectId,
        typeIdentifier = "userCustomAssetType",
        formsInput = [
            {
                "formName": "UserCustomForm",
                "typeIdentifier": "customForm",
                "content": "{\"simple\":\"sample-catalogId\"}"
            }
        ]
    )
```

Puede utilizar el siguiente script de muestra para crear un glosario:

```
def create_glossary(domainId, projectId):
    return dzclient.create_glossary(
        domainIdentifier = domainId,
        name = "test7",
        description = "this is a test glossary",
        owningProjectIdentifier = projectId
    )
```

Puede utilizar el siguiente script de muestra para crear un término de glosario:

```
def create_glossary_term(domainId, glossaryId):
    return dzclient.create_glossary_term(
        domainIdentifier = domainId,
        name = "soccer",
        shortDescription = "this is a test glossary",
        glossaryIdentifier = glossaryId,
    )
```

Puede utilizar el siguiente script de muestra para crear un activo mediante un tipo de activo definido por el sistema:

```
def create_asset(domainId, projectId):
    return dzclient.create_asset(
        domainIdentifier = domainId,
        name = 'sample asset name',
        description = "this is a glue table asset",
        owningProjectIdentifier = projectId,
        typeIdentifier = "amazon.datazone.GlueTableAssetType",
        formsInput = [
            {
                "formName": "GlueTableForm",
                "content": "{\"catalogId\":\"sample-catalogId\",\"columns\":[{\"columnDescription\":\"sample-columnDescription\",\"columnName\":\"sample-columnName\",\"dataType\":\"sample-dataType\",\"lakeFormationTags\":{\"sample-key1\":\"sample-value1\",\"sample-key2\":\"sample-value2\"}}],\"compressionType\":\"sample-compressionType\",\"lakeFormationDetails\":{\"lakeFormationManagedTable\":false,\"lakeFormationTags\":{\"sample-key1\":\"sample-value1\",\"sample-key2\":\"sample-value2\"}},\"primaryKeys\":[\"sample-Key1\",\"sample-Key2\"],\"region\":\"us-east-1\",\"sortKeys\":[\"sample-sortKey1\"],\"sourceClassification\":\"sample-sourceClassification\",\"sourceLocation\":\"sample-sourceLocation\",\"tableArn\":\"sample-tableArn\",\"tableDescription\":\"sample-tableDescription\",\"tableName\":\"sample-tableName\"}"
            }
        ]
    )
```

Puede utilizar el siguiente script de muestra para crear una revisión del activo y asociar un término de glosario:

```
def create_asset_revision(domainId, assetId):
    return dzclient.create_asset_revision(
        domainIdentifier = domainId,
        identifier = assetId,
        name = 'glue table asset 7',
        description = "glue table asset description update",
        formsInput = [
            {
                "formName": "GlueTableForm",
                "content": "{\"catalogId\":\"sample-catalogId\",\"columns\":[{\"columnDescription\":\"sample-columnDescription\",\"columnName\":\"sample-columnName\",\"dataType\":\"sample-dataType\",\"lakeFormationTags\":{\"sample-key1\":\"sample-value1\",\"sample-key2\":\"sample-value2\"}}],\"compressionType\":\"sample-compressionType\",\"lakeFormationDetails\":{\"lakeFormationManagedTable\":false,\"lakeFormationTags\":{\"sample-key1\":\"sample-value1\",\"sample-key2\":\"sample-value2\"}},\"primaryKeys\":[\"sample-Key1\",\"sample-Key2\"],\"region\":\"us-east-1\",\"sortKeys\":[\"sample-sortKey1\"],\"sourceClassification\":\"sample-sourceClassification\",\"sourceLocation\":\"sample-sourceLocation\",\"tableArn\":\"sample-tableArn\",\"tableDescription\":\"sample-tableDescription\",\"tableName\":\"sample-tableName\"}"
            }
        ],
        glossaryTerms = ["<glossaryTermId:>"]
    )
```

Puede utilizar el siguiente script de muestra para publicar un activo:

```
def publish_asset(domainId, assetId):
    return dzclient.create_listing_change_set(
        domainIdentifier = domainId,
        entityIdentifier = assetId,
        entityType = "ASSET",
        action = "PUBLISH",
    )
```

## Búsqueda en el catálogo de datos y suscripción a los datos
<a name="search-catalog-subscribe-gs-glue-api"></a>

Puede utilizar los siguientes scripts de muestra para buscar en el catálogo de datos y suscribirse a los datos:

```
def search_asset(domainId, projectId, text):
    return dzclient.search(
        domainIdentifier = domainId,
        owningProjectIdentifier = projectId,
        searchScope = "ASSET",
        searchText = text,
    )
```

Puede utilizar el siguiente script de muestra para obtener el ID de listado del activo:

```
def search_listings(domainId, assetName, assetId):
    listings = dzclient.search_listings(
        domainIdentifier=domainId,
        searchText=assetName,
        additionalAttributes=["FORMS"]
    )
    
    assetListing = None
    for listing in listings['items']:
        if listing['assetListing']['entityId'] == assetId: 
            assetListing = listing
    
    return listing['assetListing']['listingId']
```

Puede utilizar los siguientes scripts de muestra para crear una solicitud de suscripción con el ID de listado.

```
create_subscription_response = def create_subscription_request(domainId, projectId, listingId):
    return dzclient.create_subscription_request(
        subscribedPrincipals=[{
            "project": {
                "identifier": projectId
            }
        }],
        subscribedListings=[{
            "identifier": listingId
        }],
        requestReason="Give request reason here."
    )
```

Con `create_subscription_response` lo anterior, obtenga la suscripción y` subscription_request_id`, a continuación, accept/approve la suscripción con el siguiente script de ejemplo: 

```
subscription_request_id = create_subscription_response["id"]

def accept_subscription_request(domainId, subscriptionRequestId): 
    return dzclient.accept_subscription_request(
        domainIdentifier=domainId,
        identifier=subscriptionRequestId
    )
```

## Búsqueda de activos en el catálogo de datos
<a name="search-catalog-subscribe-gs-glue-api"></a>

Puedes usar los siguientes scripts de ejemplo que utilizan la búsqueda de texto libre para buscar tus activos de datos publicados (listados) en el DataZone catálogo de Amazon.
+ En el siguiente ejemplo, se realiza una búsqueda de palabras clave de texto libre en el dominio y se muestran todos los listados que coinciden con la palabra clave proporcionada: “crédito”:

  ```
  aws datazone search-listings \
    --domain-identifier dzd_c1s7uxe71prrtz \
    --search-text "credit"
  ```
+ También puede combinar varias palabras clave para reducir aún más el alcance de la búsqueda. Por ejemplo, si busca todos los activos de datos publicados (listados) que contienen datos relacionados con las ventas en México, puede formular la consulta con dos palabras clave: “México” y “ventas”. 

  ```
              aws datazone search-listings \
    --domain-identifier dzd_c1s7uxe71prrtz \
    --search-text "mexico sales"
  ```

También puede buscar listados mediante filtros. El `filters` parámetro de la SearchListings API te permite recuperar los resultados filtrados del dominio. La API admite varios filtros predeterminados y también puedes se pueden combinar dos o más filtros y realizar una operación Y/O en ellos. La cláusula de filtro incluye dos parámetros: atributo y valor. Los atributos de filtro admitidos por defecto son `typeName`, `owningProjectId` y `glossaryTerms`. 
+ En el siguiente ejemplo, se realiza una búsqueda en todos los listados de un dominio determinado mediante el filtro `assetType` donde el listado es un tipo de tabla de Redshift.

  ```
              aws datazone search-listings \
  --domain-identifier dzd_c1s7uxe71prrtz \
  --filters '{"or":[{"filter":{"attribute":"typeName","value":"RedshiftTableAssetType"}} ]}'
  ```
+ También puede combinar varios filtros mediante AND/OR operaciones. En el siguiente ejemplo, combine los filtros `typeName` y `project`.

  ```
              aws datazone search-listings \
  --domain-identifier dzd_c1s7uxe71prrtz \
  --filters '{"or":[{"filter":{"attribute":"typeName","value":"RedshiftTableAssetType"}},  {"filter":{"attribute":"owningProjectId","value":"cwrrjch7f5kppj"}} ]}'
  ```
+ Incluso puedes combinar la búsqueda de texto libre con los filtros para encontrar resultados exactos y ordenarlos según la hora de creation/last actualización del anuncio, como se muestra en el siguiente ejemplo:

  ```
              aws datazone search-listings \
  --domain-identifier dzd_c1s7uxe71prrtz \
  --search-text "finance sales" \
  --filters '{"or":[{"filter":{"attribute":"typeName","value":"GlueTableViewType"}} ]}' \
  --sort '{"attribute": "UPDATED_AT", "order":"ASCENDING"}'
  ```

## Otros scripts de muestra útiles
<a name="other-useful-scripts-api"></a>

Puedes usar los siguientes scripts de ejemplo para completar varias tareas mientras trabajas con tus datos en Amazon DataZone.

Usa el siguiente script de ejemplo para enumerar los DataZone dominios de Amazon existentes:

```
def list_domains():
    datazone = boto3.client('datazone')
    response = datazone.list_domains(status='AVAILABLE')
    [print("%12s | %16s | %12s | %52s" % (item['id'], item['name'], item['managedAccountId'], item['portalUrl'])) for item in response['items']]
    return
```

Usa el siguiente script de ejemplo para enumerar los DataZone proyectos de Amazon existentes:

```
def list_projects(domain_id):
    datazone = boto3.client('datazone')
    response = datazone.list_projects(domainIdentifier=domain_id)
    [print("%12s | %16s " % (item['id'], item['name'])) for item in response['items']]
    return
```

Usa el siguiente script de ejemplo para enumerar los formularios de DataZone metadatos de Amazon existentes:

```
def list_metadata_forms(domain_id):
    datazone = boto3.client('datazone')
    response = datazone.search_types(domainIdentifier=domain_id, 
        managed=False,
        searchScope='FORM_TYPE')
    [print("%16s | %16s | %3s | %8s" % (item['formTypeItem']['name'], item['formTypeItem']['owningProjectId'],item['formTypeItem']['revision'], item['formTypeItem']['status'])) for item in response['items']]
    return
```