I'm able to create an image from sources and create and run a Cloud Run job through the Google CLI.

```
gcloud builds submit --pack image=gcr.io/<my-project-id>/logger-job
gcloud beta run jobs create helloworld --image gcr.io/<my-project-id>/logger-job --region europe-west9
gcloud beta run jobs execute helloworld --region=europe-west9

```

From the CLI, I can also upload files to a bucket by running be python script:

```
import sys
from google.cloud import storage

def get_bucket(bucket_name):
    storage_client = storage.Client.from_service_account_json(
        'my_credentials_file.json')

    # Make an authenticated API request
    buckets = list(storage_client.list_buckets())

    found = False
    for bucket in buckets:
        if bucket_name in bucket.name:
            found = True
            break

    if not found:
        print("Error: bucket not found")
        sys.exit(1)

    print(bucket)

    return bucket

def upload_file(bucket, fname):
    destination_blob_name = fname
    source_file_name = fname

    blob = bucket.blob(destination_blob_name)

    blob.upload_from_filename(source_file_name)

    print(
        f"File {source_file_name} uploaded to {destination_blob_name}."
    )

if __name__ == "__main__":
    bucket = get_bucket('MyBucket')
    upload_file(bucket, 'testfile')

```

Before I can even figure out how the authentication towards the bucket works when running this script through a job, I'm getting errors on target

```
ModuleNotFoundError: No module named 'google'

```

Which kind of makes sense, but I don't know how I would include the google.cloud module when running the script on target job? Or should I access the bucket in another way?