Skip to content

Questions

Marco Bonvini edited this page Mar 27, 2017 · 1 revision

I have different IAM profiles, can I specify which one using?

Your AWS configuration file ~/.aws/credentials can have multiple profiles, for example one for your organization, one personal, etc.

[default]
aws_access_key_id = <access_key_id>
aws_secret_access_key = <access_key_secret>
region = <your_aws_region>

[<your_access_key_name>]
aws_access_key_id = <access_key_id>
aws_secret_access_key = <access_key_secret>
region = <your_aws_region>

The Makefile accepts the parameter PROFILE, by default its value is PROFILE=default. If you want you can select a different profile like

make <command> APP_DIR=./apps/<YOUR_APP> PROFILE=<your_access_key_name>

Why is the FMU downloaded from S3?

When you create a lambda function on AWS you have to submit a zip file that contains the source code and all the dependencies required by your function. This zip file must be smaller than 50MB!

Trying to compress all the Python dependencies needed to simulate an FMU entails packaging PyFMI, Assimulo, Numpy, Scipy, Sundials, FMILib, etc. This is quite a challenging task. In the current implementation the zip file without the source code of the lambda function and its JSON configuration file is 49.77MB, that doesn't leave space much space for any real-world FMU model.

Does downloading the FMU slow down the Lambda function?

AWS keeps the environment where the code is executed "warm". What this mean is that the first time you make a request to the API it will take a bit of time because it has to download the FMU and setup other things. The following requests don't trigger the download and reuse the same environment.

Can I protect the API from the public?

Yes you can, you can even let people pay to use your API and simulate your model! Generate access tokens that have limits on the requests per month/day and the number of requests per second. Have a look at the following links in case you are more interested.

More questions on Lambda functions and Apigateway?