Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Only AWS is supported for the serverless configuration #154

Closed
bbenligiray opened this issue Dec 6, 2020 · 7 comments
Closed

Only AWS is supported for the serverless configuration #154

bbenligiray opened this issue Dec 6, 2020 · 7 comments
Labels
deployer About the @airnode/deployer package

Comments

@bbenligiray
Copy link
Member

bbenligiray commented Dec 6, 2020

Currently the deployer only supports AWS. We want to support others as well, starting from GCP and Azure. Please comment below if you are interested in contributing.

Tracked by https://api3dao.atlassian.net/browse/AN-157

@Arrowana
Copy link
Contributor

Arrowana commented Jan 31, 2021

I am willing to do the Azure implementation of the deployer.
I am not familiar with terraform or azure function but this should be fine to learn.

@bbenligiray
Copy link
Member Author

Sure, please go ahead. I want to give you a heads up about a few issues you may encounter:

  • This Serverless plugin we use is AWS-specific. We use it to both to reduce the size of the deployment and also to take care of the symlinks to the other packages in the monorepo (from the deployer to the node for example). We'll probably have to implement a custom packer first to port the node to non-AWS providers (and after doing that the port itself is trivial anyway).

  • The deployer uses AWS SSM extensively to manage the mnemonic, but at the end of the day, it goes in the node environment variables under the name MASTER_KEY_MNEMONIC. We need to figure out how we want to deal with this:

    • Use the equivalent of SSM for each cloud provider (porting overhead, but maybe not that much)
    • Always keep the mnemonic in AWS SSM (the user always needs to have at least one AWS deployment, weird but fine imo, especially as a temporary solution)
    • Treat SSM as an optional feature (the user would have to handle their mnemonic at each redeployment, definitely not desirable)

    Feel free to join our Discord btw

@bbenligiray
Copy link
Member Author

Related to this issue #112

@Ashar2shahid
Copy link
Contributor

Ashar2shahid commented Mar 15, 2021

There are some issues with directory structuring when deploying with Google Cloud in particular

Google Cloud Functions assumes that you have a index.js or function.js file with the exported handler functions in the root of your project (you can read more about that in their docs).

Even after keeping the index.js in the root directory(not really sure if this a viable option) and deploying the functions onto GCP there were issues in the packaging due to

src/handlers/aws/index.ts:2:23 - error TS2307: Cannot find module '@airnode/node' or its corresponding type declarations.

I think serverless wouldn't really be a viable option for this particular task and have to use terraform instead.

@bbenligiray bbenligiray added blocked Blocked by another issue/PR and removed config-tools labels Mar 18, 2021
@bbenligiray
Copy link
Member Author

Blocked by #206

@bbenligiray
Copy link
Member Author

Blocked by the deployer being under development

@bbenligiray bbenligiray removed the blocked Blocked by another issue/PR label Aug 6, 2021
@bbenligiray bbenligiray changed the title Extend the deployer to support additional cloud providers Only AWS is supported for the serverless configuration Aug 23, 2021
@bbenligiray bbenligiray removed the enhancement New feature or request label Aug 23, 2021
@bbenligiray
Copy link
Member Author

bbenligiray commented Feb 7, 2022

We now support GCP https://github.com/api3dao/airnode/releases/tag/v0.3.0
Azure support is being considered

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
deployer About the @airnode/deployer package
Projects
None yet
Development

No branches or pull requests

3 participants