1. Genel Bakış
Bu laboratuvarda, Cloud Run işiyle bir AlloyDB veritabanı oluşturacaksınız. Özel IP kullanarak Cloud Run işi ile AlloyDB veritabanı arasında bağlantı kurmak için özel hizmet erişimi ve sunucusuz VPC erişimi'ni yapılandıracaksınız.
Öğrenecekleriniz
Bu laboratuvarda şunları yapmayı öğreneceksiniz:
- AlloyDB kümesini ve örneğini ayarlama
- AlloyDB veritabanı oluşturmak için Cloud Run işini dağıtma
2. Kurulum ve Gereksinimler
Cloud projesi kurulumu
- Google Cloud Console'da oturum açın ve yeni bir proje oluşturun veya mevcut bir projeyi yeniden kullanın. Gmail veya Google Workspace hesabınız yoksa hesap oluşturmanız gerekir.



- Proje adı, bu projenin katılımcıları için görünen addır. Google API'leri tarafından kullanılmayan bir karakter dizesidir. Dilediğiniz zaman bunu güncelleyebilirsiniz.
- Proje kimliği, tüm Google Cloud projelerinde benzersiz olmalı ve sabittir (ayarlandıktan sonra değiştirilemez). Cloud Console, benzersiz bir dizeyi otomatik olarak oluşturur. Genellikle bu dizenin ne olduğuyla ilgilenmezsiniz. Çoğu codelab'de proje kimliğine (genellikle
PROJECT_IDolarak tanımlanır) başvurmanız gerekir. Oluşturulan kimliği beğenmezseniz başka bir rastgele kimlik oluşturabilirsiniz. Dilerseniz kendi adınızı deneyerek kullanılabilir olup olmadığını kontrol edebilirsiniz. Bu adımdan sonra değiştirilemez ve proje süresince geçerli kalır. - Bazı API'lerin kullandığı üçüncü bir değer olan Proje Numarası da vardır. Bu üç değer hakkında daha fazla bilgiyi belgelerde bulabilirsiniz.
- Ardından, Cloud kaynaklarını/API'lerini kullanmak için Cloud Console'da faturalandırmayı etkinleştirmeniz gerekir. Bu codelab'i tamamlamak neredeyse hiç maliyetli değildir. Bu eğitimin ötesinde faturalandırma ücreti alınmaması için kaynakları kapatmak üzere oluşturduğunuz kaynakları veya projenin tamamını silebilirsiniz. Google Cloud'un yeni kullanıcıları 300 ABD doları değerinde ücretsiz deneme programından yararlanabilir.
Ortam Kurulumu
Arama çubuğunun sağındaki simgeyi tıklayarak Cloud Shell'i etkinleştirin.

Hizmet API'lerini etkinleştirmek için aşağıdaki komutu kopyalayıp terminale yapıştırın ve Enter tuşuna basın:
gcloud services enable \
alloydb.googleapis.com \
artifactregistry.googleapis.com \
cloudbuild.googleapis.com \
run.googleapis.com \
vpcaccess.googleapis.com \
compute.googleapis.com \
servicenetworking.googleapis.com \
--quiet
Ortam değişkenlerini ayarlayın:
export PROJECT_ID=$(gcloud config get-value project)
export PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format='value(projectNumber)')
export PROJECT_NAME=$(gcloud projects describe $PROJECT_ID --format='value(name)')
export DB_DATABASE=test
export DB_USER=postgres
export DB_PASSWORD=password123
export REGION=us-central1
export CLUSTER=test-cluster
export INSTANCE=test-instance
export VPC_CONNECTOR=vpcconnector
3. AlloyDB kümesini ayarlama ve oluşturma
Kurulum için gerekli izinleri ayarlayın. Bu işlem, Cloud Run işinin AlloyDB veritabanına bağlanmasına olanak tanır.
gcloud projects add-iam-policy-binding $PROJECT_NAME \
--member="serviceAccount:$PROJECT_NUMBER-compute@developer.gserviceaccount.com" \
--role="roles/alloydb.client"
Özel hizmet erişimini yapılandırma
Özel hizmet erişimi, VPC ağınız ile AlloyDB kaynaklarınızın (kümeler ve örnekler) bulunduğu temel Google Cloud VPC ağı arasında bir VPC eşleme bağlantısı olarak uygulanır. Özel bağlantı, VPC ağınızdaki kaynakların eriştiği AlloyDB kaynaklarıyla yalnızca dahili IP adreslerini kullanarak iletişim kurabilmesini sağlar. VPC ağınızdaki kaynakların AlloyDB kaynaklarına ulaşmak için internet erişimine veya harici IP adreslerine ihtiyacı yoktur.
AlloyDB ile aynı Cloud projesinde bulunan bir VPC ağında özel hizmet erişimi yapılandırması oluşturmak için iki işlem yaparsınız:
VPC ağında ayrılmış bir IP adresi aralığı oluşturun.
gcloud compute addresses create google-managed-services-default \
--global \
--purpose=VPC_PEERING \
--prefix-length=20 \
--network=projects/$PROJECT_ID/global/networks/default
VPC ağı ile temel alınan Google Cloud VPC ağı arasında özel bir bağlantı oluşturun. Bu adım yaklaşık 2 dakika sürer.
gcloud services vpc-peerings connect \
--service=servicenetworking.googleapis.com \
--ranges=google-managed-services-default \
--network=default \
--project=$PROJECT_ID
AlloyDB kümesi oluşturun.
gcloud beta alloydb clusters create $CLUSTER \
--password=$DB_PASSWORD \
--network=default \
--region=$REGION \
--project=$PROJECT_NAME
gcloud beta alloydb clusters describe $CLUSTER --region=$REGION
AlloyDB örneği oluşturun. Bu adım yaklaşık 10 dakika sürer.
gcloud beta alloydb instances create $INSTANCE \
--cluster=$CLUSTER \
--region=$REGION \
--instance-type=PRIMARY \
--cpu-count=2 \
--project=$PROJECT_NAME
gcloud beta alloydb instances describe $INSTANCE \
--cluster=$CLUSTER \
--region $REGION
Oluşturulan kümeyi Cloud Console'da inceleyin.

Veritabanı IP adresini bir değişkene kaydedin.""
export DB_HOST=$(gcloud beta alloydb instances describe $INSTANCE \
--cluster=$CLUSTER \
--region=$REGION \
--format=json | jq \
--raw-output ".ipAddress")
echo "DB_HOST=$DB_HOST"
4. Cloud Run iş kodunu keşfedin
AlloyDB veritabanı oluşturmanın birden fazla yolu vardır. Birincisi, Compute Engine VM oluşturup psql istemcisini yüklemek ve ardından veritabanı oluşturmak için örneğe bağlanmaktır. Bu yaklaşım hakkında daha fazla bilgiyi burada bulabilirsiniz.
Bu laboratuvarda Cloud Run işini kullanarak yeni bir AlloyDB veritabanı oluşturacaksınız.
Aşağıdaki dosyaları inceleyin:
- Dockerfile: Gerekli bağımlılıkları(postgresql-client) yükler.
- script.sh: Veritabanı oluşturmak için komut satırı yardımcı programlarını kullanır.
Cloud Shell'de yeni bir klasör oluşturun:
mkdir ~/alloy-db-cloud-run-job
cd ~/alloy-db-cloud-run-job
Yeni dosya oluşturma Dockerfile:
cat > Dockerfile <<EOF
FROM ubuntu:latest
RUN apt-get update && apt-get install -y postgresql-client && apt-get clean
COPY script.sh /
RUN chmod +x /script.sh
CMD ["/script.sh"]
ENTRYPOINT ["/bin/bash"]
EOF
Aşağıdaki içeriğe sahip yeni bir script.sh dosyası oluşturun:
echo "Connecting to $DB_HOST"
createdb -h $DB_HOST -p 5432 $PGDB
echo "Created $PGDB database"
psql -h $DB_HOST -l
script.sh dosyasındaki izni değiştirin:
chmod +x script.sh
5. Cloud Run işini dağıtma
Sunucusuz VPC erişimini yapılandırın. Bu, Cloud Run işinin dahili/özel IP kullanarak AlloyDB kümesiyle iletişim kurmasına olanak tanır. Bu adım yaklaşık 2 dakika sürer.
gcloud compute networks vpc-access connectors create ${VPC_CONNECTOR} \
--region=${REGION} \
--range=10.8.0.0/28
Container görüntülerini depolamak için Artifact Registry deposu oluşturun.
gcloud artifacts repositories create db-job-repository \
--repository-format=docker \
--location=$REGION
Container görüntüsünü oluşturup Artifact Registry'de yayınlayın.
gcloud builds submit -t $REGION-docker.pkg.dev/$PROJECT_NAME/db-job-repository/db-job:latest
Cloud Run işini dağıtın.
gcloud beta run jobs create db-job \
--image=$REGION-docker.pkg.dev/$PROJECT_NAME/db-job-repository/db-job:latest \
--set-env-vars DB_HOST=$DB_HOST \
--set-env-vars PGUSER=$DB_USER \
--set-env-vars PGPASSWORD=$DB_PASSWORD \
--set-env-vars PGDB=$DB_DATABASE \
--vpc-connector $VPC_CONNECTOR \
--region $REGION
İşi oluşturmak için kullanılan işaretleri inceleyin:
--vpc-connector - Cloud Run işi, AlloyDB özel IP adresine ulaşmak için VPC bağlayıcısını kullanır.
Oluşturulan işi Cloud Console'da inceleyin.

test veritabanı oluşturmak için Cloud Run işini yürütün.
gcloud beta run jobs execute db-job --region $REGION
Cloud Console'da Cloud Run işi günlüklerini inceleyin.

6. Tebrikler!
Tebrikler, codelab'i tamamladınız.
İşlediğimiz konular:
- AlloyDB kümesi ve örneği oluşturma
- Cloud Run işini kullanarak AlloyDB veritabanı oluşturma
Temizleme
Bu eğitimde kullanılan kaynaklar için Google Cloud hesabınızın ücretlendirilmesini önlemek amacıyla kaynakları içeren projeyi silin veya projeyi koruyup tek tek kaynakları silin.
Projeyi silme
Faturalandırılmanın önüne geçmenin en kolay yolu, eğitim için oluşturduğunuz projeyi silmektir.