

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.

# Regla de CodeBuild
<a name="rule-reference-CodeBuild"></a>

Al crear una condición, puede agregar la regla de CodeBuild. En esta sección, se proporciona una referencia para los parámetros de reglas. Para obtener más información acerca de las reglas y condiciones, consulte [Funcionamiento de las condiciones de las etapas](concepts-how-it-works-conditions.md).

Puede usar la regla de CodeBuild para crear una condición para que la ejecución del proyecto de compilación sea correcta si cumple los criterios de la regla, por ejemplo, que la ejecución de la compilación sea correcta para una condición beforeEntry.

**nota**  
Para las condiciones beforeEntry que se configuran con el resultado **Skip**, solo están disponibles las reglas `LambdaInvoke` y `VariableCheck`.

**Topics**
+ [Permisos para las políticas de roles de servicio](#rule-reference-Commands-policy)
+ [Tipo de regla](#rule-reference-Commands-type)
+ [Parámetros de configuración](#rule-reference-Commands-config)
+ [Ejemplo de configuraciones de regla](#rule-reference-Commands-example)
+ [Véase también](#rule-reference-Commands-links)

## Permisos para las políticas de roles de servicio
<a name="rule-reference-Commands-policy"></a>

Para conceder permisos a esta regla, agregue lo siguiente a la declaración de la política de rol de servicio de CodePipeline. Reduzca los permisos al nivel de recurso.

```
{
    "Effect": "Allow",
    "Action": [
        "codebuild:BatchGetBuilds",
        "codebuild:StartBuild"
    ],
    "Resource": "resource_ARN"
},
```

## Tipo de regla
<a name="rule-reference-Commands-type"></a>
+ Categoría: `Rule`
+ Propietario: : `AWS`
+ Proveedor: `CodeBuild`
+ Versión: `1` 

## Parámetros de configuración
<a name="rule-reference-Commands-config"></a>

**ProjectName**  
Obligatorio: sí  
`ProjectName` es el nombre del proyecto de compilación de CodeBuild.

**PrimarySource**  
Obligatorio: condicional  
El valor del parámetro `PrimarySource` debe ser el nombre de uno de los artefactos de entrada de la acción. CodeBuild busca el archivo buildspec y ejecuta los comandos buildspec en el directorio que contiene la versión descomprimida de este artefacto.  
Este parámetro es necesario si se especifican varios artefactos de entrada para una acción de CodeBuild. Cuando solo hay un artefacto de origen para la acción, el artefacto `PrimarySource` se establece como valor predeterminado de dicho artefacto.

**BatchEnabled**  
Obligatorio: no  
El valor booleano del parámetro `BatchEnabled` permite que la acción ejecute varias compilaciones en la misma ejecución de compilación.  
Cuando esta opción está habilitada, la opción `CombineArtifacts` está disponible.  
Para ver ejemplos de canalizaciones con compilaciones por lotes habilitadas, consulte [Integración de CodePipeline con CodeBuild y compilaciones por lotes](https://docs.aws.amazon.com/codebuild/latest/userguide/sample-pipeline-batch.html).

**CombineArtifacts**  
Obligatorio: no  
El valor booleano del parámetro `CombineArtifacts` combina todos los artefactos de compilación de una compilación por lotes en un único archivo de artefactos para la acción de compilación.  
Para utilizar esta opción, el parámetro `BatchEnabled` debe estar activado.

**EnvironmentVariables**  
Obligatorio: no  
El valor de este parámetro se utiliza para establecer variables de entorno para la acción de CodeBuild de la canalización. El valor del parámetro `EnvironmentVariables` toma la forma de una matriz JSON de objetos de variables de entorno. Consulte el parámetro de ejemplo en [Declaración de acción (CodeBuild ejemplo)](action-reference-CodeBuild.md#action-reference-CodeBuild-example).  
Cada objeto tiene tres partes, todas las cuales son cadenas:  
+ `name`: el nombre o la clave de la variable de entorno. 
+ `value`: el valor de la variable de entorno. Al utilizar el tipo `PARAMETER_STORE` o `SECRETS_MANAGER`, este valor debe ser el nombre de un parámetro que ya haya almacenado en el almacén de parámetros de AWS Systems Manager o un secreto en el que ya haya almacenado en AWS Secrets Manager, respectivamente.
**nota**  
Se desaconseja usar variables de entorno para almacenar valores confidenciales, especialmente las credenciales de AWS. Cuando utiliza la consola de CodeBuild o la CLI de AWS, las variables de entorno se muestran en texto sin formato. Para valores confidenciales, se recomienda utilizar el tipo `SECRETS_MANAGER`en su lugar. 
+ `type`: (opcional) el tipo de la variable de entorno. Los valores válidos son `PARAMETER_STORE`, `SECRETS_MANAGER` o `PLAINTEXT`. Si no se especifica, toma el valor predeterminado `PLAINTEXT`.
Cuando introduzca los valores `name`, `value`, y `type` de configuración de las variables de entorno, especialmente si la variable de entorno contiene sintaxis de variable de salida de CodePipeline, no supere el límite de 1000 caracteres del campo de valor de la configuración. Cuando se supera este límite, se devuelve un error de validación.
Para obtener más información, consulte [EnvironmentVariable](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_EnvironmentVariable.html) en la AWS CodeBuildAPI Reference. Para ver un ejemplo de acción de CodeBuild con una variable de entorno que se resuelva en el nombre de la ramificación de GitHub, consulte [Ejemplo: usa una BranchName variable con variables de CodeBuild entorno](actions-variables.md#actions-variables-examples-env-branchname).

## Ejemplo de configuraciones de regla
<a name="rule-reference-Commands-example"></a>

------
#### [ YAML ]

```
name: codebuild-rule
ruleTypeId:
  category: Rule
  owner: AWS
  provider: CodeBuild
  version: '1'
configuration:
  ProjectName: my-buildproject
  EnvironmentVariables: '[{"name":"VAR1","value":"variable","type":"PLAINTEXT"}]'
inputArtifacts:
- name: SourceArtifact
region: us-east-1
```

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

```
{
    "name": "codebuild-rule",
    "ruleTypeId": {
        "category": "Rule",
        "owner": "AWS",
        "provider": "CodeBuild",
        "version": "1"
    },
    "configuration": {
        "ProjectName": "my-buildproject"
    },
    "inputArtifacts": [
        {
            "name": "SourceArtifact",
            "EnvironmentVariables": "[{\"name\":\"VAR1\",\"value\":\"variable\",\"type\":\"PLAINTEXT\"}]"
        }
    ],
    "region": "us-east-1"
}
```

------

## Véase también
<a name="rule-reference-Commands-links"></a>

Los recursos relacionados siguientes pueden serle de ayuda cuando trabaje con esta regla.
+ Para obtener más información sobre las reglas y condiciones, consulte [Condition](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_Condition.html), [RuleTypeId](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_RuleTypeId.html) y [RuleExecution](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_RuleExecution.html) en la *Guía de la API de CodePipeline*.