Комплексное руководство по развертыванию Pub/Sub с учетными данными: методы и примеры кода

В современной архитектуре приложений системы, управляемые событиями, играют решающую роль в обеспечении масштабируемости, гибкости и связи в реальном времени. Одной из популярных служб обмена сообщениями, управляемой событиями, является Google Cloud Pub/Sub, которая позволяет разработчикам создавать надежные и надежные системы. В этой статье мы рассмотрим различные методы развертывания Pub/Sub с учетными данными и предоставим примеры кода для иллюстрации каждого подхода.

Метод 1: файл ключа учетной записи службы
Чтобы развернуть Pub/Sub с учетными данными с использованием файла ключа учетной записи службы, выполните следующие действия:

Шаг 1. Создайте сервисный аккаунт в Google Cloud Console.
Шаг 2. Создайте файл ключа для сервисного аккаунта.
Шаг 3. Надежно сохраните файл ключа в среде развертывания.
Шаг 4. Используйте файл ключа для аутентификации и авторизации запросов к Pub/Sub.

Пример кода:

from google.cloud import pubsub_v1
from google.oauth2 import service_account
# Load the service account key file
credentials = service_account.Credentials.from_service_account_file('path/to/keyfile.json')
# Create a Pub/Sub publisher with credentials
publisher = pubsub_v1.PublisherClient(credentials=credentials)
# Publish a message
topic_path = publisher.topic_path('project-id', 'topic-name')
data = b'My message'
future = publisher.publish(topic_path, data=data)

Метод 2: учетные данные приложения по умолчанию
Учетные данные приложения по умолчанию (ADC) предоставляют удобный способ аутентификации приложений без ручного управления ключами учетной записи службы. Чтобы развернуть Pub/Sub с помощью ADC, выполните следующие действия:

Шаг 1. Настройте Google Cloud SDK и выполните аутентификацию с помощью gcloud auth application-default login.
Шаг 2. Установите необходимые библиотеки Python и импортируйте их в свой код.
Шаг 3. Используйте Библиотека ADC для автоматической загрузки учетных данных.

Пример кода:

from google.cloud import pubsub_v1
# Create a Pub/Sub publisher with application default credentials
publisher = pubsub_v1.PublisherClient()
# Publish a message
topic_path = publisher.topic_path('project-id', 'topic-name')
data = b'My message'
future = publisher.publish(topic_path, data=data)

Метод 3: учетные данные учетной записи пользователя
В некоторых случаях вам может потребоваться использовать учетные данные учетной записи пользователя для развертывания Pub/Sub. Этот метод подходит для сценариев, когда отдельным пользователям необходим доступ к ресурсам Pub/Sub.

Пример кода:

from google.cloud import pubsub_v1
from google.auth import impersonated_credentials
from google.auth.transport import requests
# Get the user account credentials
user_credentials, _ = google.auth.default()
# Impersonate the user account to Pub/Sub service account
target_principal = 'service-account-email@project-id.iam.gserviceaccount.com'
credentials = impersonated_credentials.Credentials(
    source_credentials=user_credentials,
    target_principal=target_principal,
    target_scopes=['https://www.googleapis.com/auth/pubsub'],
    lifetime=minutes(15),
    target_project_id='project-id',
)
# Create a Pub/Sub publisher with user account credentials
publisher = pubsub_v1.PublisherClient(credentials=credentials)
# Publish a message
topic_path = publisher.topic_path('project-id', 'topic-name')
data = b'My message'
future = publisher.publish(topic_path, data=data)

В этой статье мы рассмотрели три различных метода развертывания Pub/Sub с учетными данными: использование файла ключа учетной записи службы, учетных данных приложения по умолчанию и учетных данных учетной записи пользователя. Каждый метод обеспечивает безопасную аутентификацию и авторизацию для ваших развертываний Pub/Sub. Используя эти методы с предоставленными примерами кода, вы можете создавать надежные и безопасные системы, управляемые событиями, с помощью Google Cloud Pub/Sub.