Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
0
        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));
        }
Пример #4
0
        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);
        }
Пример #5
0
        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));
        }