To run the example, create a Code Engine project from the Console or Code Engine CLI, and run the following commands from this directory:
export CE_API_KEY=<Your IBM Cloud API key>export CE_PROJECT_REGION=<The region (e.g. 'us-south') of your Code Engine project>export CE_DOMAIN_MAPPING_NAME=<The name of your domain>export CE_TLS_CERT_FILE_PATH=<The path to your TLS certificate file>export CE_TLS_KEY_FILE_PATH=<The path to your TLS key file>go run example_v2.go
authenticator := &core.IamAuthenticator{
ApiKey: os.Getenv("CE_API_KEY"),
ClientId: "bx",
ClientSecret: "bx",
URL: "https://iam.cloud.ibm.com",
}codeEngineServiceOptions := &codeenginev2.CodeEngineV2Options{
Authenticator: authenticator,
URL: "https://api." + os.Getenv("CE_PROJECT_REGION") + ".codeengine.cloud.ibm.com/v2",
}
codeEngineService, err := codeenginev2.NewCodeEngineV2UsingExternalConfig(codeEngineServiceOptions)projectName := "my-project"
createdProject, _, err := codeEngineService.CreateProject(&codeenginev2.CreateProjectOptions{
Name: &projectName,
})createAppOpts := codeEngineService.NewCreateAppOptions(
*createdProject.ID,
"icr.io/codeengine/helloworld",
"my-app",
)
createdApp, _, err := codeEngineService.CreateApp(createAppOpts)createTLSSecretOpts := codeEngineService.NewCreateSecretOptions(
*createdProject.ID,
"tls",
"my-tls-secret",
)
tlsCert, _ := os.ReadFile(os.Getenv("CE_TLS_CERT_FILE_PATH"))
tlsKey, _ := os.ReadFile(os.Getenv("CE_TLS_KEY_FILE_PATH"))
createTLSSecretOpts.Data = &codeenginev2.SecretDataTLSSecretData{
TlsCert: core.StringPtr(string(tlsCert)),
TlsKey: core.StringPtr(string(tlsKey)),
}
createdTLSSecret, _, err := codeEngineService.CreateSecret(createTLSSecretOpts)domainMappingName := os.Getenv("CE_DOMAIN_MAPPING_NAME")
appComponentRef := &codeenginev2.ComponentRef{
Name: createdApp.Name,
ResourceType: core.StringPtr("app_v2"),
}
createDomainMappingOpts := codeEngineService.NewCreateDomainMappingOptions(
*createdProject.ID,
appComponentRef,
domainMappingName,
*createdTLSSecret.Name,
)
createdDomainMapping, _, err := codeEngineService.CreateDomainMapping(createDomainMappingOpts)createFunctionOpts := codeEngineService.NewCreateFunctionOptions(
*createdProject.ID,
"data:text/plain;base64,YXN5bmMgZnVuY3Rpb24gbWFpbihwYXJhbXMpIHsKICByZXR1cm4gewogICAgICBzdGF0dXNDb2RlOiAyMDAsCiAgICAgIGhlYWRlcnM6IHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyB9LAogICAgICBib2R5OiBwYXJhbXMgfTsKfQptb2R1bGUuZXhwb3J0cy5tYWluID0gbWFpbjs=",
"my-function",
"nodejs-18",
)
createdFunction, _, err := codeEngineService.CreateFunction(createFunctionOpts)