Google Cloud Platform (GCP) is a fast-growing array of cloud services, accompanied by identity and access management (IAM), quotas and pricing, and deployment and lifecycle management utilities. Google Cloud Functions under GCP Compute and Firebase Cloud Functions under Firebase are GCP’s main approaches to serverless computing. However, GCP services are easily accessible on any computing platform, including serverless functions deployed on AWS et al.
GCP entities are grouped by Organizations and Projects. In order to access GCP entities within your non-GCP Sigma app, you need to provide service account credentials for the corresponding GCP project. The credentials are typically downloaded in the form of a JSON file when you create a new service account for your project.
The JSON file typically takes the format:
{
"type": "service_account",
"project_id": "<GCP project ID>",
"private_key_id": "<alphanumeric ID of the private key>",
"private_key": "-----BEGIN PRIVATE KEY-----\n<private key content>\n-----END PRIVATE KEY-----\n",
"client_email": "<project ID>@<project ID>.iam.gserviceaccount.com",
"client_id": "<numeric client ID>",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://accounts.google.com/o/oauth2/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/<encoded client_email>"
}
You can follow one of the approaches described under the Authorization page in order to provide the service account credentials (key) to Sigma.
After authorization, you would be able to access the list of natively supported GCP services, under the GCP Resources child tab of the Resources pane.
If your project has GCP set as the Base Platform (i.e. the project is configured to be deployed on GCP), you can use certain GCP services (Cloud Storage, Cloud Pub/Sub etc.) as event sources to trigger your Cloud Functions.
Regardless of the platform, you can perform operations against GCP services and entities from within any project, even a non-GCP (e.g. AWS) one.
In GCP-based projects, you can define new resources (topics, buckets etc.) under supported GCP services. These will be bound to your Sigma project, and managed (created, updated and deleted) along with the project’s overall deployment, inside the designated GCP project.
Alternatively, in all (GCP as well as non-GCP) projects, you can integrate with already existing GCP entities that are already available in your GCP project. These will not be added to the deployment configurations of your Sigma project, so would need to be managed externally.