

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.

# Utilizar un evento para ejecutar una función de Lambda
<a name="configure-service-events-lambda-function"></a>

 En este ejemplo, se muestra cómo configurar una EventBridge regla que inicie una AWS Lambda función cuando se publique, modifique o elimine una versión de paquete de un CodeArtifact repositorio. 

Para obtener más información, consulta el [tutorial: Cómo programar AWS Lambda funciones EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/run-lambda-schedule.html) en la *Guía del EventBridge usuario de Amazon*. 

**Topics**
+ [Cree la EventBridge regla](#configure-service-events-lambda-create-rule)
+ [Cree el objetivo de la EventBridge regla](#configure-service-events-lambda-create-rule-target)
+ [Configure EventBridge los permisos](#configure-service-events-lambda-permissions)

## Cree la EventBridge regla
<a name="configure-service-events-lambda-create-rule"></a>

 Para crear una regla que inicie una función de Lambda, utilice el comando `put-rule` con las opciones `--name` y `--event-pattern`. El siguiente patrón especifica los paquetes npm en el ámbito `@types` de cualquier repositorio del dominio `my_domain`.

```
aws events put-rule --name "{{MyCodeArtifactRepoRule}}" --event-pattern \
  '{"source":["aws.codeartifact"],"detail-type":["CodeArtifact Package Version State Change"],
  "detail":{"domainName":["{{my_domain}}"],"domainOwner":["{{111122223333}}"],"packageNamespace":["types"],"packageFormat":["{{npm}}"]}}'
```

## Cree el objetivo de la EventBridge regla
<a name="configure-service-events-lambda-create-rule-target"></a>

 El siguiente comando agrega un destino a la regla que ejecuta la función de Lambda cuando un evento coincide con la regla. Para el parámetro `arn`, especifique el nombre de recurso de Amazon (ARN) de la función de Lambda. 

```
aws events put-targets --rule {{MyCodeArtifactRepoRule}} --targets \
  Id=1,Arn=arn:aws:lambda:{{us-west-2}}:{{111122223333}}:function:{{MyLambdaFunction}}
```

## Configure EventBridge los permisos
<a name="configure-service-events-lambda-permissions"></a>

 Utilice el comando `add-permission` para conceder permisos para que la regla invoque una función de Lambda. Para el parámetro `--source-arn`, especifique el ARN de la regla que creó anteriormente en este ejemplo. 

```
aws lambda add-permission --function-name {{MyLambdaFunction}} \\
  --statement-id {{my-statement-id}} --action 'lambda:InvokeFunction' \\
  --principal events.amazonaws.com \\
  --source-arn arn:aws:events:{{us-west-2}}:{{111122223333}}:rule/{{MyCodeArtifactRepoRule}}
```