huaweicloud/huaweicloud-skills

huawei-cloud-flexus-l-server-manage

- Manages Huawei Cloud Flexus L server lifecycle: create, renew, and unsubscribe instances.

查看源码
仓库原始内容

按源仓库内容呈现,保留标题、案例、代码、表格、链接以及原文引用的演示图片。

⚠️ Security Execution Rules (Highest Priority):

  1. All scripts MUST be executed via skill action=exec, NEVER run directly in shell
  2. NEVER print script contents or commands containing AK/SK/Token in conversation
  3. NEVER create temporary script files, prefer inline execution (python -c)
  4. On execution failure, only return error info, do NOT rewrite scripts or print full commands
  5. AK/SK/Token MUST be passed via environment variables, NEVER appear in conversation
  6. ⚠️ ABSOLUTELY NEVER expose, log, or print AK/SK/Token values in any form - this is a critical security requirement

Huawei Cloud Flexus L Instance Lifecycle Management Skill

Overview

This skill provides core lifecycle management capabilities for Huawei Cloud Flexus L instances:

ModuleDescriptionCommand
Query RegionsShow available regionsshow-regions
Query ImagesShow available imagesshow-images
Query SpecsShow available specsshow-specs
CreatePurchase new Flexus L instancescreate-instance
RenewalRenew existing instancesrenewal
UnsubscribeCancel instance subscriptionunsubscribe

Architecture

┌─────────────────────────────────────────────────────────────┐
│                    Flexus L Lifecycle Skill                  │
├─────────────────────────────────────────────────────────────┤
│  ┌──────────┐  ┌──────────┐  ┌──────────────┐              │
│  │  Create  │  │ Renewal  │  │  Unsubscribe │              │
│  └────┬─────┘  └────┬─────┘  └──────┬───────┘              │
│       │             │                │                       │
│       └─────────────┴────────────────┘                       │
│                     │                                        │
│       ┌─────────────▼─────────────┐                         │
│       │  flexus_specs_extractor  │                         │
│       └─────────────┬─────────────┘                         │
│                     │                                        │
│              ┌──────▼──────┐                                 │
│              │  HCSS API   │  (Instance Management)          │
│              └──────┬──────┘                                 │
│              ┌──────▼──────┐                                 │
│              │  BSS API    │  (Billing & Subscription)       │
│              └──────┬──────┘                                 │
│              ┌──────▼──────┐                                 │
│              │  IAM API    │  (Project ID)                   │
│              └─────────────┘                                 │
└─────────────────────────────────────────────────────────────┘

Data Source

  • Region, Image, Spec Information: Dynamically fetched from official documentation, no local config file needed
  • Official Documentation: https://support.huaweicloud.com/api-flexusl/createinstance0001.html
  • On-Demand Fetch: Automatically fetches latest data when executing show-regions, show-images, show-specs, create-instance

Use Cases

  1. Automated Server Provisioning - Create Flexus L instances for development, testing, or production environments
  2. Cost Optimization - Renew instances during promotional periods to save costs
  3. Resource Cleanup - Safely unsubscribe instances when projects end
  4. Multi-Region Deployment - Create instances across different regions for disaster recovery

Applicable Scenarios

  • Development and testing environment setup
  • Production server lifecycle management
  • Cost control and budget management
  • Project resource cleanup and decommissioning

Important Notes

⚠️ All scripts and environment check scripts are inside the skill package. You must use skill action=exec to execute them; do not run them directly in the shell.

Prerequisites

Before using this skill, ensure the following conditions are met:

1. Huawei Cloud Account

  • Valid Huawei Cloud account
  • Account has completed real-name verification
  • Account has sufficient balance or bound payment method

2. AK/SK Credentials

  • Created Huawei Cloud access keys (AK/SK)
  • AK/SK has the following permissions:
  • BSS: Billing service (order query, renewal, unsubscribe)
  • HCSS: Flexus L instance management
  • IAM: Project ID query (read-only)
  • How to obtain: Huawei Cloud Console → My Credentials → Access Keys → Create Access Key

Credential Configuration Methods:

MethodDescriptionPriority
Environment VariablesHW_ACCESS_KEY, HW_SECRET_KEY, HW_SECURITY_TOKENHighest (Recommended)
Command-line Parameters--ak, --sk, --security-tokenLower (Accepted but not recommended)

Credential Types (by recommendation order):

PriorityTypeParametersDescription
PrimaryTemporary AK/SKEnvironment variables + HW_SECURITY_TOKENTemporary credentials with security token, higher security
SecondaryPermanent AK/SKEnvironment variables onlyLong-term access keys from Huawei Cloud console

Environment Variables (Primary Method - Strongly Recommended):

Pass credentials via environment variables HW_ACCESS_KEY, HW_SECRET_KEY, HW_SECURITY_TOKEN. Temporary credentials require HW_SECURITY_TOKEN, permanent credentials do not.

Command-line Parameters (Secondary Method - Accepted):

bash
# Temporary credentials
python scripts/flexus_lifecycle.py create-instance \
  --ak <AK> --sk <SK> --security-token <TOKEN> \
  --image Ubuntu --cpu 2 --memory 4

# Permanent credentials
python scripts/flexus_lifecycle.py create-instance \
  --ak <AK> --sk <SK> \
  --image Ubuntu --cpu 2 --memory 4

⚠️ Security Token Notes:

  • Temporary AK/SK (Primary): Requires HW_SECURITY_TOKEN environment variable, higher security, strongly recommended
  • Permanent AK/SK (Secondary): Only needs HW_ACCESS_KEY and HW_SECRET_KEY, no security token needed

3. IAM Permissions

ServicePolicyRequired Actions
HCSSHCSS FullAccesshcss:lightInstances:*
BSSBSS Administratorbss:order:*, bss:renewal:*, bss:unsubscribe:*
IAMIAM ReadOnlyAccessiam:projects:list

Permission Failure Handling:

ErrorCauseSolution
403 ForbiddenMissing policyAdd required IAM policy to user
APIGW.0101Service not enabledEnable Flexus L in target region
BSS.0501No access to resourceVerify resource belongs to account

See references/permission-guide.md for detailed permission setup.

4. Runtime Environment

  • Python 3.8 or higher
  • Required dependencies installed (see Dependencies section below)

5. Network Environment

  • Able to access Huawei Cloud API endpoints
  • Required endpoints:
  • hcss.cn-north-4.myhuaweicloud.com
  • iam.myhuaweicloud.com
  • bss.myhuaweicloud.com
  • If using proxy, configure environment variables correctly

Trigger Rules

Activate this skill when users mention:

Create related:

  • "Purchase Huawei Cloud server", "Create Flexus instance", "Huawei Cloud lightweight server"
  • "hcss instance", "New Flexus L"

Renewal related:

  • "Renew Flexus L instance", "Flexus renewal", "Renew lightweight server"
  • "Huawei Cloud renewal", "renew flexus"

Unsubscribe related:

  • "Unsubscribe Flexus L instance", "Cancel Flexus instance", "Unsubscribe lightweight server"
  • "Huawei Cloud unsubscribe", "cancel subscription flexus"

⚠️ Conversation Display Guidelines (Important)

When displaying "Available Specifications" or "Available Images" to users in conversation, you MUST immediately append the following note:

Note - Spec codes vary by region and image version. Please refer to the official documentation Appendix 1 (spec codes for each image type) and Appendix 2 (spec details for each code) before purchasing. - Official Link: <https://support.huaweicloud.com/api-flexusl/createinstance0001.html#createinstance0001__section1881914176434>

This applies to all conversation scenarios, including dry-run previews.


Security Notes

⚠️ AK/SK Security Requirements (CRITICAL):

  • Environment Variables (Primary - Strongly Recommended): HW_ACCESS_KEY, HW_SECRET_KEY, HW_SECURITY_TOKEN
  • Command-line Parameters (Secondary - Accepted): --ak, --sk, --security-token
  • Priority: Environment variables > Command-line parameters
  • Security Token: Recommended - Temporary credentials have higher security

⚠️ ABSOLUTE SECURITY RULES - NEVER VIOLATE:

  1. NEVER print, log, or display AK/SK/Token values in any form
  2. NEVER include AK/SK/Token in error messages or debug output
  3. NEVER store AK/SK/Token in files or configuration
  4. NEVER transmit AK/SK/Token over insecure channels
  5. When command-line parameters are used, they MUST be masked in any output

Credential Usage (by recommendation order):

python
# Primary: With security token (temporary credentials, higher security)
BasicCredentials(ak, sk).with_security_token(security_token)

# Secondary: Without security token (permanent credentials)
BasicCredentials(ak, sk)

Core Commands

CommandFunctionRequired ParamsOptional Params
show-regionsShow available regionsNoneNone
show-imagesShow available imagesNone--region
show-specsShow available specs--image--region
create-instanceCreate instance--ak, --sk, --security-token (recommended)--region, --image, --plan-spec, --cpu, --memory, --period-num, --period-type, --instance-name, --auto-renew, --auto-pay, --dry-run, --confirm
renewalRenew instance--ak, --sk, --security-token (recommended), --resource-ids--period-num, --period-type, --auto-pay, --dry-run, --confirm
unsubscribeUnsubscribe instance--ak, --sk, --security-token (recommended), --resource-ids--type, --reason, --dry-run, --confirm

Parameter Confirmation

Required Parameter Validation:

ParameterDescriptionValidation Rule
--akHuawei Cloud Access Key IDNon-empty (or set HW_ACCESS_KEY env var)
--skHuawei Cloud Secret Access KeyNon-empty (or set HW_SECRET_KEY env var)
--security-tokenSecurity TokenRecommended (or set HW_SECURITY_TOKEN env var)
--resource-idsResource IDsNon-empty, comma-separated for multiple
--imageImage nameFormat: name:version, e.g. Ubuntu:22.04
--regionRegion IDMust be in supported regions list

Parameter Relationships:

Parameter GroupDescription
--plan-spec vs --cpu/--memoryChoose one; --plan-spec takes priority; if not specified, auto-match based on --cpu/--memory
--dry-run vs --confirmChoose one or neither; --dry-run previews only, --confirm skips confirmation, neither triggers interactive confirmation

Default Values:

ParameterDefaultDescription
--regioncn-north-4North China - Beijing 4
--imageUbuntuUbuntu system image
--period-num1Purchase/renew for 1 month
--period-typemonthMonthly billing
--type (unsubscribe)1Immediate unsubscribe
--auto-renewTrueEnable auto renewal
--auto-payTrueAuto payment

⚠️ Mandatory Confirmation Mechanism

Creation, renewal, and cancellation operations involve actual costs and must be executed only after explicit confirmation from the user!

Confirmation methods (choose one):

  1. Dialog confirmation: Reply "confirm" or "yes" in conversation
  2. Command-line confirmation: Use --confirm flag
  3. Dry-run preview: Use --dry-run to preview without executing

⚠️ Failure Handling Rule:

When user confirms the preview order and the purchase fails:

  • Only make ONE request - do not retry automatically
  • Return the failure reason to the user
  • Guide user to repurchase - let user decide next steps
  • NEVER change parameters (region, spec, image, etc.) without user's explicit request

Usage

Basic Command Format

bash
python scripts/flexus_lifecycle.py <command> [options]

Global Parameters

ParameterDescriptionRequiredEnvironment Variable
--akHuawei Cloud Access Key IDYes (or env var)HW_ACCESS_KEY
--skHuawei Cloud Secret Access KeyYes (or env var)HW_SECRET_KEY
--security-tokenSecurity TokenRecommendedHW_SECURITY_TOKEN
--regionRegion ID (default: cn-north-4)No-
--dry-runDry run, don't actually executeNo-
--confirmForce confirmation, skip interactiveNo-

Credential Configuration Examples

Method 1: Using Environment Variables (Primary - Strongly Recommended)

bash
python scripts/flexus_lifecycle.py create-instance --image Ubuntu --cpu 2 --memory 4

Method 2: Using Command-line Parameters (Secondary - Accepted)

bash
# Temporary credentials
python scripts/flexus_lifecycle.py create-instance \
  --ak <AK> --sk <SK> --security-token <TOKEN> \
  --image Ubuntu \
  --cpu 2 \
  --memory 4

# Permanent credentials
python scripts/flexus_lifecycle.py create-instance \
  --ak <AK> --sk <SK> \
  --image Ubuntu \
  --cpu 2 \
  --memory 4

Module Details

0️⃣ Query Functions

Show available regions:

bash
python scripts/flexus_lifecycle.py show-regions

Show available images for a region:

bash
python scripts/flexus_lifecycle.py --region cn-north-4 show-images

Show available specs for an image:

bash
python scripts/flexus_lifecycle.py --region cn-north-4 show-specs --image Ubuntu

1️⃣ Create Instance (create-instance)

Purchase new Flexus L instances, supports Windows/Linux.

Method 1: Auto-match Spec (Recommended)

bash
python scripts/flexus_lifecycle.py create-instance \
  --region cn-north-4 \
  --image Ubuntu \
  --cpu 2 \
  --memory 4

Method 2: Specify Spec

bash
python scripts/flexus_lifecycle.py create-instance \
  --region cn-north-4 \
  --image Ubuntu \
  --plan-spec hf.medium.1.linux

Method 3: Use Default Spec

bash
python scripts/flexus_lifecycle.py create-instance \
  --region cn-north-4 \
  --image Ubuntu

Create Parameters:

ParameterDescriptionDefault
--imageImage nameUbuntu
--plan-specInstance specificationAuto-match or config default
--cpuCPU cores (for auto-match)-
--memoryMemory GB (for auto-match)-
--period-numPurchase duration (months)1
--period-typePeriod type (month/year)month
--instance-nameInstance nameAuto-generated
--auto-renewAuto renewalTrue
--auto-payAuto paymentTrue

Available Specifications Reference:

See references/image-specs-guide.md for detailed specs.


2️⃣ Renewal Instance (renewal)

Renew existing Flexus L instances.

bash
# Preview renewal (recommended)
python scripts/flexus_lifecycle.py renewal \
  --resource-ids <resource-id> \
  --period-num 1 \
  --period-type month \
  --dry-run

# Confirm renewal
python scripts/flexus_lifecycle.py renewal \
  --resource-ids <resource-id> \
  --period-num 6 \
  --period-type month \
  --confirm

# Renew multiple instances
python scripts/flexus_lifecycle.py renewal \
  --resource-ids id1,id2,id3 \
  --period-num 1 \
  --period-type year \
  --confirm

Renewal Parameters:

ParameterDescriptionDefault
--resource-idsResource IDs (comma-separated)Required
--period-numRenewal period count1
--period-typePeriod type (month/year)month
--auto-payAuto paymentTrue

3️⃣ Unsubscribe Instance (unsubscribe)

Cancel Flexus L instance subscription.

bash
# Preview unsubscribe (recommended)
python scripts/flexus_lifecycle.py unsubscribe \
  --resource-ids <resource-id> \
  --dry-run

# Immediate unsubscribe (type 1)
python scripts/flexus_lifecycle.py unsubscribe \
  --resource-ids <resource-id> \
  --type 1 \
  --confirm

# Expiry unsubscribe (type 2)
python scripts/flexus_lifecycle.py unsubscribe \
  --resource-ids <resource-id> \
  --type 2 \
  --confirm

# Batch unsubscribe
python scripts/flexus_lifecycle.py unsubscribe \
  --resource-ids id1,id2,id3 \
  --type 1 \
  --reason "Project ended" \
  --confirm

Unsubscribe Parameters:

ParameterDescriptionDefault
--resource-idsResource IDs (comma-separated)Required
--typeUnsubscribe type (1=immediate, 2=expiry)1
--reasonUnsubscribe reasonNone

Unsubscribe Types:

TypeDescriptionEffect
1Unsubscribe resource and renewed periodsResource stops immediately, pro-rated refund
2Only unsubscribe renewed periodsResource continues until expiry

Available Regions

⚠️ Note: Flexus L instances currently support only the following regions:
Region IDRegion NameSpec Prefix
cn-north-4North China - Beijing 4hf.*
cn-east-3East China - Shanghai 1hf.*
cn-south-1South China - Guangzhouhf.*
cn-southwest-2Southwest China - Guiyang 1ahf.*
ap-southeast-1Hong Kong, Chinahf.*
ap-southeast-3Asia Pacific - Singaporehf.*

Dependencies

Python Dependencies

Install via pip:

bash
pip install requests huaweicloudsdkcore huaweicloudsdkbss

Or use pyproject.toml:

bash
cd scripts
pip install -e .

pyproject.toml

toml
[project]
name = "flexus-lifecycle"
version = "1.0.0"
dependencies = [
    "requests>=2.28.0",
    "huaweicloudsdkcore>=3.0.0",
    "huaweicloudsdkbss>=3.0.0",
]

File Structure

skills/huawei-cloud-flexus-l-server-manage/
├── SKILL.md                    # This file
├── scripts/
│   ├── flexus_lifecycle.py     # Main lifecycle script
│   ├── flexus_specs_extractor.py  # Dynamic specs fetcher
│   └── pyproject.toml          # Dependencies
└── references/
    ├── api-reference.md        # API reference
    ├── iam-policies.md         # IAM policies
    ├── image-specs-guide.md    # Image specs guide
    ├── permission-guide.md     # Permission setup
    └── troubleshooting.md      # Troubleshooting

Error Handling

Common Errors

Error CodeDescriptionSolution
401 UnauthorizedInvalid AK/SKVerify AK/SK is correct and active
403 ForbiddenPermission deniedAdd required IAM policies
APIGW.0101API not foundCheck service is enabled in region
APIGW.0301Signature verification failedCheck SK is correct
BSS.0501Resource not foundVerify resource ID is correct
BSS.0502Resource state invalidCheck resource status
400 Bad RequestInvalid parametersCheck spec/image compatibility

See references/troubleshooting.md for detailed error handling.


References

External References


来自同一仓库

更多 Skills

全部 Skills
huaweicloud
社区

huawei-cloud-publish-work-to-gallery

Publish user's work to the Huawei Cloud University Operations Platform (华为云高校运营平台/作品陈列馆). Use this skill whenever the user wants to publish, submit, or upload a project/work to the gallery or a training camp (训练营) on the platform — including casual phrasings like "把作品发布上去", "投稿到陈列馆", "传作品到平台", "提交作品/项目", "报名发布作品", as well as formal ones like "publish to work gallery", "submit to training camp", "upload work to the platform". Do NOT use for general dev questions, git push to GitCode alone, or platform browsing without publishing intent.

安装量
5
GitHub Stars
50
最近更新
9月23日
huaweicloud
社区

huawei-cloud-eip-cost-optimizer

Huawei Cloud EIP (Elastic IP) cost optimization skill using hcloud CLI (KooCLI). 1. List and query EIPs across regions with detailed status 2. Identify idle/unbound EIPs and generate cost optimization reports 3. Set up idle EIP monitoring with webhook/email alerts 4. Generate HTML/JSON cost analysis reports 5. Maintain operation audit logs for compliance Read-only analysis only - NO bandwidth adjustment, tag management, or EIP release/deletion. Triggers include: "EIP cost optimization", "idle EIP analysis", "EIP audit", "cost report", "EIP status query", "EIP list", "EIP monitoring", "EIP alert", "cost analysis", "idle monitoring", "operation audit", "EIP 成本优化", "闲置 EIP 分析", "EIP 审计", "成本报告", "EIP 状态查询", "EIP 查询", "EIP 列表", "EIP 监控", "EIP 告警", "成本分析", "闲置监控", "操作审计"

安装量
1
GitHub Stars
50
最近更新
9月22日
huaweicloud
社区

huawei-cloud-flexus-l-deploy-jiuwenswarm

One-click deployment of JiuwenSwarm multi-Agent collaboration platform on Huawei Cloud Flexus L instances. Usage scenarios: When users need to quickly deploy JiuwenSwarm/JiuwenClaw on Huawei Cloud Flexus L instances, when they need to automatically create cloud instances and deploy AI Agent platforms, when they need to configure model APIs and message channels (Xiaoyi/Feishu/DingTalk). Automatically create instances, deploy applications via COC, configure models and message channels. Trigger keywords: JiuwenSwarm deployment, JiuwenClaw deployment, 九问Swarm部署, 九问Claw部署, 一键部署JiuwenSwarm, AI智能体平台部署, 部署九问Swarm, 部署九问Claw,云服务器部署AI平台.

安装量
1
GitHub Stars
50
最近更新
9月22日
huaweicloud
社区

huawei-cloud-flexus-l-server-flexusagent-deployment

Deploy AI Agent development platform (Dify) on Huawei Cloud Flexus L instance, providing deployment operations, password management, MaaS model configuration, and workflow import capabilities. Trigger keywords: deploy flexusagent/一键部署Flexus AI Agent开发平台、change password/修改开发平台管理员密码、change dify password/修改dify平台密码、add maas provider/添加MaaS模型供应商、configure maas model/配置MaaS模型、view workflow/查看AI Agent工作流、import workflow/导入AI Agent工作流

安装量
1
GitHub Stars
50
最近更新
9月22日