public async Task <PutEventsResponse> FunctionHandler(string input, ILambdaContext context) { PutEventsRequest events = SampleData.transactionEvents; AmazonEventBridgeClient client = new AmazonEventBridgeClient(); var response = await client.PutEventsAsync(events); return(response); }
static async Task Main(string[] args) { // Create Eventbridge & Lambda Client var EBclient = new AmazonEventBridgeClient(awsAccessKeyId: "Your-Access-Key", awsSecretAccessKey: "Your-Secret-Access-Key", region: Amazon.RegionEndpoint.APSoutheast1); var lambdaClient = new AmazonLambdaClient(awsAccessKeyId: "Your-Access-Key", awsSecretAccessKey: "Your-Secret-Access-Key", region: Amazon.RegionEndpoint.APSoutheast1); // Create a Scheduled Rule on EventBridge var putRuleRequest = new PutRuleRequest(); putRuleRequest.Name = "Rule2"; putRuleRequest.ScheduleExpression = "cron(*/1 * * * ? *)"; // Cron Expression (UTC Time): Minute Hour (DayofMonth) Month (DayofWeek) Year putRuleRequest.EventBusName = "default"; putRuleRequest.State = RuleState.ENABLED; var putRuleResponse = await EBclient.PutRuleAsync(putRuleRequest); Console.WriteLine(putRuleResponse.HttpStatusCode); Console.WriteLine(putRuleResponse.RuleArn); // Add Permission of the ScheduledRule to invoke function in Lambda var addPermissionRequest = new Amazon.Lambda.Model.AddPermissionRequest(); addPermissionRequest.Action = "lambda:InvokeFunction"; addPermissionRequest.Principal = "events.amazonaws.com"; addPermissionRequest.StatementId = "lambda-rule-2"; addPermissionRequest.SourceArn = putRuleResponse.RuleArn; addPermissionRequest.FunctionName = "TestEBSNS"; var addPermissionResponse = await lambdaClient.AddPermissionAsync(addPermissionRequest); Console.WriteLine(addPermissionResponse.HttpStatusCode); // Set Target of the Schedule Rule to Lambda Function var putTargetRequest = new PutTargetsRequest(); putTargetRequest.Rule = "Rule2"; putTargetRequest.EventBusName = "default"; var eventTarget = new Target(); eventTarget.Arn = "arn:aws:lambda:your-region:your-account:function:TestEBSNS"; eventTarget.Input = "{ \"Key1\":\"Rule1\", \"Key2\":\"Rule2\" }"; eventTarget.Id = "1"; List <Target> eventTargets = new List <Target>(); eventTargets.Add(eventTarget); putTargetRequest.Targets = eventTargets; var putTargetResponse = await EBclient.PutTargetsAsync(putTargetRequest); Console.WriteLine(putTargetResponse.HttpStatusCode); }
public async Task <PutEventsResponse> SendEvent(PutEventsRequestEntry eventEntry) { var request = new PutEventsRequest { Entries = { eventEntry } }; PutEventsRequest events = request; AmazonEventBridgeClient client = new AmazonEventBridgeClient(); return(await client.PutEventsAsync(events)); }
protected IAmazonEventBridge CreateClient(AWSCredentials credentials, RegionEndpoint region) { var config = new AmazonEventBridgeConfig { RegionEndpoint = region }; Amazon.PowerShell.Utils.Common.PopulateConfig(this, config); this.CustomizeClientConfig(config); var client = new AmazonEventBridgeClient(credentials, config); client.BeforeRequestEvent += RequestEventHandler; client.AfterResponseEvent += ResponseEventHandler; return(client); }
public async Task SendMessageAsync(string bus, string message) { var accessKeyId = config.Get(ConfigNames.AwsMessageBusAccessKeyId); var accessKey = config.Get(ConfigNames.AwsMessageBusAccessKey); var client = new AmazonEventBridgeClient(accessKeyId, accessKey); var response = await client.PutEventsAsync(new PutEventsRequest { Entries = new List <PutEventsRequestEntry> { new PutEventsRequestEntry { EventBusName = bus, DetailType = "ntfrex.blog.model", Source = "ntfrex.blog.web", Detail = message } } }); logger.LogDebug($"called AwsEventBridgeMessageBus service with {bus} and {message}"); logger.LogDebug(JsonSerializer.Serialize(response)); }