I have limited experience with AWS (EC2 and S3), and some experience with Azure (storage, Data Factory, DB, Functions which works like Lambda).
AWS - if you're the admin, you can create resources like S3 and Lambda pretty readily. I've only used the web interface for placing files on S3 and setting their permissions. You can set them to public, or have them "private" but grant access to something like AWS's load-balancer.
If Lambda is anything like Azure Functions, you can set up "one" Azure Function, but within it have a whole collection of code including shared libraries. These can be set up to have access to your S3 or database - they can hit external data sources or hit APIs. They can do a lot. But they tend to be super cheap as long as you make each "function" do something relatively isolated and quick. You can choose your language - all of my Azure Functions were Python. I liked putting JSON configuration in file storage, and pulling it in based on the environment (e.g. test, staging, production). But put any credentials in something like the Azure KeyVault (whatever AWS' equivalent is) and populate environment variables to point to which KeyVault and which storage/db/etc. you might be using. (Though depending on use cases, you can configure some things in JSON in file storage, as long as the actual secrets are still pulled from the KeyVault.)