cpg-cost-control | A Cloud Function to handle GCP billing budget notifications | GCP library
kandi X-RAY | cpg-cost-control Summary
kandi X-RAY | cpg-cost-control Summary
A Cloud Function to handle GCP billing budget notifications.
Support
Quality
Security
License
Reuse
Top functions reviewed by kandi - BETA
Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of cpg-cost-control
cpg-cost-control Key Features
cpg-cost-control Examples and Code Snippets
Community Discussions
Trending Discussions on GCP
QUESTION
I have a pyspark job available on GCP Dataproc to be triggered on airflow as shown below:
...ANSWER
Answered 2022-Mar-28 at 08:18You have to pass a Sequence[str]
. If you check DataprocSubmitJobOperator you will see that the params job
implements a class google.cloud.dataproc_v1.types.Job.
QUESTION
What is the equivalent of header=0
in pandas
, which recognises the first line as a heading in gspread
?
pandas import statement (correct)
...ANSWER
Answered 2022-Mar-16 at 08:12Looking at the API documentation, you probably want to use:
QUESTION
I'm trying to grab the latest secret version. Is there a way to do that without specifying the version number? Such as using the keyword "latest". I'm trying to avoid having to iterate through all the secret versions with a for loop as GCP documentation shows:
...ANSWER
Answered 2021-Sep-12 at 18:54import com.google.cloud.secretmanager.v1.AccessSecretVersionResponse;
import com.google.cloud.secretmanager.v1.SecretManagerServiceClient;
import com.google.cloud.secretmanager.v1.SecretVersionName;
import java.io.IOException;
public class AccessSecretVersion {
public static void accessSecretVersion() throws IOException {
// TODO(developer): Replace these variables before running the sample.
String projectId = "your-project-id";
String secretId = "your-secret-id";
String versionId = "latest"; //<-- specify version
accessSecretVersion(projectId, secretId, versionId);
}
// Access the payload for the given secret version if one exists. The version
// can be a version number as a string (e.g. "5") or an alias (e.g. "latest").
public static void accessSecretVersion(String projectId, String secretId, String versionId)
throws IOException {
// Initialize client that will be used to send requests. This client only needs to be created
// once, and can be reused for multiple requests. After completing all of your requests, call
// the "close" method on the client to safely clean up any remaining background resources.
try (SecretManagerServiceClient client = SecretManagerServiceClient.create()) {
SecretVersionName secretVersionName = SecretVersionName.of(projectId, secretId, versionId);
// Access the secret version.
AccessSecretVersionResponse response = client.accessSecretVersion(secretVersionName);
// Print the secret payload.
//
// WARNING: Do not print the secret in a production environment - this
// snippet is showing how to access the secret material.
String payload = response.getPayload().getData().toStringUtf8();
System.out.printf("Plaintext: %s\n", payload);
}
}
}
QUESTION
I'm working on a Terraform project that will set up all the GCP resources needed for a large project spanning multiple GitHub repos. My goal is to be able to recreate the cloud infrastructure from scratch completely with Terraform.
The issue I'm running into is in order to setup build triggers with Terraform within GCP, the GitHub repo that is setting off the trigger first needs to be connected. Currently, I've only been able to do that manually via the Google Cloud Build dashboard. I'm not sure if this is possible via Terraform or with a script but I'm looking for any solution I can automate this with. Once the projects are connected updating everything with Terraform is working fine.
TLDR; How can I programmatically connect a GitHub project with a GCP project instead of using the dashboard?
...ANSWER
Answered 2022-Feb-12 at 16:16Currently there is no way to programmatically connect a GitHub repo to a Google Cloud Project. This must be done manually via Google Cloud.
My workaround is to manually connect an "admin" project, build containers and save them to that project's artifact registry, and then deploy the containers from the registry in the programmatically generated project.
QUESTION
I'm unable to create a Cloud Function in my GCP project using GUI, but have admin roles for GCF, SA and IAM.
Here is the error message:
Missing necessary permission iam.serviceAccounts.actAs for cloud-client-api-gae on the service account serviceaccountname@DOMAIN.iam.gserviceaccount.com. Grant the role 'roles/iam.serviceAccountUser' to cloud-client-api-gae on the service account serviceaccountname@DOMAIN.iam.gserviceaccount.com.
cloud-client-api-gae
is not an SA nor User on my IAM list. It must be a creature living underneath Graphical User Interfrace.
I have Enabled API for GCF, AppEngine and I have Service Account Admin
role.
I had literally 0 search results when googling for cloud-client-api-gae
.
ANSWER
Answered 2022-Jan-18 at 13:53I contacted GCP support and it seems I was missing a single permission for my user:
Service Account User
- that's it.
PS: Person from support didn't know what this thing called "cloud-client-api-gae" is.
QUESTION
I have a TypeScript project that has been deployed several times without any problems to Google App Engine, Standard environment, running Node 10. However, when I try to update the App Engine project to either Node 12 or 14 (by editing the engines.node
value in package.json
and the runtime
value in app.yaml
), the deploy fails, printing the following to the console:
ANSWER
Answered 2022-Jan-16 at 14:32I encountered the exact same problem and just put typescript in dependencies, not devDependencies.
It worked after that, but cannot assure that it is due to this change (since I have no proof of that).
QUESTION
I am following this article ,for submit a job to an existing Dataproc cluster via a Dataproc API
For the following line of code :
...ANSWER
Answered 2022-Jan-14 at 19:22The method com.google.api.gax.core.GoogleCredentialsProvider$Builder com.google.api.gax.core.GoogleCredentialsProvider$Builder.setUseJwtAccessWithScope(boolean)
was introduced in com.google.api:gax
in version 2.3.0.
Can you
run
mvn dependency:tree
and confirm that your version ofcom.google.api:gax
is above version 2.3.0?upgrade all Google libraries to the latest version?
Here is a similar issue found on the internet.
QUESTION
I'm currently building PoC Apache Beam pipeline in GCP Dataflow. In this case, I want to create streaming pipeline with main input from PubSub and side input from BigQuery and store processed data back to BigQuery.
Side pipeline code
...ANSWER
Answered 2022-Jan-12 at 13:12Here you have a working example:
QUESTION
echo Give yearmonth "yyyyMM"
setlocal enabledelayedexpansion
SET /p yearmonth=
SET ClientName[0]=abc
SET ClientName[1]=def
SET i = 0
:myLoop
if defined ClientName[%i%] (
call bq query --use_legacy_sql=false "CREATE EXTERNAL TABLE `test.!ClientName[%%i]!.%yearmonth%` OPTIONS (format = 'CSV',skip_leading_rows = 1 uris = ['gs://test/!ClientName[%%i]!/AWS/%yearmonth%/Metrics/data/*.csv'])"
set /a "i+=1"
GOTO :myLoop
)
...ANSWER
Answered 2022-Jan-09 at 11:04It is bad practice to
set
variables as standalone alphabetical characters likei
. One reason is exactly as you have experienced, you have confusedfor
metavariable%%i
with aset
variable%i%
.You are expanding in the loop, but have not
enabledelayedexpansion
so there are 2 ways, which we will get to in a second.set
ting variables should not have spaces before or after=
excluding the likes ofset /a
So, Method 1, without delayedexpansion
(note how the variables are used with double %%
in the loop with the call
command).
QUESTION
I'm struggling to correctly set Vertex AI pipeline which does the following:
- read data from API and store to GCS and as as input for batch prediction.
- get an existing model (Video classification on Vertex AI)
- create Batch prediction job with input from point 1.
As it will be seen, I don't have much experience with Vertex Pipelines/Kubeflow thus I'm asking for help/advice, hope it's just some beginner mistake. this is the gist of the code I'm using as pipeline
ANSWER
Answered 2021-Dec-21 at 14:35I'm glad you solved most of your main issues and found a workaround for model declaration.
For your input.output
observation on gcs_source_uris
, the reason behind it is because the way the function/class returns the value. If you dig inside the class/methods of google_cloud_pipeline_components
you will find that it implements a structure that will allow you to use .outputs
from the returned value of the function called.
If you go to the implementation of one of the components of the pipeline you will find that it returns an output array from convert_method_to_component
function. So, in order to have that implemented in your custom class/function your function should return a value which can be called as an attribute. Below is a basic implementation of it.
Community Discussions, Code Snippets contain sources that include Stack Exchange Network
Vulnerabilities
No vulnerabilities reported
Install cpg-cost-control
Create a GCP project named for billing administration, e.g. called billing-admin-290403 below.
Enable the Cloud Billing API for the project.
Create a Pub/Sub topic called budget-notifications.
Add a service account for running the Cloud Function and grant it Project Billing Manager and Browser roles at the organization level, to allow checking the current billing information and disabling billing for all projects.
Create a Slack app called gcp-cost-control with a chat:write scope bot token and install the app on your Slack workspace.
Invite the bot to the channel that you want to receive messages on: /invite @gcp-cost-control
Back in the billing-admin-290403 GCP project, store the bot user OAuth access token in the Secret Manager as a secret using the name slack-gcp-cost-control.
Grant the previously created service account access to the secret by granting the Secret Manager Secret Accessor role at the project level.
Deploy the Cloud Function, replacing $BILLING_ADMIN_PROJECT, $REGION, $SERVICE_ACCOUNT, and $SLACK_CHANNEL accordingly: cd gcp_cost_control gcloud config set project $BILLING_ADMIN_PROJECT gcloud functions deploy gcp_cost_control --runtime python37 \ --region=$REGION \ --trigger-topic budget-notifications \ --service-account $SERVICE_ACCOUNT \ --set-env-vars SLACK_CHANNEL=$SLACK_CHANNEL
Support
Reuse Trending Solutions
Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items
Find more librariesStay Updated
Subscribe to our newsletter for trending solutions and developer bootcamps
Share this Page