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-
C01and Region us-ashburn-1
Complete the following tasks in the provisioned OCI environment:
Create a new private repository in the Container Registry named {username}/hellopythonwithin your assigned compartment.
For example: If your user name is 99346163-lab.user02, then name the registry as 99346163-
lab.user02/hello-python.
Your username is 99248134-lab.user01
To create a new private repository in the Container Registry named 99248134-lab.user01/hello-python within your assigned compartment, you can follow these steps:
In the OCI Console, go toDeveloper Servicesand clickContainer Registry.
Select your assigned compartment from the list on the left.
ClickCreate Repository.
In theCreate Repositorydialog box, enter99248134-lab.user01/hello-pythonas theRepository Nameand selectPrivateas theAccessoption. You can also add a description for the repository if you want.
ClickSubmit. This will create a new private repository in the Container Registry that you can use to store your serverless function images.
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
Complete the following tasks in the provisioned OCI environment:
1. Set up the context for Fn CLI and deploy the python function to exam-app.
a. Set up the Fn CLI context in Cloud Shell
i. Set your region and your assigned compartment
ii. Set your registry [repo-name-prefix], which must
be: [region_key].ocir.io/[tenancy-name]/{username}
For example, if your tenancy is ocuocictrng19, user name is 99346163-
lab.user02 and region is US East Ashburn, your registry must
be iad.ocir.io/ocuocictrng19/99346163-lab.user02.
Your username is 99248134-lab.user01
Your tenancy is ocuocictrng16
b. Login to the registry using docker login, which will require you to generate and use
an Auth Token
c. Use wget https://objectstorage.us-ashburn1.oraclecloud.com/n/ocuocictrng5/b/PBT_Storage/o/ExamFunction-main.zipto
upload the zip archive containing the Python function files to Cloud Shell.
d. Extract the files by using the unzip utility and navigate to the python sub-folder
e. Deploy the python function to the exam-app using an fn command
f. Invoke the function at least 2 times using an fn command
To complete the task of setting up the context for Fn CLI and deploying the python function to exam-app, you can follow these steps:
a. Set up the Fn CLI context in Cloud Shell - In the OCI Console, go to Developer Services and click Functions. - Select your assigned compartment from the list on the left. - Click Getting Started on the top right corner. - Copy and paste the commands from the Set Up Fn CLI Context section into the Cloud Shell window. This will create a new context for your region and compartment. - Set your registry [repo-name-prefix] by entering the following command in the Cloud Shell window:
`fn update context registry [region_key].ocir.io/[tenancy-name]/{username}`
where [region_key] is the region key for your region (for example, iad for US East Ashburn), [tenancy-name] is the name of your tenancy (for example, ocuocictrng16), and {username} is your username (for example, 99248134-lab.user01).
For example, if your region is US East Ashburn, your tenancy is ocuocictrng16, and your username is 99248134-lab.user01, your command would be:
`fn update context registry iad.ocir.io/ocuocictrng16/99248134-lab.user01`
b. Login to the registry using docker login, which will require you to generate and use an Auth Token - To generate an Auth Token, follow these steps: - In the OCI Console, open the Profile menu on the top right corner and click User Settings. - Click Auth Tokens on the left panel and then click Generate Token. - Enter a description for the token and click Generate Token. - Copy and save the token value. You will not be able to see it again later. - To login to the registry using docker login, follow these steps: - In the Cloud Shell window, enter the following command:
`docker login [region_key].ocir.io`
where [region_key] is the region key for your region (for example, iad for US East Ashburn).
For example, if your region is US East Ashburn, your command would be:
`docker login iad.ocir.io`
- Enter your username in the format `[tenancy-name]/oracleidentitycloudservice/{username}` (for example, ocuocictrng16/oracleidentitycloudservice/99248134-lab.user01) and press Enter.
- Enter your Auth Token as the password and press Enter. You should see a message saying 'Login Succeeded'.
c. Use wget https://objectstorage.us-ashburn1.oraclecloud.com/n/ocuocictrng5/b/PBT_Storage/o/ExamFunction-main.zipto upload the zip archive containing the Python function files to Cloud Shell. - In the Cloud Shell window, enter the following command:
`wget https://objectstorage.us-ashburn1.oraclecloud.com/n/ocuocictrng5/b/PBT_Storage/o/ExamFunction-main.zip`
This will download the zip archive to your current directory.
d. Extract the files by using the unzip utility and navigate to the python sub-folder - In the Cloud Shell window, enter the following commands:
`unzip ExamFunction-main.zip`
`cd ExamFunction-main/python`
This will extract the files from the zip archive and change your current directory to the python sub-folder.
e. Deploy the python function to the exam-app using an fn command - In the Cloud Shell window, enter the following command:
`fn deploy --app exam-app --local`
This will deploy the python function to the exam-app application using your local Docker image.
f. Invoke the function at least 2 times using an fn command - In the Cloud Shell window, enter the following command:
`fn invoke exam-app hellopython`
This will invoke the function and print its output.
- You can invoke the function again by repeating the same command or pressing Up Arrow and Enter keys. You should see different outputs each time you invoke the function.
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
As a part of a migration exercise for an existing on-premises application to Oracle Cloud
Infrastructure (OCI), you are required to transfer a 7 TB file to OCI Object Storage. You have
decided to upload it using the multipart upload functionality of Object Storage.
Which two statements are true? (Choose two.)
You designed and deployed your Autonomous Data Warehouse (ADW) so that it is
accessible from your on-premise data center and servers running on both private and public
networks in Oracle Cloud Infrastructure (OCI).
As you are testing the connectivity to your ADW database from the different access paths, you
notice that the server running on the private network is unable to connect to ADW.
Which two steps do you need to take to enable connectivity from the server on the private network to
ADW? (Choose two.)
Option C is incorrect because adding an entry in the access control list of ADW for IP address 129.146.160.11 will not enable connectivity from the server on the private network to ADW. This is because this IP address belongs to the NAT gateway, not to the server on the private network.
Denny
1 months agoLaine
2 months agoCruz
2 months agoMonroe
2 months agoRuthann
2 months agoMitsue
2 months agoAnika
2 months agoCarmela
3 months agoKerry
4 months ago