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.
Currently there are no comments in this discussion, be the first to comment!