Deploy a Serverless Function and Access Using an API Gateway
Deployment in OCI
Scenario
You have joined ACME as their new Cloud Solutions Architect. Your organization wants to verify if
they can execute their microservices deployed as serverless functions on another cloud provider
using Oracle Functions in OCI.
Preconfigured
To complete this requirement, you are provided with the following:
* Access to an OCI Tenancy, an assigned compartment, and OCI credentials.
* Access to Cloud Shell to execute the Fn CLI and Docker commands.
* Code for a sample Python function, ExamFunction-main.zip.
* Permissions to perform only the tasks within the challenge.
Note: Throughout your exam, ensure to use assigned Compartment 99248134-
C01 and Region us-ashburn-1
Having deployed a private function to an Oracle Functions application in OCI as proof-of-concept,
demonstrate that it can be invoked via a public API Gateway deployment. Before you proceed
further, ensure that you have created the following resources:
* An OCI VCN in your compartment for hosting the API Gateway2
* The hello-python function deployed to a Functions application in your compartment
Complete the following tasks in the provisioned OCI environment:
1. Create a new public API Gateway in your compartment named exam-gateway.
2. Create a new API Deployment named exam-deployment using /v1 as the path prefix
in exam-gateway.
3. Create a new route by using /hello as the path and GET as the method. The route must
invoke the hello-python function.
4. Create a new stateful CIDR Ingress Rule that allows for TCP HTTPS traffic (port 443) from all
IP addresses and ports in the default Security List for exam-vcn.
5. Use curl to call the function via your API Gateway deployment.
curl -k -X GET {deployment-endpoint}/hell
To complete the task of creating a public API Gateway and invoking a private function in OCI, you can follow these steps:
To create a new public API Gateway in your compartment named exam-gateway, follow these steps:
In the OCI Console, go toDeveloper Servicesand clickAPI Gateway.
Select your assigned compartment from the list on the left.
ClickCreate Gateway.
Enterexam-gatewayas theNameand selectPublicas theType. You can also add a description for the gateway if you want.
Select your previously created VCN from theVCNdropdown menu and select any subnet from theSubnetdropdown menu. You can also enable logging for the gateway if you want.
ClickCreate. This will create a new public API Gateway in your compartment that can expose your functions to the internet.
To create a new API Deployment named exam-deployment using /v1 as the path prefix in exam-gateway, follow these steps:
In the OCI Console, go toDeveloper Servicesand clickAPI Gateway.
Select your assigned compartment from the list on the left and click on your previously created gateway (exam-gateway).
ClickDeploymentson the left panel and then clickCreate Deployment.
Enterexam-deploymentas theNameand selectFrom Scratchas theSpecification Type. You can also add a description for the deployment if you want.
Enter /v1 as thePath Prefixand leave the other fields as default. ClickNext.
To create a new route by using /hello as the path and GET as the method, follow these steps:
In the Create Deployment dialog box, clickAdd Route.
Enter /hello as thePath, select GET as theMethod, and select Oracle Functions as theType.
Select your previously created function (hello-python) from theFunction Namedropdown menu and leave the other fields as default. ClickSave Changes. This will create a new route that will invoke your function when you send a GET request to /v1/hello.
To create a new stateful CIDR Ingress Rule that allows for TCP HTTPS traffic (port 443) from all IP addresses and ports in the default Security List for exam-vcn, follow these steps:
In the OCI Console, go toNetworkingand clickVirtual Cloud Networks.
Select your assigned compartment from the list on the left and click on your previously created VCN (exam-vcn).
ClickSecurity Listson the left panel and then click on the default security list for your VCN.
ClickEdit All Rulesand then clickAdd Ingress Ruleunder the Ingress Rules section.
Enter 0.0.0.0/0 as theSource CIDR, select TCP as theIP Protocol, and enter 443 as both theSource Port Rangeand theDestination Port Range. You can also add a description for the rule if you want.
ClickSave Security List Rules. This will create a new stateful CIDR Ingress Rule that will allow HTTPS traffic from any source to reach your API Gateway.
To use curl to call the function via your API Gateway deployment, follow these steps:
In the OCI Console, go toDeveloper Servicesand clickAPI Gateway.
Select your assigned compartment from the list on the left and click on your previously created gateway (exam-gateway).
ClickDeploymentson the left panel and then click on your previously created deployment (exam-deployment).
Copy the value of the Endpoint URL field. This is the base URL for your API Deployment.
In a terminal window, enter the following command:
curl -k -X GET {deployment-endpoint}/v1/hello
where {deployment-endpoint} is the base URL that you copied.
For example, if your deployment endpoint is https://abc123xyz456.apigateway.us-ashburn-1.oci.customer-oci.com, your command would be:
curl -k -X GET https://abc123xyz456.apigateway.us-ashburn-1.oci.customer-oci.com/v1/hello
This will send a GET request to your API Deployment and invoke your function. You should see a response similar to this:
{'message': 'Hello World!'}
Topic 2, Multiple Choice Questions
Currently there are no comments in this discussion, be the first to comment!