

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# AWS CloudFormation pour AWS Glue
<a name="populate-with-cloudformation-templates"></a>

CloudFormation est un service qui permet de créer de nombreuses AWS ressources. AWS Gluefournit des opérations d'API pour créer des objets dans le AWS Glue Data Catalog. Toutefois, il peut être plus pratique de définir et de créer AWS Glue des objets et d'autres objets de AWS ressources connexes dans un fichier CloudFormation modèle. Ensuite, vous pouvez automatiser le processus de création d'objets. 

CloudFormation fournit une syntaxe simplifiée, soit JSON (JavaScript Object Notation) soit YAML (YAML Ain't Markup Language), pour exprimer la création de ressources. AWS Vous pouvez utiliser les modèles CloudFormation pour définir les objets de catalogue de données tels que les bases de données, les tables, les partitions, les crawlers, les classifieurs et les connexions. Vous pouvez également définir des objets ETL tels que les tâches, les déclencheurs et les points de terminaison de développement. Vous créez un modèle qui décrit toutes les AWS ressources que vous souhaitez, et vous vous CloudFormation chargez de les approvisionner et de les configurer pour vous.

Pour plus d'informations, voir [Qu'est-ce que c'est AWS CloudFormation ?](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) et [Utilisation de AWS CloudFormation modèles](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-guide.html) dans le *guide de AWS CloudFormation l'utilisateur*.

Si vous envisagez d'utiliser des CloudFormation modèles compatibles avecAWS Glue, en tant qu'administrateur, vous devez accorder l'accès aux CloudFormation AWS services et aux actions dont il dépend. Pour accorder l'autorisation de créer CloudFormation des ressources, associez la politique suivante aux utilisateurs qui travaillent avec CloudFormation : 

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "cloudformation:*"
      ],
      "Resource": "*"
    }
  ]
}
```

------

Le tableau suivant répertorie les actions qu'un CloudFormation modèle peut effectuer en votre nom. Il inclut des liens vers des informations sur les types de AWS ressources et leurs types de propriétés que vous pouvez ajouter à un CloudFormation modèle. 


| AWS Glue ressource | CloudFormation modèle | Exemples AWS Glue | 
| --- | --- | --- | 
| Classifieur | [AWS::Glue::Classifier](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-classifier.html) | [classifieur Grok](#sample-cfn-template-classifier), [classifieur JSON](#sample-cfn-template-classifier-json), [classifieur XML](#sample-cfn-template-classifier-xml) | 
| Connexion | [AWS::Glue::Connection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-connection.html) | [Connexion MySQL](#sample-cfn-template-connection) | 
| crawler | [AWS::Glue::Crawler](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-crawler.html) | [Crawler Amazon S3](#sample-cfn-template-crawler-s3), [Crawler MySQL](#sample-cfn-template-crawler-jdbc) | 
| Base de données | [AWS::Glue::Database](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-database.html) | [Base de données vide](#sample-cfn-template-database), [Base de données avec tables](#sample-cfn-template-db-table-partition)  | 
| Point de terminaison de développement | [AWS::Glue::DevEndpoint](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-devendpoint.html) | [Point de terminaison de développement](#sample-cfn-template-devendpoint) | 
| Integration | [AWS::Glue::Integration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-integration.html) | [Intégration zéro ETL](#sample-cfn-template-integration) | 
| Propriété de ressource d'intégration | [AWS::Glue::IntegrationResourcePropriété](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-integrationresourceproperty.html) | [Intégration zéro ETL avec propriété de ressource d'intégration](#sample-cfn-template-integration-resource-property) | 
| Tâche | [AWS::Glue::Job](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html) | [Tâche Amazon S3](#sample-cfn-template-job-s3), [Tâche JDBC](#sample-cfn-template-job-jdbc) | 
| Transformation de machine learning | [AWS::Glue::MLTransform](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-mltransform.html) | [Transformation de machine learning](#sample-cfn-template-machine-learning-transform) | 
| Ensemble de règles de qualité des données | [AWS::Glue::DataQualityEnsemble de règles](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-dataqualityruleset.html) | [Ensemble de règles de qualité des données, Ensemble](#sample-cfn-template-data-quality-ruleset) [de règles de qualité des données avec planificateur EventBridge ](#sample-cfn-template-data-quality-ruleset-eventbridge) | 
| Partition | [AWS::Glue::Partition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-partition.html) | [Partitions d'une table](#sample-cfn-template-db-table-partition) | 
| Table | [AWS::Glue::Table](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-table.html) | [Table d'une base de données](#sample-cfn-template-db-table-partition) | 
| Déclencheur | [AWS::Glue::Trigger](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-trigger.html) | [Déclencheur à la demande](#sample-cfn-template-trigger-ondemand), [déclencheur planifié](#sample-cfn-template-trigger-scheduled), [déclencheur conditionnel](#sample-cfn-template-trigger-conditional)  | 

Pour démarrer, utilisez les exemples de modèles suivants et personnalisez-les avec vos propres métadonnées. Utilisez ensuite la CloudFormation console pour créer une CloudFormation pile dans laquelle ajouter des objets AWS Glue et les services associés. La plupart des champs d'un objet AWS Glue sont facultatifs. Ces modèles illustrent les champs obligatoires ou qui sont nécessaires pour un objet AWS Glue opérationnel et fonctionnel. 

 Un CloudFormation modèle peut être au format JSON ou YAML. Dans ces exemples, YAML est utilisé pour faciliter la lisibilité. Les exemples contiennent des commentaires (`#`) pour décrire les valeurs qui sont définies dans les modèles. 

CloudFormation les modèles peuvent inclure une `Parameters` section. Cette section peut être modifiée dans le texte d'exemple ou lorsque le fichier YAML est soumis à la CloudFormation console pour créer une pile. La `Resources` section du modèle contient la définition AWS Glue et les objets associés. CloudFormation les définitions de syntaxe des modèles peuvent contenir des propriétés qui incluent une syntaxe de propriété plus détaillée. Toutes les propriétés ne sont pas nécessairement obligatoires pour créer un objet AWS Glue. Ces exemples montrent des exemples de valeurs des propriétés communes pour créer un objet AWS Glue.

## Exemple de CloudFormation modèle pour une AWS Glue base de données
<a name="sample-cfn-template-database"></a>

Une base de données AWS Glue dans le catalogue de données contient les tables de métadonnées. La base de données comprend très peu de propriétés et peut être créée dans le catalogue de données à l'aide d'un CloudFormation modèle. L'exemple de modèle suivant est fourni pour vous aider à démarrer et pour illustrer l'utilisation de CloudFormation stacks avecAWS Glue. La seule ressource créée par l'exemple de modèle est une base de données nommée `cfn-mysampledatabase`. Vous pouvez le modifier en modifiant le texte de l'exemple ou en modifiant la valeur sur la CloudFormation console lorsque vous soumettez le YAML.

L'exemple suivant montre des exemples de valeurs des propriétés communes pour créer une base de données AWS Glue. Pour plus d'informations sur le modèle CloudFormation de base de données pourAWS Glue, consultez [AWS::Glue::Database](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-database.html). 

```
---
AWSTemplateFormatVersion: '2010-09-09'
# Sample CloudFormation template in YAML to demonstrate creating a database named mysampledatabase
# The metadata created in the Data Catalog points to the flights public S3 bucket
#
# Parameters section contains names that are substituted in the Resources section
# These parameters are the names the resources created in the Data Catalog
Parameters:
  CFNDatabaseName:
    Type: String
    Default: cfn-mysampledatabse

# Resources section defines metadata for the Data Catalog
Resources:
# Create an AWS Glue database
  CFNDatabaseFlights:
    Type: AWS::Glue::Database
    Properties:
      # The database is created in the Data Catalog for your account
      CatalogId: !Ref AWS::AccountId   
      DatabaseInput:
        # The name of the database is defined in the Parameters section above
        Name: !Ref CFNDatabaseName	
        Description: Database to hold tables for flights data
        LocationUri: s3://crawler-public-us-east-1/flight/2016/csv/
        #Parameters: Leave AWS database parameters blank
```

## Exemple de CloudFormation modèle pour une AWS Glue base de données, une table et une partition
<a name="sample-cfn-template-db-table-partition"></a>

Une table AWS Glue contient les métadonnées qui définissent la structure et l'emplacement des données que vous souhaitez traiter avec vos scripts ETL. Dans une table, vous pouvez définir des partitions pour mettre en parallèle le traitement de vos données. Une partition est un fragment de données que vous avez défini avec une clé. Par exemple, en utilisant un mois en tant que clé, toutes les données de janvier se trouvent dans la même partition. Dans AWS Glue, les bases de données peuvent contenir des tables et les tables peuvent contenir des partitions.

L'exemple suivant montre comment remplir une base de données, une table et des partitions à l'aide d'un modèle CloudFormation . Le format des données de base est `csv` et délimité par une virgule (,). Comme une base de données doit exister avant qu'elle ne puisse contenir une table et qu'une table doit exister avant que les partitions ne puissent être créées, le modèle utilise l'instruction `DependsOn` pour définir la dépendance de ces objets lorsqu'ils sont créés.

Les valeurs de cet exemple définissent une table qui contient les données de vol à partir d'un compartiment Amazon S3 disponible publiquement. À des fins d'illustration, quelques colonnes de données et une clé de partitionnement sont définies. Quatre partitions sont également définies dans le catalogue de données. Certains champs pour décrire le stockage des données de base sont également affichés dans les champs `StorageDescriptor`.

```
---
AWSTemplateFormatVersion: '2010-09-09'
# Sample CloudFormation template in YAML to demonstrate creating a database, a table, and partitions
# The metadata created in the Data Catalog points to the flights public S3 bucket
#
# Parameters substituted in the Resources section
# These parameters are names of the resources created in the Data Catalog
Parameters:
  CFNDatabaseName:
    Type: String
    Default: cfn-database-flights-1
  CFNTableName1:
    Type: String
    Default: cfn-manual-table-flights-1
# Resources to create metadata in the Data Catalog
Resources:
###
# Create an AWS Glue database
  CFNDatabaseFlights:
    Type: AWS::Glue::Database
    Properties:
      CatalogId: !Ref AWS::AccountId
      DatabaseInput:
        Name: !Ref CFNDatabaseName	
        Description: Database to hold tables for flights data
###
# Create an AWS Glue table
  CFNTableFlights:
    # Creating the table waits for the database to be created
    DependsOn: CFNDatabaseFlights
    Type: AWS::Glue::Table
    Properties:
      CatalogId: !Ref AWS::AccountId
      DatabaseName: !Ref CFNDatabaseName
      TableInput:
        Name: !Ref CFNTableName1
        Description: Define the first few columns of the flights table
        TableType: EXTERNAL_TABLE
        Parameters: {
    "classification": "csv"
  }
#       ViewExpandedText: String
        PartitionKeys:
        # Data is partitioned by month
        - Name: mon
          Type: bigint
        StorageDescriptor:
          OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
          Columns:
          - Name: year
            Type: bigint
          - Name: quarter
            Type: bigint
          - Name: month
            Type: bigint
          - Name: day_of_month
            Type: bigint			
          InputFormat: org.apache.hadoop.mapred.TextInputFormat
          Location: s3://crawler-public-us-east-1/flight/2016/csv/
          SerdeInfo:
            Parameters:
              field.delim: ","
            SerializationLibrary: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
# Partition 1
# Create an AWS Glue partition  
  CFNPartitionMon1:
    DependsOn: CFNTableFlights
    Type: AWS::Glue::Partition
    Properties:
      CatalogId: !Ref AWS::AccountId
      DatabaseName: !Ref CFNDatabaseName
      TableName: !Ref CFNTableName1
      PartitionInput:
        Values:
        - 1
        StorageDescriptor:
          OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
          Columns:
          - Name: mon
            Type: bigint
          InputFormat: org.apache.hadoop.mapred.TextInputFormat
          Location: s3://crawler-public-us-east-1/flight/2016/csv/mon=1/
          SerdeInfo:
            Parameters:
              field.delim: ","
            SerializationLibrary: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
# Partition 2
# Create an AWS Glue partition 
  CFNPartitionMon2:
    DependsOn: CFNTableFlights
    Type: AWS::Glue::Partition
    Properties:
      CatalogId: !Ref AWS::AccountId
      DatabaseName: !Ref CFNDatabaseName
      TableName: !Ref CFNTableName1
      PartitionInput:
        Values:
        - 2
        StorageDescriptor:
          OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
          Columns:
          - Name: mon
            Type: bigint
          InputFormat: org.apache.hadoop.mapred.TextInputFormat
          Location: s3://crawler-public-us-east-1/flight/2016/csv/mon=2/
          SerdeInfo:
            Parameters:
              field.delim: ","
            SerializationLibrary: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
# Partition 3
# Create an AWS Glue partition 
  CFNPartitionMon3:
    DependsOn: CFNTableFlights
    Type: AWS::Glue::Partition
    Properties:
      CatalogId: !Ref AWS::AccountId
      DatabaseName: !Ref CFNDatabaseName
      TableName: !Ref CFNTableName1
      PartitionInput:
        Values:
        - 3
        StorageDescriptor:
          OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
          Columns:
          - Name: mon
            Type: bigint
          InputFormat: org.apache.hadoop.mapred.TextInputFormat
          Location: s3://crawler-public-us-east-1/flight/2016/csv/mon=3/
          SerdeInfo:
            Parameters:
              field.delim: ","
            SerializationLibrary: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
# Partition 4
# Create an AWS Glue partition 
  CFNPartitionMon4:
    DependsOn: CFNTableFlights
    Type: AWS::Glue::Partition
    Properties:
      CatalogId: !Ref AWS::AccountId
      DatabaseName: !Ref CFNDatabaseName
      TableName: !Ref CFNTableName1
      PartitionInput:
        Values:
        - 4
        StorageDescriptor:
          OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
          Columns:
          - Name: mon
            Type: bigint
          InputFormat: org.apache.hadoop.mapred.TextInputFormat
          Location: s3://crawler-public-us-east-1/flight/2016/csv/mon=4/
          SerdeInfo:
            Parameters:
              field.delim: ","
            SerializationLibrary: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
```

## Exemple de CloudFormation modèle pour un AWS Glue classificateur Grok
<a name="sample-cfn-template-classifier"></a>

Un classifieur AWS Glue détermine le schéma de vos données. Un type de classifieur utilise un modèle grok personnalisé pour mettre vos données en correspondance. Si le modèle correspond, le classificateur personnalisé est utilisé pour créer le schéma de votre table et définir la `classification` avec la valeur définie dans la définition du classificateur.

Cet exemple crée un classificateur qui crée un schéma avec une colonne nommée `message` et définit la classification avec la valeur `greedy`.

```
---
AWSTemplateFormatVersion: '2010-09-09'
# Sample CFN YAML to demonstrate creating a classifier
#
# Parameters section contains names that are substituted in the Resources section
# These parameters are the names the resources created in the Data Catalog
Parameters:                                                                                                       
# The name of the classifier to be created
  CFNClassifierName:  
    Type: String
    Default: cfn-classifier-grok-one-column-1                                                               	
#
#
# Resources section defines metadata for the Data Catalog
Resources:
# Create classifier that uses grok pattern to put all data in one column and classifies it as "greedy".	
  CFNClassifierFlights:
    Type: AWS::Glue::Classifier   
    Properties:
      GrokClassifier:
        #Grok classifier that puts all data in one column		
        Name: !Ref CFNClassifierName
        Classification: greedy                                                        	   
        GrokPattern: "%{GREEDYDATA:message}"
        #CustomPatterns: none
```

## Exemple de CloudFormation modèle pour un classificateur AWS Glue JSON
<a name="sample-cfn-template-classifier-json"></a>

Un classifieur AWS Glue détermine le schéma de vos données. Un type de classificateur personnalisé utilise une `JsonPath` chaîne définissant les données JSON à classer par le classificateur. AWS Glueprend en charge un sous-ensemble d'opérateurs pour`JsonPath`, comme décrit dans la section [Écrire des JsonPath classificateurs personnalisés](https://docs.aws.amazon.com/glue/latest/dg/custom-classifier.html#custom-classifier-json). 

Si le modèle correspond, le classifieur personnalisé est utilisé pour créer le schéma de votre table.

Cet exemple crée un classifieur qui crée un schéma à chaque enregistrement du tableau `Records3` dans un objet.

```
---
AWSTemplateFormatVersion: '2010-09-09'
# Sample CFN YAML to demonstrate creating a JSON classifier
#
# Parameters section contains names that are substituted in the Resources section
# These parameters are the names the resources created in the Data Catalog
Parameters:                                                                                                       
# The name of the classifier to be created
  CFNClassifierName:  
    Type: String
    Default: cfn-classifier-json-one-column-1                                                               	
#
#
# Resources section defines metadata for the Data Catalog
Resources:
# Create classifier that uses a JSON pattern.	
  CFNClassifierFlights:
    Type: AWS::Glue::Classifier   
    Properties:
      JSONClassifier:
        #JSON classifier		
        Name: !Ref CFNClassifierName
        JsonPath: $.Records3[*]
```

## Exemple CloudFormation de modèle pour un classificateur AWS Glue XML
<a name="sample-cfn-template-classifier-xml"></a>

Un classifieur AWS Glue détermine le schéma de vos données. Un type de classifieur personnalisé spécifie une balise XML pour désigner l'élément qui contient chaque enregistrement dans un document XML en cours d'analyse. Si le modèle correspond, le classificateur personnalisé est utilisé pour créer le schéma de votre table et définir la `classification` avec la valeur définie dans la définition du classificateur.

Cet exemple crée un classifieur qui crée un schéma avec chaque enregistrement dans la balise `Record` et définit la classification sur `XML`.

```
---
AWSTemplateFormatVersion: '2010-09-09'
# Sample CFN YAML to demonstrate creating an XML classifier
#
# Parameters section contains names that are substituted in the Resources section
# These parameters are the names the resources created in the Data Catalog
Parameters:                                                                                                       
# The name of the classifier to be created
  CFNClassifierName:  
    Type: String
    Default: cfn-classifier-xml-one-column-1                                                               	
#
#
# Resources section defines metadata for the Data Catalog
Resources:
# Create classifier that uses the XML pattern and classifies it as "XML".	
  CFNClassifierFlights:
    Type: AWS::Glue::Classifier   
    Properties:
      XMLClassifier:
        #XML classifier		
        Name: !Ref CFNClassifierName
        Classification: XML   
        RowTag: <Records>
```

## Exemple de CloudFormation modèle pour un AWS Glue robot d'exploration pour Amazon S3
<a name="sample-cfn-template-crawler-s3"></a>

Un crawler AWS Glue crée les tables de métadonnées dans votre catalogue de données correspondant à vos données. Vous pouvez ensuite utiliser ces définitions de table en tant que sources et cibles dans vos tâches ETL.

Cet exemple crée un crawler, le rôle IAM nécessaire et une base de données AWS Glue dans le catalogue de données. Lorsque cet crawler est exécuté, il endosse le rôle IAM et crée une table dans la base de données pour les données de vol publiques. La table est créée avec le préfixe « `cfn_sample_1_` ». Le rôle IAM créé par ce modèle permet des autorisations globales ; il se peut que vous vouliez créer un rôle personnalisé. Aucun classifieur personnalisé n'est défini par ce classifieur. Les classifieurs AWS Glue intégrés sont utilisées par défaut. 

Lorsque vous soumettez cet exemple à la CloudFormation console, vous devez confirmer que vous souhaitez créer le rôle IAM.

```
---
AWSTemplateFormatVersion: '2010-09-09'
# Sample CFN YAML to demonstrate creating a crawler
#
# Parameters section contains names that are substituted in the Resources section
# These parameters are the names the resources created in the Data Catalog
Parameters:                                                                                                       
# The name of the crawler to be created
  CFNCrawlerName:  
    Type: String
    Default: cfn-crawler-flights-1
  CFNDatabaseName:
    Type: String
    Default: cfn-database-flights-1
  CFNTablePrefixName:
    Type: String
    Default: cfn_sample_1_	
#
#
# Resources section defines metadata for the Data Catalog
Resources:
#Create IAM Role assumed by the crawler. For demonstration, this role is given all permissions.
  CFNRoleFlights:
    Type: AWS::IAM::Role
    Properties:
      AssumeRolePolicyDocument:
        Version: "2012-10-17"		 	 	 
        Statement:
          -
            Effect: "Allow"
            Principal:
              Service:
                - "glue.amazonaws.com"
            Action:
              - "sts:AssumeRole"
      Path: "/"
      Policies:
        -
          PolicyName: "root"
          PolicyDocument:
            Version: "2012-10-17"		 	 	 
            Statement:
              -
                Effect: "Allow"
                Action: "*"
                Resource: "*"
 # Create a database to contain tables created by the crawler
  CFNDatabaseFlights:
    Type: AWS::Glue::Database
    Properties:
      CatalogId: !Ref AWS::AccountId
      DatabaseInput:
        Name: !Ref CFNDatabaseName
        Description: "AWS Glue container to hold metadata tables for the flights crawler"
 #Create a crawler to crawl the flights data on a public S3 bucket
  CFNCrawlerFlights:
    Type: AWS::Glue::Crawler
    Properties:
      Name: !Ref CFNCrawlerName
      Role: !GetAtt CFNRoleFlights.Arn
      #Classifiers: none, use the default classifier
      Description: AWS Glue crawler to crawl flights data
      #Schedule: none, use default run-on-demand
      DatabaseName: !Ref CFNDatabaseName
      Targets:
        S3Targets:
          # Public S3 bucket with the flights data
          - Path: "s3://crawler-public-us-east-1/flight/2016/csv"
      TablePrefix: !Ref CFNTablePrefixName
      SchemaChangePolicy:
        UpdateBehavior: "UPDATE_IN_DATABASE"
        DeleteBehavior: "LOG"
      Configuration: "{\"Version\":1.0,\"CrawlerOutput\":{\"Partitions\":{\"AddOrUpdateBehavior\":\"InheritFromTable\"},\"Tables\":{\"AddOrUpdateBehavior\":\"MergeNewColumns\"}}}"
```

## Exemple CloudFormation de modèle pour une AWS Glue connexion
<a name="sample-cfn-template-connection"></a>

Une connexion AWS Glue dans le catalogue de données contient les informations JDBC et réseau nécessaires pour se connecter à une base de données JDBC. Ces informations sont utilisées lorsque vous vous connectez à une base de données JDBC pour analyser ou exécuter des tâches ETL.

Cet exemple crée une connexion à une base de données MySQL Amazon RDS nommée `devdb`. Lorsque cette connexion est utilisée, un rôle IAM, les informations d'identification de base de données et les valeurs de connexion réseau doivent également être fournies. Consultez les détails des champs nécessaires du modèle.

```
---
AWSTemplateFormatVersion: '2010-09-09'
# Sample CFN YAML to demonstrate creating a connection
#
# Parameters section contains names that are substituted in the Resources section
# These parameters are the names the resources created in the Data Catalog
Parameters:                                                                                                       
# The name of the connection to be created
  CFNConnectionName:  
    Type: String
    Default: cfn-connection-mysql-flights-1
  CFNJDBCString:  
    Type: String
    Default: "jdbc:mysql://xxx-mysql.yyyyyyyyyyyyyy.us-east-1.rds.amazonaws.com:3306/devdb"
  CFNJDBCUser:  
    Type: String
    Default: "master"
  CFNJDBCPassword:  
    Type: String
    Default: "12345678"
    NoEcho: true
#
#
# Resources section defines metadata for the Data Catalog
Resources:
  CFNConnectionMySQL:
    Type: AWS::Glue::Connection
    Properties:
      CatalogId: !Ref AWS::AccountId
      ConnectionInput: 
        Description: "Connect to MySQL database."
        ConnectionType: "JDBC"
        #MatchCriteria: none		
        PhysicalConnectionRequirements:
          AvailabilityZone: "us-east-1d"
          SecurityGroupIdList: 
           - "sg-7d52b812"
          SubnetId: "subnet-84f326ee" 
        ConnectionProperties: {
          "JDBC_CONNECTION_URL": !Ref CFNJDBCString,
          "USERNAME": !Ref CFNJDBCUser,
          "PASSWORD": !Ref CFNJDBCPassword
        }
        Name: !Ref CFNConnectionName
```

## Exemple de CloudFormation modèle pour une intégration AWS Glue sans ETL
<a name="sample-cfn-template-integration"></a>

AWSZero-ETL est un ensemble d'intégrations entièrement gérées qui minimisent le besoin de créer des pipelines de données ETL pour les cas d'utilisation courants d'ingestion et de réplication.

Cet exemple crée une intégration zéro ETL entre la source donnée et la cible. 

```
---
AWSTemplateFormatVersion: '2010-09-09'
# Sample CFN YAML to demonstrate creating a zero-ETL integration in AWS Glue
#
# Parameters section contains names that are substituted in the Resources section
# 
Parameters:                                                                                                       
  # The name of the zero-ETL integration to be created
  IntegrationName:  
    Type: String
  # The ARN for the source of the zero-ETL integration
  SourceArn:
    Type: String
  # The ARN for the target of the zero-ETL integration 
  TargetArn:
    Type: String
#
#
Resources:
# Create an AWS Glue zero-ETL integration
  GlueIntegration:
    Type: AWS::Glue::Integration
    Properties:
      IntegrationName: !Ref IntegrationName
      Description: "AWS Glue zero-ETL integration"
      SourceArn: !Ref SourceArn
      TargetArn: !Ref TargetArn
      DataFilter: "include:table1"
      Tags:
        - Key: Purpose
          Value: GlueZeroETLIntegration
```

## Exemple de CloudFormation modèle pour une intégration AWS Glue zéro ETL avec les propriétés des ressources d'intégration
<a name="sample-cfn-template-integration-resource-property"></a>

Une intégration AWS Glue zéro ETL nécessite que les propriétés des ressources soient définies pour la source et la cible. Pour la source, la seule propriété à définir est le rôle IAM que l'intégration utilisera pour accéder à la AWS Glue connexion ou à la base de données DynamoDB. Pour la cible, les propriétés qui peuvent être configurées incluent le rôle IAM qui sera utilisé pour accéder à la cible, le réseau VPC dans lequel l'intégration doit être créée, le bus d'événements qui sera utilisé pour configurer les notifications d'événements pour l'intégration et la clé KMS qui sera utilisée pour le chiffrement des données.

L'exemple ci-dessous définit les propriétés des ressources source et cible, puis crée une intégration zéro ETL entre la source et la cible. 

```
---
AWSTemplateFormatVersion: '2010-09-09'
# Sample CFN YAML to demonstrate defining the integration resource properties and then creating a zero-ETL integration in AWS Glue
#
# Parameters section contains names that are substituted in the Resources section
# 
Parameters:
  #The name of the zero-ETL integration to be created
  IntegrationName:
    Type: String
  # The ARN for the target of the zero-ETL integration
  TargetArn:
    Type: String
  # The ARN for the IAM role that will be used to access the target
  TargetRoleArn:
    Type: String
  # The ARN for the source of the zero-ETL integration
  SourceArn:
    Type: String
  # The ARN for the IAM role that will be used to access thesource
  SourceRoleArn:
    Type: String
#
#
Resources:
  # Integration Resource Property for zero-ETL target
  TargetIntegrationResourceProperty:
    Type: AWS::Glue::IntegrationResourceProperty
    Properties:
      ResourceArn: !Ref TargetArn
      TargetProcessingProperties:
        RoleArn: !Ref TargetRoleArn
      Tags:
        - Key: Purpose
          Value: TargetIrpTag

  # Integration Resource Property for zero-ETL source
  SourceIntegrationResourceProperty:
    Type: AWS::Glue::IntegrationResourceProperty
    Properties:
      ResourceArn: !Ref SourceArn
      SourceProcessingProperties:
        RoleArn: !Ref SourceRoleArn
      Tags:
        - Key: Purpose
          Value: SourceIRPTag

  # Create an AWS Glue zero-ETL integration
  GlueIntegration:
    Type: AWS::Glue::Integration
    Properties:
      IntegrationName: !Ref IntegrationName
      Description: "AWS Glue zero-ETL integration"
      SourceArn: !Ref SourceArn
      TargetArn: !Ref TargetArn
      DataFilter: "include:table1"
      Tags:
        - Key: Purpose
          Value: GlueZeroETLIntegration
```

## Exemple de CloudFormation modèle pour un AWS Glue crawler pour JDBC
<a name="sample-cfn-template-crawler-jdbc"></a>

Un analyseur AWS Glue crée les tables de métadonnées dans votre catalogue de données correspondant à vos données. Vous pouvez ensuite utiliser ces définitions de table en tant que sources et cibles dans vos tâches ETL.

Cet exemple crée un crawler, le rôle IAM nécessaire et une base de données AWS Glue dans le catalogue de données. Lorsque cet crawler est exécuté, il endosse le rôle IAM et crée une table dans la base de données pour les données de vol publiques qui ont été stockées dans une base de données MySQL. La table est créée avec le préfixe « `cfn_jdbc_1_` ». Le rôle IAM créé par ce modèle permet des autorisations globales ; il se peut que vous vouliez créer un rôle personnalisé. Aucun classifieur personnalisé ne peur être défini pour les données JDBC. Les classifieurs AWS Glue intégrés sont utilisées par défaut. 

Lorsque vous soumettez cet exemple à la CloudFormation console, vous devez confirmer que vous souhaitez créer le rôle IAM.

```
---
AWSTemplateFormatVersion: '2010-09-09'
# Sample CFN YAML to demonstrate creating a crawler
#
# Parameters section contains names that are substituted in the Resources section
# These parameters are the names the resources created in the Data Catalog
Parameters:                                                                                                       
# The name of the crawler to be created
  CFNCrawlerName:  
    Type: String
    Default: cfn-crawler-jdbc-flights-1
# The name of the database to be created to contain tables	
  CFNDatabaseName:
    Type: String
    Default: cfn-database-jdbc-flights-1
# The prefix for all tables crawled and created	
  CFNTablePrefixName:
    Type: String
    Default: cfn_jdbc_1_
# The name of the existing connection to the MySQL database
  CFNConnectionName:  
    Type: String
    Default: cfn-connection-mysql-flights-1
# The name of the JDBC path (database/schema/table) with wildcard (%) to crawl	
  CFNJDBCPath:  
    Type: String
    Default: saldev/%		
#
#
# Resources section defines metadata for the Data Catalog
Resources:
#Create IAM Role assumed by the crawler. For demonstration, this role is given all permissions.
  CFNRoleFlights:
    Type: AWS::IAM::Role
    Properties:
      AssumeRolePolicyDocument:
        Version: "2012-10-17"		 	 	 
        Statement:
          -
            Effect: "Allow"
            Principal:
              Service:
                - "glue.amazonaws.com"
            Action:
              - "sts:AssumeRole"
      Path: "/"
      Policies:
        -
          PolicyName: "root"
          PolicyDocument:
            Version: "2012-10-17"		 	 	 
            Statement:
              -
                Effect: "Allow"
                Action: "*"
                Resource: "*"
 # Create a database to contain tables created by the crawler
  CFNDatabaseFlights:
    Type: AWS::Glue::Database
    Properties:
      CatalogId: !Ref AWS::AccountId
      DatabaseInput:
        Name: !Ref CFNDatabaseName
        Description: "AWS Glue container to hold metadata tables for the flights crawler"
 #Create a crawler to crawl the flights data in MySQL database
  CFNCrawlerFlights:
    Type: AWS::Glue::Crawler
    Properties:
      Name: !Ref CFNCrawlerName
      Role: !GetAtt CFNRoleFlights.Arn
      #Classifiers: none, use the default classifier
      Description: AWS Glue crawler to crawl flights data
      #Schedule: none, use default run-on-demand
      DatabaseName: !Ref CFNDatabaseName
      Targets:
        JdbcTargets:
          # JDBC MySQL database with the flights data
          - ConnectionName: !Ref CFNConnectionName
            Path: !Ref CFNJDBCPath
          #Exclusions: none
      TablePrefix: !Ref CFNTablePrefixName
      SchemaChangePolicy:
        UpdateBehavior: "UPDATE_IN_DATABASE"
        DeleteBehavior: "LOG"
	  Configuration: "{\"Version\":1.0,\"CrawlerOutput\":{\"Partitions\":{\"AddOrUpdateBehavior\":\"InheritFromTable\"},\"Tables\":{\"AddOrUpdateBehavior\":\"MergeNewColumns\"}}}"
```

## Exemple CloudFormation de modèle de AWS Glue tâche pour Amazon S3 vers Amazon S3
<a name="sample-cfn-template-job-s3"></a>

Une tâche AWS Glue dans le catalogue de données contient les valeurs des paramètres qui sont requises pour exécuter un script dans AWS Glue.

Cet exemple crée une tâche qui lit les données de vol à partir d'un compartiment Amazon S3 dans un format `csv` et les écrit dans un fichier Parquet Amazon S3. Le script qui est exécuté par cette tâche doit déjà exister. Vous pouvez générer un script ETL pour votre environnement avec la console AWS Glue. Lorsque la tâche est exécutée, un rôle IAM avec les autorisations appropriées doit également être fourni.

Les valeurs courantes des paramètres sont affichées dans le modèle. Par exemple, `AllocatedCapacity` (DPUs) prend par défaut la valeur 5.

```
---
AWSTemplateFormatVersion: '2010-09-09'
# Sample CFN YAML to demonstrate creating a job using the public flights S3 table in a public bucket
#
# Parameters section contains names that are substituted in the Resources section
# These parameters are the names the resources created in the Data Catalog
Parameters:                                                                                                       
# The name of the job to be created
  CFNJobName:  
    Type: String
    Default: cfn-job-S3-to-S3-2
# The name of the IAM role that the job assumes. It must have access to data, script, temporary directory
  CFNIAMRoleName:  
    Type: String
    Default: AWSGlueServiceRoleGA
# The S3 path where the script for this job is located
  CFNScriptLocation:  
    Type: String
    Default: s3://aws-glue-scripts-123456789012-us-east-1/myid/sal-job-test2	
#
#
# Resources section defines metadata for the Data Catalog
Resources:                                      
# Create job to run script which accesses flightscsv table and write to S3 file as parquet.
# The script already exists and is called by this job	
  CFNJobFlights:
    Type: AWS::Glue::Job   
    Properties:
      Role: !Ref CFNIAMRoleName  
      #DefaultArguments: JSON object 
      # If script written in Scala, then set DefaultArguments={'--job-language'; 'scala', '--class': 'your scala class'}
      #Connections:  No connection needed for S3 to S3 job 
      #  ConnectionsList  
      #MaxRetries: Double  
      Description: Job created with CloudFormation  
      #LogUri: String  
      Command:   
        Name: glueetl  
        ScriptLocation: !Ref CFNScriptLocation
             # for access to directories use proper IAM role with permission to buckets and folders that begin with "aws-glue-"					 
             # script uses temp directory from job definition if required (temp directory not used S3 to S3)
             # script defines target for output as s3://aws-glue-target/sal    			 
      AllocatedCapacity: 5  
      ExecutionProperty:   
        MaxConcurrentRuns: 1  
      Name: !Ref CFNJobName
```

## Exemple CloudFormation de modèle de AWS Glue tâche pour JDBC sur Amazon S3
<a name="sample-cfn-template-job-jdbc"></a>

Une tâche AWS Glue dans le catalogue de données contient les valeurs des paramètres qui sont requises pour exécuter un script dans AWS Glue.

Cet exemple crée une tâche qui lit les données de vol à partir d'une base de données JDBC MySQL comme définie par la connexion nommée `cfn-connection-mysql-flights-1` et les écrit dans un fichier Parquet Amazon S3. Le script qui est exécuté par cette tâche doit déjà exister. Vous pouvez générer un script ETL pour votre environnement avec la console AWS Glue. Lorsque la tâche est exécutée, un rôle IAM avec les autorisations appropriées doit également être fourni.

Les valeurs courantes des paramètres sont affichées dans le modèle. Par exemple, `AllocatedCapacity` (DPUs) prend par défaut la valeur 5.

```
---
AWSTemplateFormatVersion: '2010-09-09'
# Sample CFN YAML to demonstrate creating a job using a MySQL JDBC DB with the flights data to an S3 file
#
# Parameters section contains names that are substituted in the Resources section
# These parameters are the names the resources created in the Data Catalog
Parameters:                                                                                                       
# The name of the job to be created
  CFNJobName:  
    Type: String
    Default: cfn-job-JDBC-to-S3-1
# The name of the IAM role that the job assumes. It must have access to data, script, temporary directory
  CFNIAMRoleName:  
    Type: String
    Default: AWSGlueServiceRoleGA
# The S3 path where the script for this job is located
  CFNScriptLocation:  
    Type: String
    Default: s3://aws-glue-scripts-123456789012-us-east-1/myid/sal-job-dec4a	
# The name of the connection used for JDBC data source
  CFNConnectionName:  
    Type: String
    Default: cfn-connection-mysql-flights-1
#
#
# Resources section defines metadata for the Data Catalog
Resources:                                      
# Create job to run script which accesses JDBC flights table via a connection and write to S3 file as parquet.
# The script already exists and is called by this job	
  CFNJobFlights:
    Type: AWS::Glue::Job   
    Properties:
      Role: !Ref CFNIAMRoleName  
      #DefaultArguments: JSON object  
      # For example, if required by script, set temporary directory as DefaultArguments={'--TempDir'; 's3://aws-glue-temporary-xyc/sal'}
      Connections:
        Connections:
        - !Ref CFNConnectionName 
      #MaxRetries: Double  
      Description: Job created with CloudFormation using existing script
      #LogUri: String  
      Command:   
        Name: glueetl  
        ScriptLocation: !Ref CFNScriptLocation
             # for access to directories use proper IAM role with permission to buckets and folders that begin with "aws-glue-"					 
             # if required, script defines temp directory as argument TempDir and used in script like redshift_tmp_dir = args["TempDir"] 
             # script defines target for output as s3://aws-glue-target/sal    			 
      AllocatedCapacity: 5  
      ExecutionProperty:   
        MaxConcurrentRuns: 1  
      Name: !Ref CFNJobName
```

## Exemple de CloudFormation modèle pour un déclencheur AWS Glue à la demande
<a name="sample-cfn-template-trigger-ondemand"></a>

Un déclencheur AWS Glue du catalogue de données contient les valeurs des paramètres qui sont requises pour démarrer une tâche lorsque le déclencheur est exécuté. Un déclencheur à la demande s'exécute lorsque vous l'activez.

Cet exemple crée un déclencheur à la demande qui démarre une tâche nommée `cfn-job-S3-to-S3-1`. 

```
---
AWSTemplateFormatVersion: '2010-09-09'
# Sample CFN YAML to demonstrate creating an on-demand trigger
#
# Parameters section contains names that are substituted in the Resources section
# These parameters are the names the resources created in the Data Catalog
Parameters:
  # The existing job to be started by this trigger 
  CFNJobName:
    Type: String
    Default: cfn-job-S3-to-S3-1
  # The name of the trigger to be created
  CFNTriggerName:
    Type: String
    Default: cfn-trigger-ondemand-flights-1	
#
# Resources section defines metadata for the Data Catalog
# Sample CFN YAML to demonstrate creating an on-demand trigger for a job	
Resources:                                      
# Create trigger to run an existing job (CFNJobName) on an on-demand schedule.	
  CFNTriggerSample:
    Type: AWS::Glue::Trigger   
    Properties:
      Name:
        Ref: CFNTriggerName		
      Description: Trigger created with CloudFormation
      Type: ON_DEMAND                                                        	   
      Actions:
        - JobName: !Ref CFNJobName                	  
        # Arguments: JSON object
      #Schedule: 
      #Predicate:
```

## Exemple CloudFormation de modèle pour un déclencheur AWS Glue planifié
<a name="sample-cfn-template-trigger-scheduled"></a>

Un déclencheur AWS Glue du catalogue de données contient les valeurs des paramètres qui sont requises pour démarrer une tâche lorsque le déclencheur est exécuté. Un déclencheur planifié est exécuté lorsqu'il est activé et que le minuteur cron s'affiche.

Cet exemple crée un déclencheur planifié qui démarre une tâche nommée `cfn-job-S3-to-S3-1`. Le minuteur est une expression cron qui permet d'exécuter la tâche toutes les 10 minutes du lundi au vendredi.

```
---
AWSTemplateFormatVersion: '2010-09-09'
# Sample CFN YAML to demonstrate creating a scheduled trigger
#
# Parameters section contains names that are substituted in the Resources section
# These parameters are the names the resources created in the Data Catalog
Parameters:
  # The existing job to be started by this trigger 
  CFNJobName:
    Type: String
    Default: cfn-job-S3-to-S3-1
  # The name of the trigger to be created
  CFNTriggerName:
    Type: String
    Default: cfn-trigger-scheduled-flights-1	
#
# Resources section defines metadata for the Data Catalog
# Sample CFN YAML to demonstrate creating a scheduled trigger for a job
#	
Resources:                                      
# Create trigger to run an existing job (CFNJobName) on a cron schedule.	
  TriggerSample1CFN:
    Type: AWS::Glue::Trigger   
    Properties:
      Name:
        Ref: CFNTriggerName		
      Description: Trigger created with CloudFormation
      Type: SCHEDULED                                                        	   
      Actions:
        - JobName: !Ref CFNJobName                	  
        # Arguments: JSON object
      # # Run the trigger every 10 minutes on Monday to Friday 		
      Schedule: cron(0/10 * ? * MON-FRI *) 
      #Predicate:
```

## Exemple de CloudFormation modèle pour un déclencheur AWS Glue conditionnel
<a name="sample-cfn-template-trigger-conditional"></a>

Un déclencheur AWS Glue du catalogue de données contient les valeurs des paramètres qui sont requises pour démarrer une tâche lorsque le déclencheur est exécuté. Un déclencheur conditionnel est exécuté lorsqu'il est activé et que ses conditions sont satisfaites, comme un travail terminé avec succès.

Cet exemple crée un déclencheur conditionnel qui démarre une tâche nommée `cfn-job-S3-to-S3-1`. Cette tâche commence lorsque la tâche nommée `cfn-job-S3-to-S3-2 ` se termine correctement.

```
---
AWSTemplateFormatVersion: '2010-09-09'
# Sample CFN YAML to demonstrate creating a conditional trigger for a job, which starts when another job completes
#
# Parameters section contains names that are substituted in the Resources section
# These parameters are the names the resources created in the Data Catalog
Parameters:
  # The existing job to be started by this trigger 
  CFNJobName:
    Type: String
    Default: cfn-job-S3-to-S3-1
  # The existing job that when it finishes causes trigger to fire
  CFNJobName2:
    Type: String
    Default: cfn-job-S3-to-S3-2	
  # The name of the trigger to be created
  CFNTriggerName:
    Type: String
    Default: cfn-trigger-conditional-1	
#	
Resources:                                      
# Create trigger to run an existing job (CFNJobName) when another job completes (CFNJobName2).	
  CFNTriggerSample:
    Type: AWS::Glue::Trigger   
    Properties:
      Name:
        Ref: CFNTriggerName		
      Description: Trigger created with CloudFormation
      Type: CONDITIONAL                                                        	   
      Actions:
        - JobName: !Ref CFNJobName                	  
        # Arguments: JSON object
      #Schedule: none 
      Predicate:
        #Value for Logical is required if more than 1 job listed in Conditions	  
        Logical: AND
        Conditions:
          - LogicalOperator: EQUALS	
            JobName: !Ref CFNJobName2
            State: SUCCEEDED
```

## Exemple de CloudFormation modèle pour un point de terminaison AWS Glue de développement
<a name="sample-cfn-template-machine-learning-transform"></a>

Une transformation de machine learning AWS Glue est une transformation personnalisée destinée à nettoyer vos données. Il existe actuellement une transformation disponible nommée FindMatches. La FindMatches transformation vous permet d'identifier les enregistrements dupliqués ou correspondants dans votre ensemble de données, même lorsque les enregistrements n'ont pas d'identifiant unique commun et qu'aucun champ ne correspond exactement.

Cet exemple crée une transformation de machine learning. Pour plus d'informations sur les paramètres dont vous avez besoin pour créer une transformation de machine learning, consultez [Record correspondant à AWS Lake Formation FindMatches](machine-learning.md).

```
---
AWSTemplateFormatVersion: '2010-09-09'
# Sample CFN YAML to demonstrate creating a machine learning transform
#
# Resources section defines metadata for the machine learning transform
Resources:
  MyMLTransform:
    Type: "AWS::Glue::MLTransform"
    Condition: "isGlueMLGARegion"
    Properties:
      Name: !Sub "MyTransform"
      Description: "The bestest transform ever"
      Role: !ImportValue MyMLTransformUserRole
      GlueVersion: "1.0"
      WorkerType: "Standard"
      NumberOfWorkers: 5
      Timeout: 120
      MaxRetries: 1
      InputRecordTables:
        GlueTables:
          - DatabaseName: !ImportValue MyMLTransformDatabase
            TableName: !ImportValue MyMLTransformTable
      TransformParameters:
        TransformType: "FIND_MATCHES"
        FindMatchesParameters:
          PrimaryKeyColumnName: "testcolumn"
          PrecisionRecallTradeoff: 0.5
          AccuracyCostTradeoff: 0.5
          EnforceProvidedLabels: True
      Tags:
        key1: "value1"
        key2: "value2"
      TransformEncryption:
        TaskRunSecurityConfigurationName: !ImportValue MyMLTransformSecurityConfiguration
        MLUserDataEncryption:
          MLUserDataEncryptionMode: "SSE-KMS"
          KmsKeyId: !ImportValue MyMLTransformEncryptionKey
```

## Exemple de CloudFormation modèle pour un ensemble de AWS Glue Data Quality règles
<a name="sample-cfn-template-data-quality-ruleset"></a>

Un ensemble de règles relatives à la qualité des AWS Glue données contient des règles qui peuvent être évaluées sur une table du catalogue de données. Une fois que l'ensemble de règles est placé sur votre table cible, vous pouvez accéder au catalogue de données et exécuter une évaluation qui confronte vos données aux règles de l'ensemble de règles. Ces règles peuvent aller de l'évaluation du nombre de lignes à l'évaluation de l'intégrité référentielle de vos données.

L'exemple suivant est un CloudFormation modèle qui crée un ensemble de règles avec une variété de règles sur la table cible spécifiée.

```
AWSTemplateFormatVersion: '2010-09-09'
# Sample CFN YAML to demonstrate creating a DataQualityRuleset
#
# Parameters section contains names that are substituted in the Resources section
# These parameters are the names the resources created in the Data Catalog
Parameters:                                                                                                       
  # The name of the ruleset to be created
  RulesetName:  
    Type: String
    Default: "CFNRulesetName"
  RulesetDescription:  
    Type: String
    Default: "CFN DataQualityRuleset"
  # Rules that will be associated with this ruleset
  Rules:  
    Type: String
    Default: 'Rules = [
        RowCount > 100,
        IsUnique "id",
        IsComplete "nametype"
        ]'
  # Name of database and table within Data Catalog which the ruleset will 
  # be applied too
  DatabaseName:  
    Type: String
    Default: "ExampleDatabaseName"
  TableName:  
    Type: String
    Default: "ExampleTableName"

# Resources section defines metadata for the Data Catalog
Resources:
  # Creates a Data Quality ruleset under specified rules 
  DQRuleset:
    Type: AWS::Glue::DataQualityRuleset
    Properties:
      Name: !Ref RulesetName
      Description: !Ref RulesetDescription
      # The String within rules must be formatted in DQDL, a language 
      # used specifically to make rules
      Ruleset: !Ref Rules
      # The targeted table must exist within Data Catalog alongside 
      # the correct database
      TargetTable:
        DatabaseName: !Ref DatabaseName
        TableName: !Ref TableName
```

## Exemple de CloudFormation modèle pour un ensemble de AWS Glue Data Quality règles avec planificateur EventBridge
<a name="sample-cfn-template-data-quality-ruleset-eventbridge"></a>

Un ensemble de règles relatives à la qualité des AWS Glue données contient des règles qui peuvent être évaluées sur une table du catalogue de données. Une fois que l'ensemble de règles est placé sur votre table cible, vous pouvez accéder au catalogue de données et exécuter une évaluation qui confronte vos données aux règles de l'ensemble de règles. Au lieu d'avoir à accéder manuellement au catalogue de données pour évaluer l'ensemble de règles, vous pouvez également ajouter un EventBridge planificateur dans notre CloudFormation modèle pour planifier ces évaluations d'ensembles de règles pour vous à intervalles réguliers.

L'exemple suivant est un CloudFormation modèle qui crée un ensemble de règles de qualité des données et un EventBridge planificateur pour évaluer l'ensemble de règles susmentionné toutes les cinq minutes.

```
AWSTemplateFormatVersion: '2010-09-09'
# Sample CFN YAML to demonstrate creating a DataQualityRuleset
#
# Parameters section contains names that are substituted in the Resources section
# These parameters are the names the resources created in the Data Catalog
Parameters:                                                                                                       
  # The name of the ruleset to be created
  RulesetName:  
    Type: String
    Default: "CFNRulesetName"
  # Rules that will be associated with this Ruleset
  Rules:  
    Type: String
    Default: 'Rules = [
        RowCount > 100,
        IsUnique "id",
        IsComplete "nametype"
        ]'
  # The name of the Schedule to be created  
  ScheduleName:  
    Type: String
    Default: "ScheduleDQRulsetEvaluation"
  # This expression determines the rate at which the Schedule will evaluate
  # your data using the above ruleset
  ScheduleRate:
    Type: String
    Default: "rate(5 minutes)"
  # The Request that being sent must match the details of the Data Quality Ruleset
  ScheduleRequest:
    Type: String
    Default: '
        { "DataSource": { "GlueTable": { "DatabaseName": "ExampleDatabaseName",
         "TableName": "ExampleTableName" } },
         "Role": "role/AWSGlueServiceRoleDefault",
          "RulesetNames": [ ""CFNRulesetName"" ] }
        '

# Resources section defines metadata for the Data Catalog
Resources:
  # Creates a Data Quality ruleset under specified rules 
  DQRuleset:
    Type: AWS::Glue::DataQualityRuleset
    Properties:
      Name: !Ref RulesetName
      Description: "CFN DataQualityRuleset"
      # The String within rules must be formatted in DQDL, a language 
      # used specifically to make rules
      Ruleset: !Ref Rules
      # The targeted table must exist within Data Catalog alongside 
      # the correct database
      TargetTable:
        DatabaseName: "ExampleDatabaseName"
        TableName: "ExampleTableName"
  # Create a Scheduler to schedule evaluation runs on the above ruleset
  ScheduleDQEval:
    Type: AWS::Scheduler::Schedule
    Properties: 
      Name: !Ref ScheduleName
      Description: "Schedule DataQualityRuleset Evaluations"
      FlexibleTimeWindow: 
        Mode: "OFF"
      ScheduleExpression: !Ref ScheduleRate
      ScheduleExpressionTimezone: "America/New_York"
      State: "ENABLED"
      Target: 
        # The ARN is the API that will be run, since we want to evaluate our ruleset
        # we want this specific ARN
        Arn: "arn:aws:scheduler:::aws-sdk:glue:startDataQualityRulesetEvaluationRun"
        # Your RoleArn must have approval to schedule
        RoleArn: "arn:aws:iam::123456789012:role/AWSGlueServiceRoleDefault"
        # This is the Request that is being sent to the Arn
        Input: '
        { "DataSource": { "GlueTable": { "DatabaseName": "sampledb", "TableName": "meteorite" } },
         "Role": "role/AWSGlueServiceRoleDefault",
          "RulesetNames": [ "TestCFN" ] }
        '
```

## Exemple de CloudFormation modèle pour un point de terminaison AWS Glue de développement
<a name="sample-cfn-template-devendpoint"></a>

Un point de terminaison de développement AWS Glue est un environnement que vous pouvez utiliser pour développer et tester vos scripts AWS Glue.

Cet exemple crée un point de terminaison de développement avec les valeurs de paramètres réseau minimales requises pour le créer avec succès. Pour plus d'informations sur les paramètres dont vous avez besoin pour configurer un point de terminaison de développement, consultez [Configuration du réseau pour le développement de AWS Glue](start-development-endpoint.md).

Vous fournissez un ARN (Amazon Resource Name) de rôle IAM existant pour créer le point de terminaison de développement. Fournissez une clé publique RSA valide et conservez la clé privée correspondante disponible si vous prévoyez de créer un serveur de bloc-notes sur le point de terminaison de développement.

**Note**  
Dans le cas d'un serveur de bloc-notes que vous créez qui est associé à un point de terminaison de développement, vous le gérez. Par conséquent, si vous supprimez le point de terminaison de développement, pour supprimer le serveur bloc-notes, vous devez supprimer la CloudFormation pile sur la CloudFormation console.

```
---
AWSTemplateFormatVersion: '2010-09-09'
# Sample CFN YAML to demonstrate creating a development endpoint
#
# Parameters section contains names that are substituted in the Resources section
# These parameters are the names the resources created in the Data Catalog
Parameters:                                                                                                       
# The name of the crawler to be created
  CFNEndpointName:  
    Type: String
    Default: cfn-devendpoint-1
  CFNIAMRoleArn:
    Type: String
    Default: arn:aws:iam::123456789012/role/AWSGlueServiceRoleGA	
#
#
# Resources section defines metadata for the Data Catalog
Resources:
  CFNDevEndpoint:
    Type: AWS::Glue::DevEndpoint
    Properties:
      EndpointName: !Ref CFNEndpointName
      #ExtraJarsS3Path: String
      #ExtraPythonLibsS3Path: String
      NumberOfNodes: 5
      PublicKey: ssh-rsa public.....key myuserid-key
      RoleArn: !Ref CFNIAMRoleArn
      SecurityGroupIds: 
        - sg-64986c0b
      SubnetId: subnet-c67cccac
```