https://github.com/bboure/appsyncchallenge
The #AppSyncChallenge on Twitter
https://github.com/bboure/appsyncchallenge
Last synced: 7 months ago
JSON representation
The #AppSyncChallenge on Twitter
- Host: GitHub
- URL: https://github.com/bboure/appsyncchallenge
- Owner: bboure
- Created: 2021-04-27T17:59:41.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2021-05-02T08:53:06.000Z (over 4 years ago)
- Last Synced: 2025-01-30T09:12:27.713Z (8 months ago)
- Language: TypeScript
- Size: 74.2 KB
- Stars: 4
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
See [#AppSyncChallenge](https://twitter.com/hashtag/AppSyncChallenge) on Twitter
# The Challenge
Build an AppSync API. There are only 2 rules:
- It must call at least one AWS service of your choice (eg: Lambda, SSM, Strep Functions, S3)
- You **cannot** use Lambda resolvers. Use VTL **only**!There are no other restrictions. Use the IaC of your choice (Serverless framework, Amplify, CDK, etc.)
When you are done, post your solution with a link to your Github repo on Twitter. Use the hashtag #AppSyncChallenge to make sure it's visible to everyone following the challenge.
# Ideas
If you are out of inspiration, here are a couple of ideas for you:
- Have AppSync put an event into an EventBridge bus, and have a Lambda function process the event asynchroneously.
```graphql
mutation {
putEvent(event: "{\"foo\": \"bar\"}")
}
```
**Bonus**: Add a subcription endpoint to AppSync that will receive a notification when the Lambda finishes.
- Build an API that browses an S3 Bucket
```graphql
query {
s3(bucketName: "my-bucket", prefix: "path/to/files") {
key
size
}
}
```- Execute a Step Function
```graphql
mutation {
startStepFunction(name: "my_task", input: "{\"foo\": \"bar\"}") {
key
size
}
}
```
**Bonus**: Add a subcription endpoint to AppSync that will receive a notification when the Step Functions complete.
- Reveal a secret from SSM
```graphql
query {
revealSecret(path: "path/to/ssm/secret")
}
```
- Invoke a long-running Lambda function asynchroneously (AppSync will not wait for the function to return)
```graphql
mutation {
runLambda(name: "myLambda", input: "{\"foo\": \"bar\"}")
}
```**Bonus**: Add a subcription endpoint to AppSync that will receive a notification when the Lambda finishes.
