As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Usando alvos universais no EventBridge Scheduler
Um alvo universal é um conjunto personalizável de parâmetros que permite invocar um conjunto mais amplo de API operações para muitos AWS serviços. Por exemplo, você pode usar um parâmetro de destino universal (UTP) para criar uma nova SQS fila da Amazon usando a CreateQueue
operação.
Para configurar uma meta universal para sua agenda usando o AWS CLI ou um dos EventBridge AgendadoresSDKs, você precisa especificar as seguintes informações:
-
RoleArn— ARN Para a função de execução que você deseja usar para o alvo. A função de execução que você especificar deve ter as permissões para chamar a API operação que você deseja que seu cronograma vise.
-
Arn — O serviço completoARN, incluindo a API operação que você deseja atingir, no seguinte formato:
arn:aws:scheduler:::aws-sdk:
.service
:apiAction
Por exemplo, para a AmazonSQS, o nome do serviço que você especifica é
arn:aws:scheduler:::aws-sdk:
.sqs
:sendMessage
-
Entrada — Uma entrada bem formada JSON que você especifica com os parâmetros de solicitação que o EventBridge Scheduler envia para o destino. API Os parâmetros e a forma do JSON que você configurou
Input
são determinados pelo serviço que API sua agenda invoca. Para encontrar essas informações, consulte a API referência do serviço que você deseja segmentar.
Ações não compatíveis
EventBridge O Scheduler não suporta API ações somente para leitura, como GET
operações comuns, que começam com a seguinte lista de prefixos:
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 exemplo, o serviço ARN para a GetQueueUrl
APIação seria o seguinte:arn:aws:scheduler:::aws-sdk:sqs:
. Como a API ação começa com o getQueueURL
get
prefixo, o EventBridge Scheduler não oferece suporte a esse alvo. Da mesma forma, a ação ListBrokers
do Amazon MQ não é aceita como destino porque a operação começa com o prefixo list
.
Exemplos usando o destino universal
Os parâmetros transmitidos no Input
campo de agendamento dependem dos parâmetros de solicitação que o serviço que API você deseja invocar aceita. Por exemplo, para direcionar o Lambda Invoke
, você pode definir os parâmetros listados em AWS Lambda API Referência. Isso inclui a JSON carga opcional que você pode passar para uma função Lambda.
Para determinar os parâmetros que você pode definir para diferentesAPIs, consulte a API referência desse serviço. Semelhante ao LambdaInvoke
, alguns APIs aceitam URI parâmetros, bem como uma carga útil do corpo da solicitação. Nesses casos, você especifica os parâmetros do URI caminho, bem como a JSON carga útil em sua agendaInput
.
Os exemplos a seguir mostram como usar o alvo universal para invocar API operações comuns com Lambda, SQS Amazon e Step Functions.
exemplo 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"}'
exemplo 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)
exemplo 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"); } }