A custom function for calling gcloud SDK from Rmarkdown
via OS command system2()
Create function for calling gcloud SDK from
Rmarkdow:
library(withr)
library(glue)
sh <- function(cmd, args = c(), intern = FALSE) {
with_path(path.expand("~/google-cloud-sdk/bin/"), {
if (is.null(args)) {
cmd <- glue(cmd)
s <- strsplit(cmd, " ")[[1]]
cmd <- s[1]
args <- s[2:length(s)]
}
ret <- system2(cmd, args, stdout = TRUE, stderr = TRUE)
if ("errmsg" %in% attributes(attributes(ret))$names) cat(attr(ret, "errmsg"), "\n")
if (intern) return(ret) else cat(paste(ret, collapse = "\n"))
})}Authenticate with Google Cloud and Vertex AI via
googleAuthR package and
googleCloudVertexAIR:
library(googleAuthR)
library(googleCloudVertexAIR)
options(googleAuthR.scopes.selected = "https://www.googleapis.com/auth/cloud-platform")
gar_auth_service(json_file = Sys.getenv("GAR_SERVICE_JSON"))Set gcloud project:
sh("gcloud config set project {gcva_project_get()}")## Updated property [core/project].
List gcloud configuration to verify:
sh("gcloud config list")Special thanks to [Fabian Hirschmann](https://github.com/fhirschmann, the original author of this source code.