Skip to main content

Subscribe Throughput Capacity Should Be Between 4 and 32

More Info:

Ensure subscribe throughput capacity is between 4 and 32

Risk Level

Low

Address

Operational Maturity, Reliability

Compliance Standards

  • Cloudanix Best Practice

Triage and Remediation

Remediation

Using Console

To remediate the misconfiguration "Subscribe Throughput Capacity Should Be Between 4 and 32" in GCP using GCP console, follow the below steps:

  1. Open the GCP console and navigate to the Pub/Sub section.

  2. Select the subscription that is misconfigured.

  3. Click on the "Edit" button to edit the subscription.

  4. In the "Subscription Configuration" section, locate the "Throughput capacity" field.

  5. Enter a value between 4 and 32 in the "Throughput capacity" field.

  6. Click on the "Save" button to save the changes.

  7. Verify that the subscription now has a throughput capacity between 4 and 32.

By following these steps, you can remediate the misconfiguration "Subscribe Throughput Capacity Should Be Between 4 and 32" in GCP using GCP console.

Using CLI

To remediate the "Subscribe Throughput Capacity Should Be Between 4 and 32" misconfiguration on GCP using GCP CLI, you can follow these steps:

  1. Open the Cloud Shell in your GCP Console.
  2. Run the following command to list all the Pub/Sub subscriptions in your project:
gcloud pubsub subscriptions list
  1. Identify the subscription that has a throughput capacity outside the range of 4 to 32.
  2. Run the following command to update the throughput capacity of the subscription:
gcloud pubsub subscriptions update [SUBSCRIPTION_NAME] --update-labels=google.pubsub.subscription.capacity=4

Replace [SUBSCRIPTION_NAME] with the name of the subscription you want to update, and set the capacity value to 4 (or any value between 4 and 32). 5. Verify that the subscription capacity has been updated by running the following command:

gcloud pubsub subscriptions describe [SUBSCRIPTION_NAME]

This will display the details of the subscription, including the updated capacity value.

By following these steps, you can remediate the "Subscribe Throughput Capacity Should Be Between 4 and 32" misconfiguration for GCP using GCP CLI.

Using Python

To remediate the issue of Subscribe Throughput Capacity Should Be Between 4 and 32 in GCP using Python, follow these steps:

  1. First, you need to authenticate with GCP using Python. You can do this by installing the Google Cloud SDK and then running the following command in your terminal:

    gcloud auth login
  2. Next, you need to install the google-cloud-pubsub library using pip. You can do this by running the following command in your terminal:

    pip install google-cloud-pubsub
  3. Once you have authenticated and installed the necessary libraries, you can use the following Python code to remediate the issue:

    from google.cloud import pubsub_v1

    # Set the project ID and subscription name
    project_id = "your-project-id"
    subscription_name = "your-subscription-name"

    # Create a subscriber client
    subscriber = pubsub_v1.SubscriberClient()

    # Get the subscription object
    subscription_path = subscriber.subscription_path(project_id, subscription_name)
    subscription = subscriber.get_subscription(subscription_path)

    # Check the current throughput capacity
    current_capacity = subscription.flow_control.max_messages

    # If the current capacity is outside the range of 4 to 32, update it to 4
    if current_capacity < 4 or current_capacity > 32:
    subscription.flow_control.max_messages = 4
    subscriber.update_subscription(subscription, {"updateMask": "flow_control"})

    # Close the subscriber client
    subscriber.close()
  4. In the code above, replace your-project-id and your-subscription-name with the actual project ID and subscription name that you want to remediate.

  5. Run the Python code in your terminal using the following command:

    python remediate_subscribe_throughput.py

    This will update the subscription's throughput capacity to 4 if it is currently outside the range of 4 to 32.

Using Terraform
resource "google_pubsub_lite_subscription" "SUBSCRIPTION_NAME" {
name = "SUBSCRIPTION_ID" # replace with the subscription ID (short name, not full path)
topic = "TOPIC_ID_OR_PATH" # replace with the Pub/Sub Lite topic ID or full path
zone = "REGION-ZONE" # e.g. "us-central1-b"

capacity {
# Keep publish_mib_per_sec as-is or set appropriately for your use case
publish_mib_per_sec = EXISTING_OR_DESIRED_PUBLISH_CAPACITY

# Set subscribe throughput capacity between 4 and 32 MiB/s as required
subscribe_mib_per_sec = DESIRED_SUBSCRIBE_CAPACITY_BETWEEN_4_AND_32
}
}

Changing subscribe_mib_per_sec should be an in-place update (no replacement) in current Google provider behavior.

To verify, run terraform plan and confirm it shows an in-place update of google_pubsub_lite_subscription.SUBSCRIPTION_NAME.capacity.subscribe_mib_per_sec from the old value to DESIRED_SUBSCRIBE_CAPACITY_BETWEEN_4_AND_32 with no resource replacement.