The GoogleCloudReady Facilitator program will provide you an opportunity to kickstart your career in cloud and get hands on practice on Google Cloud - the tool that powers apps like Google Search, Gmail and YouTube.
- March 06, 2021
- 1 Comment
Challenge Lab
Qwiklabs [GSP342]
Replace the below content in the file:
Ctrl+x --> Y--> Enter
commands for task2 & task3:
Another Method in video if you get error:
Task 4: Create and configure a new Kubernetes Engine private cluster
Task 5: Deploy an application to a private Kubernetes Engine cluster.
- March 06, 2021
- 2 Comments
Challenge Lab
Qwiklabs [GSP787]
Query 2: Worst Affected Areas
Build a query for answering "How many states in the US had more than 100 deaths on Apr 10, 2020?" The query needs to list the output in the field count_of_states. Hint: Don't include NULL values.
      
    Query 3: Identifying Hotspots
Build a query that will answer "List all the states in the United States of America that had more than 1000 confirmed cases on Apr 10, 2020?" The query needs to return the State Name and the corresponding confirmed cases arranged in descending order. Name of the fields to return state and total_confirmed_cases.
    Query 4: Fatality Ratio
Build a query that will answer "What was the case-fatality ratio in Italy for the month of April 2020?" Case-fatality ratio here is defined as (total deaths / total confirmed cases) * 100. Write a query to return the ratio for the month of April 2020 and containing the following fields in the output: total_confirmed_cases, total_deaths, case_fatality_ratio.
      Query 5: Identifying specific day
Build a query that will answer: "On what day did the total number of deaths cross 10000 in Italy?" The query should return the date in the format yyyy-mm-dd.
    Query 6: Finding days with zero net new cases
The following query is written to identify the number of days in India between 21 Feb 2020 and 15 March 2020 when there were zero increases in the number of confirmed cases. However it is not executing properly.
    Query 7: Doubling rate
Using the previous query as a template, write a query to find out the dates on which the confirmed cases increased by more than 10% compared to the previous day (indicating doubling rate of ~ 7 days) in the US between the dates March 22, 2020 and April 20, 2020. The query needs to return the list of dates, the confirmed cases on that day, the confirmed cases the previous day, and the percentage increase in cases between the days. Use the following names for the returned fields: Date, Confirmed_Cases_On_Day, Confirmed_Cases_Previous_Day and Percentage_Increase_In_Cases.
    Query 8: Recovery rate
Build a query to list the recovery rates of countries arranged in descending order (limit to 10) upto the date May 10, 2020. Restrict the query to only those countries having more than 50K confirmed cases. The query needs to return the following fields: country, recovered_cases, confirmed_cases, recovery_rate.
    Query 9: CDGR - Cumulative Daily Growth Rate
The following query is trying to calculate the CDGR on May 10, 2020(Cumulative Daily Growth Rate) for France since the day the first case was reported. The first case was reported on Jan 24, 2020.
      Create a Datastudio report
Create a Datastudio report that plots the following for the United States
    - March 06, 2021
- 0 Comments
Challenge Lab
Qwiklabs [GSP324]
Now create a version. This will take a couple of minutes to deploy..
    Create your second AI Platform model: limited_model
    - March 06, 2021
- 2 Comments
  
Deploy and Manage Cloud Environments with Google Cloud: Challenge
    Lab
Deploy and Manage Cloud Environments with Google Cloud: Challenge Lab
Task 1: Create Production Environment
cd /work/dm
sed -i s/SET_REGION/us-east1/g prod-network.yaml
  gcloud deployment-manager deployments create prod-network
  --config=prod-network.yaml
gcloud config set compute/zone us-east1-b
gcloud container clusters create kraken-prod \
          --num-nodes 2 \
          --network kraken-prod-vpc \
          --subnetwork kraken-prod-subnet\
          --zone us-east1-b
gcloud container clusters get-credentials kraken-prod
cd /work/k8s
for F in $(ls *.yaml); do kubectl create -f $F; done
  
    Task 2: Configure the admin host
Create kraken-admin
gcloud config set compute/zone us-east1-b
  gcloud compute instances create kraken-admin
  --network-interface="subnet=kraken-mgmt-subnet"
  --network-interface="subnet=kraken-prod-subnet"
Create alert:
Open monitoring
Create an alert
  Configure the policy to email your email when jumphost is cpu utilization is
  above 50% for 1 min.
    
  Task 3: Verify the Spinnaker deployment
Use cloudshell and run
gcloud config set compute/zone us-east1-b
gcloud container clusters get-credentials spinnaker-tutorial
  DECK_POD=$(kubectl get pods --namespace default -l "cluster=spin-deck" -o
  jsonpath="{.items[0].metadata.name}")
  kubectl port-forward --namespace default $DECK_POD 8080:9000 >>
  /dev/null &
#Go to cloudshell webpreview and go to applications->sample
    
#Open pipelines and manually run the pipeline if it has not already running. Approve the deployment to production. Check the production frontend endpoint (use http, not the default https)
#Back in cloudshell run these commands to push a change
gcloud config set compute/zone us-east1-b
gcloud source repos clone sample-app
cd sample-app
touch a
git config --global user.email "$(gcloud config get-value account)"
git config --global user.name "Student"
git commit -a -m "change"
git tag v1.0.1
git push --tags
    - March 06, 2021
- 0 Comments
 
GSP304 | Build and Deploy a Docker Image to a Kubernetes Cluster f.txt
  
  
gsutil cp
gs://sureskills-ql/challenge-labs/ch04-kubernetes-app-deployment/echo-web.tar.gz
.
gsutil cp gs://$DEVSHELL_PROJECT_ID/echo-web.tar.gz .
tar -xvf echo-web.tar.gz
gcloud builds submit --tag gcr.io/$DEVSHELL_PROJECT_ID/echo-app:v1 .
  gcloud container clusters create echo-cluster --num-nodes 2 --zone
  us-central1-a --machine-type n1-standard-2
  kubectl create deployment echo-web
  --image=gcr.io/qwiklabs-resources/echo-app:v1
  kubectl expose deployment echo-web --type=LoadBalancer --port=80
  --target-port=8000
kubectl get svc
- March 06, 2021
- 0 Comments
  Integrate with Machine Learning APIs: Challenge Lab |
    
GSP329 
GSP329
  
  
 Task " 1 & 2 " 
export SANAME=challenge
gcloud iam service-accounts create $SANAME
  gcloud projects add-iam-policy-binding $DEVSHELL_PROJECT_ID
  --member=serviceAccount:$SANAME@$DEVSHELL_PROJECT_ID.iam.gserviceaccount.com
  --role=roles/bigquery.admin
  gcloud projects add-iam-policy-binding $DEVSHELL_PROJECT_ID
  --member=serviceAccount:$SANAME@$DEVSHELL_PROJECT_ID.iam.gserviceaccount.com
  --role=roles/storage.admin
  gcloud iam service-accounts keys create sa-key.json --iam-account
  $SANAME@$DEVSHELL_PROJECT_ID.iam.gserviceaccount.com
export GOOGLE_APPLICATION_CREDENTIALS=${PWD}/sa-key.json
gsutil cp gs://$DEVSHELL_PROJECT_ID/analyze-images.py .
############### Task 3 ###########################################
# DONT CHANGE ANYTHING
# Dataset: image_classification_dataset
# Table name: image_text_detail
import os
import sys
# Import Google Cloud Library modules
  from google.cloud import storage, bigquery, language, vision, translate_v2
if ('GOOGLE_APPLICATION_CREDENTIALS' in os.environ):
      if (not
  os.path.exists(os.environ['GOOGLE_APPLICATION_CREDENTIALS'])):
          print ("The GOOGLE_APPLICATION_CREDENTIALS file
  does not exist.\n")
        exit()
else:
      print ("The GOOGLE_APPLICATION_CREDENTIALS environment variable
  is not defined.\n")
    exit()
if len(sys.argv)<3:
      print('You must provide parameters for the Google Cloud project
  ID and Storage bucket')
      print ('python3 '+sys.argv[0]+ '[PROJECT_NAME] [BUCKET_NAME]')
    exit()
project_name = sys.argv[1]
bucket_name = sys.argv[2]
# Set up our GCS, BigQuery, and Natural Language clients
storage_client = storage.Client()
bq_client = bigquery.Client(project=project_name)
nl_client = language.LanguageServiceClient()
# Set up client objects for the vision and translate_v2 API Libraries
vision_client = vision.ImageAnnotatorClient()
translate_client = translate_v2.Client()
# Setup the BigQuery dataset and table objects
dataset_ref = bq_client.dataset('image_classification_dataset')
dataset = bigquery.Dataset(dataset_ref)
table_ref = dataset.table('image_text_detail')
table = bq_client.get_table(table_ref)
  # Create an array to store results data to be inserted into the BigQuery table
rows_for_bq = []
# Get a list of the files in the Cloud Storage Bucket
files = storage_client.bucket(bucket_name).list_blobs()
bucket = storage_client.bucket(bucket_name)
print('Processing image files from GCS. This will take a few minutes..')
  # Process files from Cloud Storage and save the result to send to BigQuery
for file in files:    
      if file.name.endswith('jpg') or  file.name.endswith('png'):
        file_content = file.download_as_string()
        
          # TBD: Create a Vision API image object called
  image_object 
          # Ref:
  https://googleapis.dev/python/vision/latest/gapic/v1/types.html#google.cloud.vision_v1.types.Image
        from google.cloud import vision_v1
        import io
        client = vision.ImageAnnotatorClient()
          # TBD: Detect text in the image and save the
  response data into an object called response
          # Ref:
  https://googleapis.dev/python/vision/latest/gapic/v1/api.html#google.cloud.vision_v1.ImageAnnotatorClient.document_text_detection
          image =
  vision_v1.types.Image(content=file_content)
        response = client.text_detection(image=image)
    
          # Save the text content found by the vision API
  into a variable called text_data
          text_data =
  response.text_annotations[0].description
          # Save the text detection response data in
  <filename>.txt to cloud storage
        file_name = file.name.split('.')[0] + '.txt'
        blob = bucket.blob(file_name)
          # Upload the contents of the text_data string
  variable to the Cloud Storage file 
          blob.upload_from_string(text_data,
  content_type='text/plain')
          # Extract the description and locale data from the
  response file
        # into variables called desc and locale
          # using response object properties e.g.
  response.text_annotations[0].description
          desc = response.text_annotations[0].description
        locale = response.text_annotations[0].locale
        
          # if the locale is English (en) save the
  description as the translated_txt
        if locale == 'en':
            translated_text = desc
        else:
              # TBD: For non EN locales pass the
  description data to the translation API
              # ref:
  https://googleapis.dev/python/translation/latest/client.html#google.cloud.translate_v2.client.Client.translate
              # Set the target_language locale to
  'en')
              from google.cloud import
  translate_v2 as translate
            
            client = translate.Client()
              translation =
  translate_client.translate(text_data, target_language='en')
              translated_text =
  translation['translatedText']
        print(translated_text)
        
          # if there is response data save the original text
  read from the image, 
        # the locale, translated text, and filename
        if len(response.text_annotations) > 0:
              rows_for_bq.append((desc, locale,
  translated_text, file.name))
print('Writing Vision API image data to BigQuery...')
# Write original text, locale and translated text to BQ
  # TBD: When the script is working uncomment the next line to upload results to
  BigQuery
errors = bq_client.insert_rows(table, rows_for_bq)
assert errors == []
  #############################################################################################################################3
  -------------->>>>>>>>>>>run this in cloud
  shell:
python3 analyze-images.py $DEVSHELL_PROJECT_ID $DEVSHELL_PROJECT_ID
  ################################################################################################################################3
  ------------------>>>>>>>>>>>>>>>>>>>>Go
  to BigQuery, run:
  SELECT locale,COUNT(locale) as lcount FROM
  image_classification_dataset.image_text_detail GROUP BY locale ORDER BY lcount
  DESC
  
- March 06, 2021
- 0 Comments
Build-a-Website-on-Google-Cloud-Challenge-Lab
########################################################################################
Task 1: Download the monolith code and build your container
git clone https://github.com/googlecodelabs/monolith-to-microservices.git
cd ~/monolith-to-microservices
./setup.sh
cd ~/monolith-to-microservices/monolith
npm start
gcloud services enable cloudbuild.googleapis.com
  gcloud builds submit --tag gcr.io/${GOOGLE_CLOUD_PROJECT}/fancytest:1.0.0 .
##########################################################################################
Task 2: Create a kubernetes cluster and deploy the application
gcloud config set compute/zone us-central1-a
gcloud services enable container.googleapis.com
gcloud container clusters create fancy-cluster --num-nodes 3
  kubectl create deployment fancytest
  --image=gcr.io/${GOOGLE_CLOUD_PROJECT}/fancytest:1.0.0
  kubectl expose deployment fancytest --type=LoadBalancer --port 80
  --target-port 8080
###############################################################################################
Task 3: Create a containerized version of your Microservices
cd ~/monolith-to-microservices/microservices/src/orders
gcloud builds submit --tag gcr.io/${GOOGLE_CLOUD_PROJECT}/orders:1.0.0 .
cd ~/monolith-to-microservices/microservices/src/products
  gcloud builds submit --tag gcr.io/${GOOGLE_CLOUD_PROJECT}/products:1.0.0 .
#################################################################################################
Task 4: Deploy the new microservices
  kubectl create deployment orders
  --image=gcr.io/${GOOGLE_CLOUD_PROJECT}/orders:1.0.0
  kubectl expose deployment orders --type=LoadBalancer --port 80 --target-port
  8081
  kubectl create deployment products
  --image=gcr.io/${GOOGLE_CLOUD_PROJECT}/products:1.0.0
  kubectl expose deployment products --type=LoadBalancer --port 80 --target-port
  8082
###################################################################################################
Task 5: Configure the Frontend microservice
cd ~/monolith-to-microservices/react-app
  
nano .env
###################################################################################################
Task 6: Create a containerized version of the Frontend microservice
cd ~/monolith-to-microservices/microservices/src/frontend
  gcloud builds submit --tag gcr.io/${GOOGLE_CLOUD_PROJECT}/frontend:1.0.0 .
  
#####################################################################################################
Task 7: Deploy the Frontend microservice
  kubectl create deployment frontend
  --image=gcr.io/${GOOGLE_CLOUD_PROJECT}/frontend:1.0.0
  kubectl expose deployment frontend --type=LoadBalancer --port 80 --target-port
  8080
  


