Currently viewing the human version
Switch to AI version

Common TCCLI Questions

Q

What is TCCLI and what does it do?

A

TCCLI (Tencent Cloud Command Line Interface) is a unified command-line tool that allows you to manage all Tencent Cloud resources through a single interface. It provides direct access to Tencent Cloud APIs, enabling you to create, modify, and manage cloud resources without using the web console.

Q

How do I install TCCLI?

A

TCCLI officially supports Python 2.7 but don't fucking use it - Python 2.7 has been dead since 2020. Use Python 3.6 (literally the newest version that won't break everything) unless you enjoy compatibility hell:

pip install tccli-intl-en

Windows gotcha: Installation fails 50% of the time with Microsoft Visual C++ 14.0 is required. Fix: Install Visual Studio Build Tools or use WSL2.

macOS gotcha: On M1/M2 Macs, you might get architecture not supported errors. Fix: Use Rosetta or install via Homebrew.

Verify installation (takes 5-10 seconds on first run):

tccli --version

If this fails with command not found, your PATH is fucked. Add ~/.local/bin to your PATH or reinstall with pip install --user.

Q

What platforms does TCCLI support?

A

TCCLI is cross-platform compatible and runs on:

  • Windows
  • macOS
  • Linux/Unix (with command autocomplete support)
Q

Do I need special credentials to use TCCLI?

A

Yes, you need Tencent Cloud API credentials. Without them, every command fails with AuthFailure.SignatureFailure:

  • SecretId: Your Cloud API key identifier (starts with AKID)
  • SecretKey: Your Cloud API secret key (random 40-character string)
  • Region: Target Tencent Cloud service region (e.g., ap-guangzhou-2)

Production nightmare: These credentials expire without warning - no email, no notification, just failed deployments at the worst possible time. We learned this at 3am on a Tuesday when our deployment pipeline died with AuthFailure.TokenFailure and I spent 45 minutes debugging network issues before I realized the fucking obvious - expired creds. Set up credential monitoring or enjoy random 3am wake-up calls.

Configure via tccli configure (interactive) or environment variables (for CI/CD):

export TENCENTCLOUD_SECRET_ID=\"your-secret-id\"
export TENCENTCLOUD_SECRET_KEY=\"your-secret-key\"
export TENCENTCLOUD_REGION=\"ap-guangzhou-2\"
Q

Is TCCLI free to use?

A

TCCLI doesn't cost anything. The cloud resources you spin up with it will definitely cost you.

Cost gotcha: Commands like tccli cvm RunInstances will spin up billable resources immediately. There's no confirmation prompt. I've seen people accidentally create $500/month instances with a typo. Always double-check your parameters.

Rate limiting: Hit the APIs too hard and you'll get throttled. Free tier gets about 100 requests per minute. Exceed that and commands start failing with RequestLimitExceeded.

Q

Can I manage multiple Tencent Cloud accounts?

A

Yes, but it's clunky as hell. You create profiles for each account:

tccli configure --profile staging
tccli configure --profile production

Then use --profile for every command:

tccli cvm DescribeInstances --profile production

Massive gotcha: Forget the --profile flag and you'll run commands against the wrong account. We almost deleted our production database this way - caught it just in time when I noticed the wrong profile in the terminal prompt. Always check which profile is active with tccli configure list.

Better approach: Use environment variables in your scripts to avoid profile confusion:

## staging.env
export TENCENTCLOUD_SECRET_ID=\"staging-id\"
export TENCENTCLOUD_SECRET_KEY=\"staging-key\"

## production.env
export TENCENTCLOUD_SECRET_ID=\"production-id\"
export TENCENTCLOUD_SECRET_KEY=\"production-key\"

What TCCLI Actually Is (And Why You Might Want It)

TCCLI is Tencent Cloud's answer to AWS CLI - a command-line tool that lets you manage cloud resources without clicking through web interfaces. If you've ever tried to automate Tencent Cloud deployments or just hate switching between browser tabs, this might save your sanity.

I've been using TCCLI for about 8 months managing our staging environment, and here's the real deal: it works fine for simple stuff, gets annoying for complex deployments, but beats the hell out of clicking through the web console for repetitive tasks.

Installation Reality Check

First thing - ignore the docs saying "Python 2.7 or later." Python 2.7 died in 2020. The real problem? TCCLI maxes out at Python 3.6 - anything newer breaks with random import errors. Python 3.6 in 2025 is like running Windows XP, but that's what you're stuck with.

Terminal Installation

pip install tccli-intl-en

This works fine on Linux and macOS. On Windows? Good fucking luck. The installation breaks constantly because of PATH issues - took me three attempts on our Windows Server 2019 build box. And the autocompletion only works on Unix systems. Windows users get to type every command manually like cavemen.

What Actually Works

TCCLI basically wraps Tencent's APIs so you don't have to mess with raw HTTP calls. When it works, it works well:

Cloud Infrastructure Architecture

  • Quick server spin-ups: tccli cvm RunInstances beats clicking through 5 web pages
  • Bulk operations: Need 10 identical servers? One script instead of 10 browser sessions
  • CI/CD integration: Works great with Jenkins, GitLab CI, whatever
  • Resource monitoring: Fast way to check usage without logging into the console

The command structure is predictable: tccli [service] [action] [parameters]. Once you get used to it, you can guess commands without looking at docs.

Then it gets annoying as hell

JSON parameter hell: This is where TCCLI becomes a pain in the ass. Complex configurations require JSON strings that are annoying as hell to type:

tccli cvm RunInstances --Placement '{"Zone":"ap-guangzhou-2"}' --SystemDisk '{"DiskType":"CLOUD_BASIC", "DiskSize":50}'

Get the quoting wrong and you'll get errors like InvalidParameterValue with no explanation. Always wrap JSON in single quotes or the shell will eat your parameters.

Error messages are garbage: When something fails, TCCLI gives you cryptic API errors that tell you nothing useful. "Operation failed" - thanks, that's helpful. The --debug flag helps sometimes, but you'll still be guessing half the time.

Region switching sucks: You can only work in one region per command. For multi-region deployments, you're writing scripts that loop through regions or managing multiple credential profiles. It's tedious.

Real Production Gotchas

Credential rotation nightmare: We learned this the hard way when our SecretKey expired at 3am and took down our deployment pipeline. TCCLI doesn't warn you about expiring credentials - it just starts failing randomly.

Rate limiting: Hit the APIs too hard and you'll get throttled with no warning. This bit us during a bulk server migration when we were spinning up 50+ instances. Had to add delays between commands.

Silent timeouts: Large operations just... stop. No error, no warning, just silence. We lost 2 hours debugging why a batch storage sync "succeeded" but only processed like 350 out of 600+ files. Had to count them manually because the fucking logs said everything was fine. Anything over 50 items in a batch? Guaranteed timeout. Keep batches small or just use the web console.

Multi-Account Management

The profile system works, but it's clunky:

tccli configure --profile staging
tccli configure --profile production

Switching between accounts means remembering profile names or checking tccli configure list. Environment variables work better for automation:

  • TENCENTCLOUD_SECRET_ID
  • TENCENTCLOUD_SECRET_KEY
  • TENCENTCLOUD_REGION

Pro tip: Never store credentials in config files on production systems. Use IAM roles or inject them via environment variables.

Output Formats That Don't Suck

TCCLI gives you three output formats:

  • JSON: For scripts and automation. Works well with jq for parsing
  • Table: For humans. Actually readable, unlike the JSON blob
  • Text: For quick shell hacks. Good for grep and awk workflows

Use --output table when you're debugging. Use --output json when you're scripting. Use --output text when you need specific values fast.

Automation Lessons Learned

TCCLI shines in CI/CD pipelines once you figure out the gotchas:

DevOps CI/CD Pipeline

  1. Always quote your JSON parameters - the shell will fuck up your syntax
  2. Set explicit timeouts - some operations take forever
  3. Handle API rate limits - add retries with exponential backoff
  4. Check credentials before running - expired keys cause mysterious failures
  5. Use environment variables for credentials - never commit secrets to repos

When NOT to Use TCCLI

  • One-off tasks: The web console is faster for simple stuff
  • Complex networking: VPC configurations are easier to visualize in the GUI
  • Large data operations: Storage transfers work better through the web interface
  • Team collaboration: Other people can't easily see what you did via CLI

The Bottom Line

TCCLI is decent for automation and saves you from clicking through web interfaces. The JSON parameter syntax will make you hate your life until you get used to it, and error messages range from helpful to completely useless.

But once you figure out the quirks, it's way faster than the web console for repetitive tasks. Just don't expect it to be as polished as AWS CLI - it's functional but rough around the edges.

If you're managing Tencent Cloud infrastructure at scale, learn TCCLI. If you're just spinning up a server once a month, stick with the web console.

Advanced TCCLI Usage Questions

Q

How do I handle complex JSON parameters in TCCLI commands?

A

JSON parameters are where TCCLI becomes a massive pain in the ass. Get the syntax wrong and you'll get cryptic errors like InvalidParameterValue with zero helpful context.

The right way (single quotes, proper escaping):

tccli cvm RunInstances --Placement '{"Zone":"ap-guangzhou-2"}' --SystemDisk '{"DiskType":"CLOUD_BASIC", "DiskSize":50}'

Common failures:

  • Double quotes: "{"Zone":"ap-guangzhou-2"}" → Shell parses incorrectly
  • Missing quotes: {"Zone":"ap-guangzhou-2"} → Shell treats { as special character
  • Wrong JSON: {'Zone':'ap-guangzhou-2'} → Python-style quotes don't work

Pro tip: Use jq to validate your JSON first:

echo '{"Zone":"ap-guangzhou-2"}' | jq .

If jq can't parse it, TCCLI will fail too.

Q

Can I use TCCLI in CI/CD pipelines?

A

Yes, but it's not as smooth as AWS CLI. Configure credentials via environment variables to avoid interactive prompts:

export TENCENTCLOUD_SECRET_ID="your-secret-id"
export TENCENTCLOUD_SECRET_KEY="your-secret-key"
export TENCENTCLOUD_REGION="ap-guangzhou-2"

CI/CD gotchas that will bite you:

  1. No credential validation: TCCLI doesn't test credentials until you actually hit an API. Your pipeline runs for 5 minutes, then dies with AuthFailure.SignatureFailure. Every. Fucking. Time.

  2. Silent timeouts: Large operations just stop working with no error. We lost 2 hours debugging a "successful" storage sync that claimed to process like 600+ files but actually only did around 270. The logs lied to our faces.

  3. Rate limiting in loops: Don't loop through 100 instances without delays. You'll hit API limits and get RequestLimitExceeded.

Working example for GitLab CI:

deploy:
  script:
    - pip install tccli-intl-en
    - tccli cvm DescribeInstances --output json | jq .TotalCount  # Test credentials
    - ./deploy-script.sh
Q

What output formats does TCCLI support and when should I use each?

A

You get three ways to see the output, and here's when each one doesn't suck:

  • JSON: For scripts and when you need all the gory details - warning: massive dumps of data
  • Table: For humans who want to actually read the output - works great until you have 50+ resources
  • Text: For shell scripts and quick parsing - basically just the key values

Use --output json|table|text to specify the format. JSON is default and usually what you want.

Q

How do I manage credentials securely in production?

A

Real talk on production credentials (because we learned this shit the hard way):

  1. Environment variables only - config files get checked into git and you'll leak credentials. We caught someone committing production keys literally 20 minutes before they were about to push.

  2. IAM roles with minimal permissions - give TCCLI exactly what it needs, nothing more. We had an intern accidentally delete our entire staging database because they had admin permissions. Took 6 hours to restore.

  3. Temporary credentials when possible - they expire automatically so stolen keys become useless. Our security team mandates 4-hour expiry for anything touching production.

  4. Automated rotation - manual key rotation means forgetting to rotate until something breaks at 3am. Set up automated rotation or enjoy weekend emergency calls.

Q

Does TCCLI support command autocomplete?

A

Yes, TCCLI provides command autocomplete on Linux/Unix systems. Enable it with:

complete -C 'tccli_completer' tccli
Q

How do I troubleshoot TCCLI errors?

A

TCCLI error messages are often garbage, but here's how to actually debug them:

Step 1: Always run with --debug first:

tccli cvm DescribeInstances --debug

Common errors and real fixes:

  • AuthFailure.SignatureFailure → Your credentials are wrong or expired
  • InvalidParameterValue → Usually JSON syntax error, check quotes
  • ResourceNotFound.InstanceIdNotExist → Instance doesn't exist in that region
  • RequestLimitExceeded → You're hitting API rate limits, add delays
  • UnsupportedOperation → You're using wrong API version or unsupported feature

Nuclear option when nothing works (aka the "fuck it, start over" approach):

## Clear all cached credentials and reconfigure
rm -rf ~/.tccli/
tccli configure

Time estimate: Simple errors take 5 minutes to fix. Complex permission issues eat 2-4 hours because Tencent's error messages are useless - they don't tell you which exact permission is missing, just that "something" failed.

Q

Can I manage resources across multiple regions simultaneously?

A

TCCLI operates in a single region per command. For multi-region operations:

  1. Configure multiple profiles with different regions
  2. Use the --region parameter to override default settings
  3. Write scripts that loop through target regions
  4. Consider using infrastructure-as-code tools for complex multi-region deployments
Q

What's the difference between TCCLI and other cloud management tools?

A

TCCLI basically wraps Tencent's APIs so you don't have to mess with raw HTTP calls. Compared to AWS CLI or Azure CLI:

  • It's less polished - AWS CLI has better error messages and docs
  • Smaller ecosystem - fewer third-party tools and integrations
  • Works fine for basic stuff - gets annoying for complex deployments
  • Updates inconsistently - sometimes new features lag behind the web console

TCCLI vs. Other Cloud CLI Tools

Feature

TCCLI

AWS CLI

Azure CLI

Google Cloud CLI

Reality Check

Primary Cloud

Tencent Cloud

Amazon Web Services

Microsoft Azure

Google Cloud Platform

Pick based on your cloud, obviously

Installation

pip install tccli-intl-en

pip install awscli

pip install azure-cli

Download package installer

TCCLI fails half the time on Windows

Language

Python

Python

Python

Go/Python

Python dependency hell on locked-down corporate boxes

License

Apache 2.0

Apache 2.0

MIT

Apache 2.0

All fine, no one cares about licenses anyway

Cross-Platform

Breaks on Windows

Works everywhere

Works everywhere

Works everywhere

TCCLI's Windows support is garbage

Autocomplete

Linux only (if lucky)

Works great

Works great

Works great

TCCLI autocomplete is an afterthought

Output Formats

JSON, Table, Text

JSON, Table, Text

JSON, Table, TSV, YAML

JSON, YAML, CSV, Text

JSON usually enough, table for humans

Multi-Account

Profile-based

Profile-based

Subscription-based

Project-based

All work, just different flavors of pain

Interactive Mode

Basic config only

Excellent

Amazing

Command-only

AWS/Azure win here by miles

API Coverage

Claims 100% coverage

100% of AWS APIs

100% of Azure APIs

100% of GCP APIs

TCCLI lags behind web console features

Configuration

File + Environment vars

File + Environment vars

File + Environment vars

File + Environment vars

All the same, config files are universal pain

Credential Types

SecretId/SecretKey

Access Key/Secret

Service Principal/Token

Service Account/OAuth

TCCLI's are the simplest, others overengineered

Container Support

Via CVM/TKE

Via ECS/EKS

Via ACI/AKS

Via GCE/GKE

All work, Tencent's docs are worse

Scripting Support

Shell integration

Shell integration

Shell integration

Shell integration

All fine for basic automation

Latest Version

3.0.x series

2.x series

2.x series

Auto-updates

TCCLI updates inconsistently

Documentation

English/Chinese

English

English

English

TCCLI docs are translation hell

Community

Small

Massive

Large

Large

TCCLI community is tiny, good luck with help

Enterprise Features

Multi-region, IAM

Organizations, SSO

AD integration

Organization policies

All have enterprise features, TCCLI's feel like they were added as an afterthought

Essential TCCLI Resources

Related Tools & Recommendations

integration
Recommended

Stop manually configuring servers like it's 2005

Here's how Terraform, Packer, and Ansible work together to automate your entire infrastructure stack without the usual headaches

Terraform
/integration/terraform-ansible-packer/infrastructure-automation-pipeline
100%
tool
Recommended

AWS CLI - コマンドラインでAWSを完全制御

深夜のproduction障害からdaily taskまで、ターミナル一つでAWSインフラを操る最強ツール

AWS CLI
/ja:tool/aws-cli/overview
56%
tool
Recommended

AWS Command Line Interface (AWS CLI) - Because Clicking Through the Console 500 Times Per Day Will Drive You Insane

The command-line tool that saves your sanity by letting you manage AWS resources without opening 47 browser tabs and clicking through endless dropdown menus.

AWS CLI
/tool/aws-cli/overview
56%
tool
Recommended

AWS CLI Production緊急対応 - 深夜障害を乗り切る実戦ガイド

午前3時のSlackアラート爆発からシステム復旧まで、プロダクション環境でのAWS CLI緊急活用術

AWS CLI
/ja:tool/aws-cli/production-troubleshooting
56%
tool
Recommended

Docker for Node.js - The Setup That Doesn't Suck

integrates with Node.js

Node.js
/tool/node.js/docker-containerization
48%
howto
Recommended

Complete Guide to Setting Up Microservices with Docker and Kubernetes (2025)

Split Your Monolith Into Services That Will Break in New and Exciting Ways

Docker
/howto/setup-microservices-docker-kubernetes/complete-setup-guide
48%
tool
Recommended

Docker Distribution (Registry) - 본격 컨테이너 이미지 저장소 구축하기

OCI 표준 준수하는 오픈소스 container registry로 이미지 배포 파이프라인 완전 장악

Docker Distribution
/ko:tool/docker-registry/overview
48%
tool
Popular choice

jQuery - The Library That Won't Die

Explore jQuery's enduring legacy, its impact on web development, and the key changes in jQuery 4.0. Understand its relevance for new projects in 2025.

jQuery
/tool/jquery/overview
48%
review
Recommended

Terraform is Slow as Hell, But Here's How to Make It Suck Less

Three years of terraform apply timeout hell taught me what actually works

Terraform
/review/terraform/performance-review
46%
review
Recommended

Terraform Performance at Scale Review - When Your Deploys Take Forever

integrates with Terraform

Terraform
/review/terraform/performance-at-scale
46%
tool
Recommended

Migration vers Kubernetes

Ce que tu dois savoir avant de migrer vers K8s

Kubernetes
/fr:tool/kubernetes/migration-vers-kubernetes
46%
alternatives
Recommended

Kubernetes 替代方案:轻量级 vs 企业级选择指南

当你的团队被 K8s 复杂性搞得焦头烂额时,这些工具可能更适合你

Kubernetes
/zh:alternatives/kubernetes/lightweight-vs-enterprise
46%
tool
Recommended

Kubernetes - Le Truc que Google a Lâché dans la Nature

Google a opensourcé son truc pour gérer plein de containers, maintenant tout le monde s'en sert

Kubernetes
/fr:tool/kubernetes/overview
46%
tool
Popular choice

Hoppscotch - Open Source API Development Ecosystem

Fast API testing that won't crash every 20 minutes or eat half your RAM sending a GET request.

Hoppscotch
/tool/hoppscotch/overview
46%
tool
Popular choice

Stop Jira from Sucking: Performance Troubleshooting That Works

Frustrated with slow Jira Software? Learn step-by-step performance troubleshooting techniques to identify and fix common issues, optimize your instance, and boo

Jira Software
/tool/jira-software/performance-troubleshooting
44%
tool
Recommended

Jenkins - The CI/CD Server That Won't Die

compatible with Jenkins

Jenkins
/tool/jenkins/overview
44%
integration
Recommended

Jenkins Docker 통합: CI/CD Pipeline 구축 완전 가이드

한국 개발자를 위한 Jenkins + Docker 자동화 시스템 구축 실무 가이드 - 2025년 기준으로 작성된 제대로 동작하는 통합 방법

Jenkins
/ko:integration/jenkins-docker/pipeline-setup
44%
tool
Recommended

Jenkins - 日本発のCI/CDオートメーションサーバー

プラグインが2000個以上とかマジで管理不能だけど、なんでも実現できちゃう悪魔的なCI/CDプラットフォーム

Jenkins
/ja:tool/jenkins/overview
44%
tool
Recommended

GitLab CI/CD - The Platform That Does Everything (Usually)

CI/CD, security scanning, and project management in one place - when it works, it's great

GitLab CI/CD
/tool/gitlab-ci-cd/overview
44%
integration
Recommended

Stop Fighting Your CI/CD Tools - Make Them Work Together

When Jenkins, GitHub Actions, and GitLab CI All Live in Your Company

GitHub Actions
/integration/github-actions-jenkins-gitlab-ci/hybrid-multi-platform-orchestration
44%

Recommendations combine user behavior, content similarity, research intelligence, and SEO optimization