Skip to content

Commit 984c672

Browse files
committed
updated readme & license, topic subscription
1 parent 926f047 commit 984c672

File tree

5 files changed

+53
-15
lines changed

5 files changed

+53
-15
lines changed

LICENSE.md

+3-1
Original file line numberDiff line numberDiff line change
@@ -1 +1,3 @@
1-
The content of this workshop, created by Marc Duiker / Xpirit, is licensed under a [Attribution-NonCommercial-ShareAlike 4.0 International License (CC BY-NC-SA 4.0) ](https://creativecommons.org/licenses/by-nc-sa/4.0/)
1+
The content of this workshop, created by Marc Duiker / Xpirit, is licensed under a [Attribution-NonCommercial-ShareAlike 4.0 International License (CC BY-NC-SA 4.0) ](https://creativecommons.org/licenses/by-nc-sa/4.0/)
2+
3+
Contact me at [[email protected]](mailto:[email protected]) if you want to use this material for a training at your organisation.

README.md

+47-11
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,18 @@ The NEO data (of type `DetectedNEOEvent`) looks as follows:
3535

3636
Another team was tasked with the ingestion of the NEO data and this data is already being pushed to an Azure Servicebus topic.
3737

38+
You are tasked with creating two Azure Function apps which are decscribed below.
39+
40+
### XASA Onboarding Function App
41+
42+
You will be responsible for automating a part of the onboarding process for new XASA employees. This Function App will contain two functions:
43+
44+
- An HTTP trigger function which validates the input (username & email) and puts a message on a queue.
45+
- A Queue trigger function which calls an service to register the user and returns connectionstring and api key information. The result is stored in blob storage.
46+
47+
```
48+
POST --> HTTP trigger --> Queue trigger --> Blob
49+
```
3850
### NEO Event Processor Function App
3951

4052
You will be responsible for creating a Function App that is triggered by messages pushed to the Servicebus topic.
@@ -49,6 +61,27 @@ The Function App needs to make several calls to other services in order to deter
4961

5062
In addition to these service calls, the processed data needs to be stored to blob storage (for events with a Torino impact >= 1) and a notification needs to be sent out to Bruce Willis (for events with a Torino impact >= 8).
5163

64+
65+
```
66+
Message --> Servicebus trigger --> NeoEventProcessingOrchestrator
67+
|
68+
V
69+
EstimateKineticEnergyActivity
70+
|
71+
V
72+
EstimateImpactProbabilityActivity
73+
|
74+
V
75+
EstimateTorinoImpactActivity
76+
|
77+
V
78+
StoreProcessedNeoEventActivity
79+
|
80+
V
81+
SendNotificationActivity
82+
83+
```
84+
5285
> The final implementation is also in this repo. However, it is lots more fun, and you learn way more, by creating your own solution and following all the labs. Only peek at my solution if you're completely stuck.
5386
5487
>**I strongly suggest you team up with someone to do pair programming and discuss what you're doing.**
@@ -57,17 +90,20 @@ In addition to these service calls, the processed data needs to be stored to blo
5790
5891
## Labs
5992

60-
0. [Check Prerequisites](labs/0_prerequisites.md) & [Get your subscription keys](labs/0_subscribe.md)
61-
1. [Creating a new function project](labs/1_creating_a_function_project.md)
62-
2. [Creating an orchestration client](labs/2_create_orchestration_client.md)
63-
3. [Creating the orchestrator function](labs/3_create_orchestrator_function.md)
64-
4. [Calling other services](labs/4_create_activity_functions_services.md)
65-
5. [Storing the ProcessedNeoEvent](labs/5_create_activity_function_storage.md)
66-
6. [Sending a notification](labs/6_send_notification.md)
67-
7. [Unit testing](labs/7_unit_testing.md)
68-
8. [Creating Azure resources](labs/8_create_azure_resources.md)
69-
9. [Publish to Azure](labs/9_publish_to_azure.md)
70-
10. [Additional features](labs/10_additional_features.md)
93+
0. [Check Prerequisites](labs/0_prerequisites.md)
94+
1. [Creating a new function project with an http trigger](labs/1_creating_a_function_project.md)
95+
2. [Adding a queue output binding](labs/2_adding_a_queue_binding.md)
96+
3. [Adding a queue trigger function](labs/3_create_queuetrigger_function.md)
97+
4. [Creating a new function project with a servicebus trigger](labs/4_adding_servicebus_trigger.md)
98+
5. [Creating an orchestration client](labs/5_create_orchestration_client.md)
99+
6. [Creating the orchestrator function](labs/6_create_orchestrator_function.md)
100+
7. [Calling other services](labs/7_create_activity_functions_services.md)
101+
8. [Storing the ProcessedNeoEvent](labs/8_create_activity_function_storage.md)
102+
9. [Sending a notification](labs/9_send_notification.md)
103+
10. [Unit testing](labs/10_unit_testing.md)
104+
11. [Creating Azure resources](labs/11_create_azure_resources.md)
105+
12. [Publish to Azure](labs/12_publish_to_azure.md)
106+
13. [Additional features](labs/13_additional_features.md)
71107

72108
## License
73109

File renamed without changes.

labs/4_adding_servicebus_trigger.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ With your IDE of choice create a Function App (suggested name: `NeoEventProcessi
1515

1616
- Connectionstring setting name: `NEOEventsTopic`
1717
- Topic name: `neo-events`
18-
- Subscription name: `<subscriptionname>` (will be different for each attendee)
18+
- Subscription name: `<subscriptionname>` (get this from the blob json file that is created in the earlier previous lab)
1919

2020
The resulting servicebus function trigger should look something like this:
2121

@@ -25,7 +25,7 @@ The resulting servicebus function trigger should look something like this:
2525

2626
The trigger now has a connection name which will be looked up in the application settings. But there's is no actual connectionstring specified yet.
2727

28-
Add the connection name and the connectionstring to the `local.settings.json` file in your local function folder:
28+
Add the connection name and the actual connectionstring (from the json file) to the `local.settings.json` file in your local function folder:
2929

3030
```json
3131
{

src/Demo.NEO.EventProcessing/NeoEventProcessingClientServicebus.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ public class NeoEventProcessingClientServicebus
1111
{
1212
[FunctionName(nameof(NeoEventProcessingClientServicebus))]
1313
public async Task Run(
14-
[ServiceBusTrigger("neo-events", "marc-duiker-db75252d-47f5-4b02-9911-c1378e44612d", Connection = "NEOEventsTopic")]string message,
14+
[ServiceBusTrigger("neo-events", "marc-duiker-30ae5962-40e1-4c9f-b5fd-9cc834edd2f4", Connection = "NEOEventsTopic")]string message,
1515
[DurableClient]IDurableClient orchestrationClient,
1616
ILogger log)
1717
{

0 commit comments

Comments
 (0)