AWS Lambda is a popular tool in the serverless ecosystem offered by Amazon Web Services. AWS Lambda calls are used to call APIs; integrate with external services; serve static and dynamic websites; and process data. You can upload your code to AWS Lambda or trigger it from other services. Another advantage that it provides is that you only pay for the compute time that you use.
Google Cloud APIs allow you to access and interact with services on the Google Cloud Platform (GCP), allowing you to use GCP products in your application code. The APIs are interfaced over HTTP, JSON, and gRPC interfaces, which allows you to make a direct request to the endpoints to use client libraries.
Why Integrate AWS Lambda with Google Cloud APIs?
In the cloud engineering domain, there’s a methodology referred to as a multicloud strategy. This strategy basically allows you to harness the advantages of different cloud providers and also spread your workloads. Integrating AWS Lambda with Google Cloud APIs is in line with this methodology, and allows you to take advantage of the best features of both systems.
AWS and GCP are two of the biggest cloud providers, and offer many benefits that could be leveraged when building your systems. For instance, you could interface the machine learning or big data products in GCP with the storage platforms in AWS, or you could have your application on AWS Lambda, but use the Google Cloud Vision API for text detection or other computer vision capabilities. AWS provides a mature, reliable platform to host your serverless application, while Google Cloud provides powerful APIs for machine-learning tasks.
Use Cases of AWS Lambda and Google Cloud API Integration
In this article, you’ll be focusing on the Google Cloud Machine Learning APIs. They use REST and RPC APIs to provide access to a computer vision toolkit and set of machine-learning models that can be used to perform a wide variety of tasks for your Lambda-hosted applications.
* Optical character recognition (OCR) of user-submitted documents.
* Translation of user input or user-submitted materials.
* Developing a customer service chatbot.
In this tutorial, you’ll take a closer look at some of the challenges of integrating Google Cloud with AWS Lambda.
Challenges of Integrating AWS Lambda with Google Cloud
While there are many potential benefits to this integration, there are some challenges, as well.
Cross-Origin Resource Sharing Issues
Authenticating requests to API-based Lambda functions can be difficult when you need to set up a cross-origin resource sharing mechanism. Enabling cross-origin resource sharing, or CORS, allows you to authenticate and authorize access to resources across different domains, subdomains, and ports. Ordinarily, CORS settings are handled by the AWS API Gateway, and its implementation is based on your tech framework or language. Ensure that you define appropriate CORS policy in the AWS API Gateway, such as `Access-Control-Allow-Origin`.
You might also need to set up CORS implementation in your Lambda code. Having to deal with these different configurations could be demoralizing, especially for non-experts. Several times, developers get CORS errors when making REST requests to AWS API Gateway. One popular way to confirm the error is checking through the request and resource parameters of the API request in the developer tools section of a web browser, or using an API client like Postman. Once you are assured that it is a CORS issue, you will need to look through the CORS configuration in your Lambda code and in the AWS API Gateway.
Complex Debugging Experience
Debugging isn’t always straightforward with AWS Lambda functions, and often requires that you review logs from multiple executions of a function, which is time-consuming and prone to errors.
Debugging is also complicated by AWS Lambda’s tight coupling with other AWS products. While there are emulators such as LocalStack that try to resolve this problem, they can come with pain points of their own, such as out-of-date or missing services. And, of course, while these tools can help you find issues in your code, they don’t offer much when it comes to production issues.
Some developers take preemptive measures against the complexity of debugging Lambda by setting up monitoring tools for their Lambda executions. Using Google Cloud APIs for the core business logic enables you to be able to debug your code better with the GCP snapshot debugger.
While the combination of Google Cloud APIs and AWS Lambda can do a lot in terms of information collection, it’s easy to run into the problem of having enough data that none of it is actionable. It’s difficult to make business decisions based on the aggregate of raw text, or to evaluate how effective your customer service chatbot is based on nothing but hundreds or thousands of transcripts. Accumulating an enormous quantity of unusable data doesn’t provide any value to your business—it just wastes your storage space.
Integrating AWS Lambda with Google Cloud APIs
From the identity access management (IAM) section of your AWS console, retrieve your AWS credentials. You can read more about IAM credentials in the reference guide on understanding and getting your AWS credentials.
In your Google Cloud console, create a service account to authenticate your access to the Google Cloud APIs. After creating the service account, create and download a JSON authentication key from the GCP console by following the instructions in the guide to getting started with authentication. The file is also referred to as a service account key.
Set up the code and dependencies for your AWS Lambda application. Make sure that you include the path to the downloaded JSON key file as an environment variable in your code. The following code shows how to set environment variables in Python:
```py os.environ["GOOGLE_APPLICATION_CREDENTIALS"]="project-config.json" ```
Lambda accepts code deployment packages in the form of a ZIP archive, so you’ll need to package your code and its dependencies as a ZIP file archive, then upload it to Lambda.
After uploading your ZIP archive, you can then execute the created Lambda function. For more information on deploying Lambda functions, take a look at the documentation.
Taking the Next Steps with Symbl.ai
One of the common use cases for integrating AWS Lambda with Google Cloud APIs is making use of Google’s Speech to Text APIs, which allow you to convert audio samples to text. Google Cloud offers a powerful speech-to-text service that supports speech adaptation and domain-specific models to help you process all kinds of speech samples. You can pair this up with AWS Lambda to create complex workflows and triggers, and to automate tasks such as transcription, closed captioning, and more.
If you’d like to avoid the hassle of integrating Google Cloud APIs with AWS Lambda, though, you might be better off skipping all these complex integrations and using Symbl.ai.
Symbl.ai’s Asynchronous Text API can help you analyze conversational data to generate transcripts or summaries, identify topics, and assess customer sentiment. It can also identify questions that were asked and items that need to be followed up on.
Symbl.ai uses a straightforward RESTful API, and you can be up and running within a matter of minutes—without having to worry about complex code or integrations.
In this article, you’ve looked at the benefits offered by the combination of AWS Lambda and the capabilities of Google Cloud APIs. You’ve also read about how to harness the mature deployment and cloud storage from AWS Lambda and the robust machine learning toolkit from Google’s Machine Learning API, and considered some of the difficulties you might encounter when doing so.
Finally, you examined how you can derive more value from the information that you acquire on these platforms, and how Symbl.ai can help. Symbl.ai is a conversational intelligence platform that enables you to achieve contextual understanding of human conversations. It offers both real-time and asynchronous processing of text, video, and audio data, allowing you to automate not just transcripts and real-time captioning, but also to derive insights such as customer sentiment, topics that were discussed, follow-up actions, and questions that were asked, helping you to better understand your customers and make business decisions that positively affect them.