mirror of
https://github.com/sartography/spiff-arena.git
synced 2025-02-18 20:36:46 +00:00
59 lines
3.7 KiB
Markdown
59 lines
3.7 KiB
Markdown
|
# Deploying a Connector Proxy as an AWS Lambda Function
|
||
|
|
||
|
This guide shows you how to deploy the demo `Connector Proxy` as an `AWS Lambda Function` as well as how to integrate it with [SpiffArena](https://www.spiffworkflow.org/pages/spiffarena/). The [Getting Started Guide](https://www.spiffworkflow.org/posts/articles/get_started/) will be used as the basis for integration but the steps should easily map to any custom installation.
|
||
|
|
||
|
There is an assumption that you have access to login to the AWS Console and can create/deploy Lambda functions.
|
||
|
|
||
|
## Building the zip
|
||
|
|
||
|
One option when deploying a Lambda function is to upload a zip file containing the source code or executable. In the root of [this repository](https://github.com/sartography/connector-proxy-lambda-demo) run:
|
||
|
|
||
|
```
|
||
|
make zip
|
||
|
```
|
||
|
|
||
|
This will create a zip file containing the [lambda entry point function](https://github.com/sartography/connector-proxy-lambda-demo/blob/main/connector_proxy_lambda_demo/lambda_function.py#L5) as well as all the dependencies needed to execute the connectors. For this example the libraries [spiffworkflow-proxy](https://github.com/sartography/spiffworkflow-proxy) is used for discovering connectors and [connector-http](https://github.com/sartography/connector-http) is an example connector that provides http get and post requests.
|
||
|
|
||
|
Once `make zip` completes `connector_proxy_lambda_demo.zip` will be available in the repository root.
|
||
|
|
||
|
## Creating the Lambda Function
|
||
|
|
||
|
Log in to the AWS Console and navigate to the Lambda section.
|
||
|
|
||
|

|
||
|
|
||
|
From there choose `Create function`.
|
||
|
|
||
|

|
||
|
|
||
|
Choose to `Author from scratch` and select the most recent Python runtime.
|
||
|
|
||
|

|
||
|
|
||
|
Under `Advanced Settings` check `Enable function URL`. For this demo we will use the `NONE` auth type to keep things simple.
|
||
|
|
||
|

|
||
|
|
||
|
After hitting the `Create function` button you will be taken to your new Lambda function:
|
||
|
|
||
|

|
||
|
|
||
|
In the bottom right of the first section is a link to your Lamba's function URL. Click it for a hello world response.
|
||
|
|
||
|

|
||
|
|
||
|
## Deploying the Lambda Function
|
||
|
|
||
|
If you scroll down you will see a section with the example code created with your Lambda function. We are going to replace this with the contents of our zip file. Choose `Upload from` and select `.zip file`.
|
||
|
|
||
|

|
||
|
|
||
|
After a confirmation dialog you will see your lambda has been updated:
|
||
|
|
||
|

|
||
|
|
||
|
Click your function URL again to see a hello from our deployed Connector Proxy.
|
||
|
|
||
|
## Integrating With SpiffArena
|
||
|
|
||
|
Congrats, your Connector Proxy has been deployed as a Lambda function. For information on configuring SpiffArena to use the new Connector Proxy url please see [Configure a Connector Proxy](configure_connector_proxy).
|