LogoLogo
  • KPN THINGS USER GUIDE
    • Introduction
    • Getting started
      • Registration and setup
      • Device simulator app
      • Connect devices
        • SIM cards
        • Supported devices and KPN Devices
        • SODAQ R412M
        • Smartrak
        • Marvin development board
        • LoPy5
        • Arduino MKR WAN 1300/1310
        • Arduin MKR NB 1500
    • All videos
    • Tutorials
      • Configure a flow
      • Connect a HTTPs destination
      • Create a simple IoT web applicationPage
      • Send instruction to LoRa DevicePage
      • Send your data to Azure SQL
      • Technical overview
        • Management data model
        • Uplink communication
        • Downlink communication
        • Location data
      • Accounts and projects
        • Customer accounts and users
        • Projects
        • Customer management
        • Cost overview and contract
    • Frequently asked
      • Multi Factor Authentication
  • GENERAL FUNCTIONS
    • Quick reference videos
    • APIs
  • THE PORTAL EXPLAINED
    • Things Manager
      • Devices
        • Bulk operations
      • Data
        • Device data graph
      • Connectivity
        • LoRa connectivity configuration
      • Bulk reports
    • Things Creator
    • Support
      • News
      • Release notes
      • Real-time status
      • Service reports
      • Documents
      • Support tickets
      • Invoices
      • Contact info
    • Shop
  • BUILDING BLOCKS
    • Devices
      • Sensors
        • KPN Conditionsensor CO2 II
        • KPN Conditionsensor CO2 III
        • KPN Conditionsensor CO2 III motionPage 1
        • KPN FillTag I
        • KPN FillTag II
        • 1M2M ED1608
        • Elsys ERS
        • Device Simulator (Mobile Phone app)
        • Generic Device (Internet connected)
        • Generic LoRa device (preset connectivity)
        • Generic LoRa device (programmable)
        • Generic M2M device
        • Generic M2M device (with Internet connection)
      • Trackers
        • KPN Global Tracker Autonomous
        • KPN Global Tracker Wired
        • KPN LocationTag I
        • KPN LocationTag II
        • KPN LocationTag II v2
        • KPN LocationTag II v2 Expert Mode
        • KPN LocationTag II v3
        • KPN LocationTag III (with GPS)
        • KPN LocationTag III (without GPS)
        • KPN LocationTag III v2
        • KPN LocationTag III v2 Buffer
        • KPN LocationTag III v3
        • KPN LocationTag III v4
        • KPN LocationTag V
        • KPN LocationTag VI
        • KPN LocationTag WS
        • Streamline LoRa
        • Streamline M2M
        • Viloc
      • Routers
      • Gateways
        • KPN FSK Basestation
      • Device SDK
    • Connectivity
      • Connecting LoRa devices
        • LoRa connectivity configuration
      • Connecting M2M devices
      • Connecting Internet devices
      • Connecting MQTT Devices
    • Data Processing
      • ThingsML and SenML
        • ThingsML
        • SenML
          • Understanding and Interpreting SenML Data
          • Changes in KPN SenML
      • Device Twin
      • Decoders and encoders
        • Common measurements list
        • Decoder migrations
        • DIY Decoder
          • DIY decoder scripts
      • Merger
      • Device data
      • Devices
    • Destinations
      • HTTPS destination
      • MQTT broker
      • Cumulocity IoT Platform
      • Azure Event Hubs
      • Azure IoT Hub
      • Test Endpoint
      • ThingsBoard
      • Datacake
      • AWS Lambda
      • Google Cloud Run functions
  • IOT LINE UP
    • Freemium
      • Test SIM cards
    • Explorer
    • Modular
    • Tailored
    • Terms and Conditions
Powered by GitBook

© 2024 KPN - All rights reserved.

On this page
  • Name
  • Connection details
  • Google Cloud: Create an integration
  • KPN Things: Continue with Configure a Google Cloud Run functions destination

Was this helpful?

Export as PDF
  1. BUILDING BLOCKS
  2. Destinations

Google Cloud Run functions

PreviousAWS LambdaNextFreemium

Last updated 3 months ago

Was this helpful?

KPN Things: Configure a Google Cloud Run functions destination

Name

Give your Google Cloud Run functions Destination a name and optionally a description.

  • Destination name (required) - the administrative name of your Destination.

    Technical name: name

    Example value: Tenant Z

  • Description - an administrative description of your Destination.

    Technical name: description

    Example value: Send my data to Google Cloud for further data processing

Connection details

First you need to create a Google Cloud account on, or use an existing Google Cloud account. Then follow the instructions below to create an integration in your Google Cloud account. Keep your KPN Things Destination configuration screen open, as you will need to copy information from and to it later.


Google Cloud: Create an integration

This is an example to integrate directly with a Google Cloud Run functions.

There are other alternatives.

Log in to your Google Cloud account and go to Console. Then select the project of your choice and from there select the Cloud Run Product.

From the Cloud Run menu select the option Write a Function

The following form is presented.

1. Basic information

In the first step, enter the following information.

  • Service name Enter a name that describes the purpose of your function.

  • Runtime Choose the language to use to write your function. For this example Python 3.10 is chosen.

  • Authentication

    Choose the authentication type. For this example, Allow unauthenticated invocations.

All other setting can be left to default.

Click Create .

2. Code

Select the Source tab to define your code. The screenshot below contains example code.

Click Save and Redeploy

KPN Things: Continue with Configure a Google Cloud Run functions destination

In this step, you need to copy/paste information from Google Cloud to Things. So pay attention, please.

Go back to the KPN Things Destination configuration screen and fill the remain fields.

  • HTTP endpoint URL Copy the Function URL from Google Cloud into the KPN Things Destination configuration.

  • Shared secret With the shared secret you have the possibility to verify that Things has sent the data and not someone else, because with the shared secret a unique Things Message Token is calculated for each message. Within the Google Cloud Run function you can repeat the calculation and check whether the calculated Things-Message-Token is the same as the received Things-Message-Token. Below you can find an example of a calculation and a check in Python.

import functions_framework
import hashlib
import json

@functions_framework.http
def hello_http(request):
    # This is an example.
    # Make sure you store the sharedSecret in a safe place,
    
    requestBody = request.get_json(silent=True)
    sharedSecret='[Fill in your shared secret]'
    thingsMessageToken = request.headers.get('Things-Message-Token')
    input = json.dumps(requestBody) + sharedSecret
 
    def calculate_sha256(data):
    # Convert data to bytes if it’s not already
        if isinstance(data, str):
            data = data.encode()
        # Calculate SHA-256 hash
        sha256_hash = hashlib.sha256(data).hexdigest()
        return sha256_hash

    if thingsMessageToken == calculate_sha256(input):
    # Define further action
        return {
            'statusCode': 201,
        }
    else:
        return {
            'statusCode': 401,

        }

```

Finally, go back to the KPN Things Destination configuration screen and press the Add Google Cloud Run functions destination button to save the new destination in KPN Things.

Now you are finished and good to go!

https://cloud.google.com
Creating a Google Cloud Run function