

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.

# Utilisation de cibles universelles dans le EventBridge planificateur
<a name="managing-targets-universal"></a>

 Une *cible universelle* est un ensemble personnalisable de paramètres qui vous permet d'invoquer un ensemble plus large d'opérations d'API pour de nombreux AWS services. Par exemple, vous pouvez utiliser un paramètre cible universel (UTP) pour créer une nouvelle file d'attente Amazon SQS à l'[https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_CreateQueue](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_CreateQueue)aide de cette opération. 

 Pour configurer une cible universelle pour votre planning à l'aide du AWS CLI ou de l'un des EventBridge planificateurs SDKs, vous devez spécifier les informations suivantes : 
+  **RoleArn**— L'ARN du rôle d'exécution que vous souhaitez utiliser pour la cible. Le rôle d'exécution que vous spécifiez doit être autorisé à appeler l'opération d'API que vous souhaitez cibler dans votre planning. 
+  **Arn** — L'ARN complet du service, y compris l'opération d'API que vous souhaitez cibler, au format suivant :`arn:aws:scheduler:::aws-sdk:{{service}}:{{apiAction}}`. 

   Par exemple, pour Amazon SQS, le nom du service que vous spécifiez est. `arn:aws:scheduler:::aws-sdk:sqs:sendMessage` 
**Note**  
 La {{service}} valeur de l'ARN cible universel doit correspondre à l'identifiant de service AWS SDK pour le service cible. Cet identifiant peut être différent du préfixe du point de terminaison du service. Par exemple, pour le fournisseur d'identité Amazon Cognito, utilisez `cognitoidentityprovider` (not`cognito-idp`). Pour trouver l'identifiant de service correct, consultez la documentation du AWS SDK correspondant au service que vous souhaitez cibler. 
+  **Entrée** — Un JSON bien formé que vous spécifiez avec les paramètres de demande que EventBridge Scheduler envoie à l'API cible. Les paramètres et la forme du JSON que vous définissez `Input` sont déterminés par l'API de service invoquée par votre planning. Pour trouver ces informations, consultez la référence d'API du service que vous souhaitez cibler. 

## Actions non prises en charge
<a name="unsupported-api-actions"></a>

 EventBridge Le planificateur ne prend pas en charge les actions d'API en lecture seule, telles que les `GET` opérations courantes, qui commencent par la liste de préfixes suivante : 

```
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
```

 Par exemple, l'ARN du service pour l'action d'[https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_GetQueueUrl.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_GetQueueUrl.html)API serait le suivant : `arn:aws:scheduler:::aws-sdk:sqs:getQueueURL` Comme l'action de l'API commence par le `get` préfixe, EventBridge Scheduler ne prend pas en charge cette cible. De même, l'[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)action Amazon MQ n'est pas prise en charge en tant que cible car elle commence par le préfixe. `list` 

## Exemples d'utilisation de la cible universelle
<a name="managing-targets-universal-examples"></a>

 Les paramètres que vous transmettez dans le `Input` champ de planification dépendent des paramètres de demande acceptés par l'API de service que vous souhaitez invoquer. Par exemple, pour cibler Lambda [https://docs.aws.amazon.com/lambda/latest/dg/API_Invoke.html](https://docs.aws.amazon.com/lambda/latest/dg/API_Invoke.html), vous pouvez définir les paramètres répertoriés dans la référence d'[AWS Lambda API](https://docs.aws.amazon.com/lambda/latest/dg/API_Invoke.html#API_Invoke_RequestParameters). Cela inclut la [charge utile](https://docs.aws.amazon.com/lambda/latest/dg/API_Invoke.html#API_Invoke_RequestBody) JSON facultative que vous pouvez transmettre à une fonction Lambda. 

 Pour déterminer les paramètres que vous pouvez définir pour différents services APIs, consultez la référence d'API pour ce service. À l'instar de Lambda`Invoke`, certains APIs acceptent des paramètres d'URI, ainsi qu'une charge utile du corps de requête. Dans ce cas, vous spécifiez les paramètres du chemin de l'URI ainsi que la charge utile JSON dans votre planning`Input`. 

 Les exemples suivants montrent comment utiliser la cible universelle pour appeler des opérations d'API courantes avec Lambda, Amazon SQS et 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");
    }
}
```