

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.

# Uso de objetivos universales en EventBridge Scheduler
<a name="managing-targets-universal"></a>

 Un *objetivo universal* es un conjunto de parámetros personalizables que permiten invocar un conjunto más amplio de operaciones de API para muchos servicios. AWS Por ejemplo, puede utilizar el parámetro de destino universal (UTP) para crear una nueva cola de Amazon SQS mediante la operación [https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_CreateQueue](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_CreateQueue). 

 Para configurar un objetivo universal para su programación mediante el AWS CLI EventBridge programador o uno de ellos SDKs, debe especificar la siguiente información: 
+  **RoleArn**— El ARN de la función de ejecución que desea utilizar para el objetivo. La función de ejecución que especifique debe tener los permisos para llamar a la operación de API a la que desea que se dirija su programación. 
+  **Arn**: el ARN del servicio completo, incluida la operación de API a la que desea dirigirse, en el siguiente formato: `arn:aws:scheduler:::aws-sdk:{{service}}:{{apiAction}}`. 

   Por ejemplo, para Amazon SQS, el nombre del servicio que especifique es `arn:aws:scheduler:::aws-sdk:sqs:sendMessage`. 
**nota**  
 El {{service}} valor del ARN de destino universal debe coincidir con el identificador del servicio de AWS SDK del servicio de destino. Este identificador puede diferir del prefijo de punto final del servicio. Por ejemplo, para Amazon Cognito Identity Provider, utilice `cognitoidentityprovider` (no`cognito-idp`). Para encontrar el identificador de servicio correcto, consulte la documentación del AWS SDK del servicio al que desee dirigirse. 
+  **Entrada**: un JSON bien formado que especificas con los parámetros de solicitud que EventBridge Scheduler envía a la API de destino. Los parámetros y la forma del JSON que establezca en `Input` vienen determinados por la API de servicio que invoque su programación. Para encontrar esta información, consulte la referencia de la API del servicio al que quiere dirigirse. 

## Acciones no admitidas
<a name="unsupported-api-actions"></a>

 EventBridge El programador no admite acciones de API de solo lectura, como las `GET` operaciones comunes, que comiencen con la siguiente lista de prefijos: 

```
get
describe
list
poll
receive
search
scan
query
select
read
lookup
discover
validate
batchGet
batchDescribe
batchRead
transactGet
adminGet
adminList
testMigration
retrieve
testConnection
translateDocument
isAuthorized
invokeModel
```

 Por ejemplo, el ARN del servicio para la acción de la API [https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_GetQueueUrl.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_GetQueueUrl.html) sería el siguiente: `arn:aws:scheduler:::aws-sdk:sqs:getQueueURL`. Como la acción de la API comienza con el `get` prefijo, EventBridge Scheduler no admite este objetivo. Del mismo modo, la acción [https://docs.aws.amazon.com/amazon-mq/latest/api-reference/brokers.html#ListBrokers](https://docs.aws.amazon.com/amazon-mq/latest/api-reference/brokers.html#ListBrokers) de Amazon MQ no se admite como destino porque la operación comienza con el prefijo `list`. 

## Ejemplos que utilizan el destino universal
<a name="managing-targets-universal-examples"></a>

 Los parámetros que pase en el campo `Input` de programación dependen de los parámetros de solicitud que acepte la API de servicio que desea invocar. Por ejemplo, para apuntar a Lambda [https://docs.aws.amazon.com/lambda/latest/dg/API_Invoke.html](https://docs.aws.amazon.com/lambda/latest/dg/API_Invoke.html), puede configurar los parámetros que se enumeran en la [Referencia de la API AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/API_Invoke.html#API_Invoke_RequestParameters). Esto incluye la [carga](https://docs.aws.amazon.com/lambda/latest/dg/API_Invoke.html#API_Invoke_RequestBody) JSON opcional que puede pasar a una función de Lambda. 

 Para determinar los parámetros que puedes configurar de forma diferente APIs, consulta la referencia de la API de ese servicio. Al igual que Lambda`Invoke`, algunas APIs aceptan parámetros de URI, así como una carga útil del cuerpo de la solicitud. En esos casos, debe especificar los parámetros de la ruta del URI y la carga de JSON en su programación `Input`. 

 Los siguientes ejemplos muestran cómo utilizar el destino universal para invocar operaciones de API comunes con Lambda, Amazon SQS y Step Functions. 

**Example Lambda**  

```
$ aws scheduler create-schedule --name lambda-universal-schedule --schedule-expression 'rate(5 minutes)' \
--target '{"RoleArn": "{{ROLE_ARN}}", "Arn":"arn:aws:scheduler:::aws-sdk:lambda:invoke" "Input": "{\"FunctionName\":\"arn:aws:lambda:{{REGION}}:123456789012:function:HelloWorld\",\"InvocationType\":\"Event\",\"Payload\":\"{\\\"message\\\":\\\"testing function\\\"}\"}" }' \
--flexible-time-window '{ "Mode": "OFF"}'
```

**Example Amazon SQS**  

```
import boto3
scheduler = boto3.client('scheduler')

flex_window = { "Mode": "OFF" }

sqs_universal= {
    "RoleArn": "<ROLE_ARN>",
    "Arn": "arn:aws:scheduler:::aws-sdk:sqs:sendMessage",
    "Input": "{\"MessageBody\":\"My message\",\"QueueUrl\":\"<QUEUE_URL>\"}"}
}

scheduler.create_schedule(
    Name="sqs-sdk-test",
    ScheduleExpression="rate(5 minutes)",
    Target=sqs_universal,
    FlexibleTimeWindow=flex_window)
```

**Example Step Functions**  

```
package com.example;

import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.scheduler.SchedulerClient;
import software.amazon.awssdk.services.scheduler.model.*;


public class MySchedulerApp {

    public static void main(String[] args) {
        
        final SchedulerClient client = SchedulerClient.builder()
                .region(Region.US_WEST_2)
                .build();
                
        Target stepFunctionsUniversalTarget = Target.builder()
                .roleArn("<ROLE_ARN>")
                .arn("arn:aws:scheduler:::aws-sdk:sfn:startExecution")
                .input("{\"Input\":\"{}\",\"StateMachineArn\":\"<STATE_MACHINE_ARN>\"}")
                .build();
                
        CreateScheduleRequest createScheduleRequest = CreateScheduleRequest.builder()
                .name("<SCHEDULE_NAME>")
                .scheduleExpression("rate(10 minutes)")
                .target(stepFunctionsUniversalTarget)
                .flexibleTimeWindow(FlexibleTimeWindow.builder()
                        .mode(FlexibleTimeWindowMode.OFF)
                        .build())
                .clientToken("<Token GUID>")
                .build();
                
        client.createSchedule(createScheduleRequest);
        System.out.println("Created schedule with rate expression and Step Function universal target");
    }
}
```