阿里云命令行工具(Alibaba Cloud Command Line Interface)是在Alibaba Cloud SDK for Go之上构建的开源工具。可以在命令行Shell中,使用aliyun命令与阿里云服务进行交互,管理阿里云资源.

文档:https://help.aliyun.com/document_detail/110244.html

Github:https://github.com/aliyun/aliyun-cli/

1. aliyun-cli 安装与配置

#https://github.com/aliyun/aliyun-cli/releases/
wget https://aliyuncli.alicdn.com/aliyun-cli-linux-latest-amd64.tgz
tar -xzvf aliyun-cli-linux-latest-amd64.tgz
sudo cp aliyun /usr/local/bin/

操作完成后,运行:

aliyun configure

依照提示进行如下配置:

Configuring profile 'default' in 'AK' authenticate mode...
Access Key Id [*********************]:
Access Key Secret [***************************]:
Default Region Id [cn-hangzhou]:
Default Output Format [json]: json (Only support json)
Default Language [zh|en] zh:
Saving profile[default] ...Done.

其中,

  • Access ID:RAM子账号的ID
  • Access Secret:RAM子账号的Secret
  • Region ID:阿里云账号中镜像仓库的区位(如,cn-hangzhou)
  • Language:zh

2. aliyun-cli 帮助

终端输入,

aliyun --help

输出如:

阿里云CLI命令行工具 3.0.73

Usage:
  aliyun <product> <operation> [--parameter1 value1 --parameter2 value2 ...]

Flags:
  --mode               使用 `--mode {AK|StsToken|RamRoleArn|EcsRamRole|RsaKeyPair|RamRoleArnWithRoleName}` 指定认证方式
  --profile,-p         使用 `--profile <profileName>` 指定操作的配置集
  --language           使用 `--language [en|zh]` 来指定语言
  --region             使用 `--region <regionId>` 来指定访问大区
  --config-path        使用 `--config-path` 指定配置文件路径
  --access-key-id      使用 `--access-key-id <AccessKeyId>` 指定AccessKeyId
  --access-key-secret  使用 `--access-key-secret <AccessKeySecret>` 指定AccessKeySecret
  --sts-token          使用 `--sts-token <StsToken>` 指定StsToken
  --ram-role-name      使用 `--ram-role-name <RamRoleName>` 指定RamRoleName
  --ram-role-arn       使用 `--ram-role-arn <RamRoleArn>` 指定RamRoleArn
  --role-session-name  使用 `--role-session-name <RoleSessionName>` 指定RoleSessionName
  --private-key        使用 `--private-key <PrivateKey>` 指定RSA私钥
  --key-pair-name      使用 `--key-pair-name <KeyPairName>` 指定KeyPairName
  --read-timeout       使用 `--read-timeout <seconds>` 指定I/O超时时间(秒)
  --connect-timeout    使用 `--connect-timeout <seconds>` 指定请求连接超时时间(秒)
  --retry-count        使用 `--retry-count <count>` 指定重试次数
  --skip-secure-verify 使用 `--skip-secure-verify` 跳过https的证书校验 [不推荐使用]
  --expired-seconds    使用 `--expired-seconds <seconds>` 指定凭证过期时间
  --process-command    使用 `--process-command <ProcessCommand>` 指定外部程序运行命令
  --secure             使用 `--secure` 开关强制使用https方式调用
  --force              添加 `--force` 开关可跳过API与参数的合法性检查
  --endpoint           使用 `--endpoint <endpoint>` 来指定接入点地址
  --version            使用 `--version <YYYY-MM-DD>` 来指定访问的API版本
  --header             使用 `--header X-foo=bar` 来添加特定的HTTP头, 可多次添加
  --body               使用 `--body $(cat foo.json)` 来指定在RESTful调用中的HTTP包体
  --pager              使用 `--pager` 在访问分页的API时合并结果分页
  --output,-o          使用 `--output cols=Field1,Field1 [rows=jmesPath]` 使用表格方式打印输出
  --waiter             使用 `--waiter expr=<jmesPath> to=<value>` 来轮询调用OpenAPI,知道返回期望的值
  --dryrun             使用 `--dryrun` 在执行校验后打印请求包体,跳过实际运行
  --quiet,-q           使用 `--quiet` 关闭正常输出
  --help               打印帮助信息

Sample:
  aliyun ecs DescribeRegions

Products:
  sls                日志服务
  goodstech          视觉智能开放平台
  imageaudit         视觉智能开放平台
  gpdb               分析型数据库PostgreSQL版
  sales
  cloudauth          实人认证
  sts                访问控制
  jaq                移动安全
  imagerecog         视觉智能开放平台
  hpc                高性能计算 HPC
  cds                CodePipeline
  cas                证书服务
  green              内容安全
  objectdet          视觉智能开放平台
  ots                表格存储
  yundun-bastionhost 堡垒机
  fnf                FunctionFlow
  imageenhan         视觉智能开放平台
  smc                服务器迁移中心
  sas-api            态势感知
  ocr                视觉智能开放平台
  actiontrail        操作审计
  imageseg           视觉智能开放平台
  eci                Elastic Container Instances
  domain             域名
  ledgerdb           可信账本数据库
  agency             agency
  httpdns            HTTPDNS
  batchcompute       批量计算
  servicemesh        服务网格
  itaas              云投屏
  alikafka           消息队列 Kafka
  qualitycheck       智能对话分析服务
  dms-enterprise     数据管理
  pvtz               PrivateZone
  push               移动推送
  csb                云服务总线 CSB
  ons                消息队列 MQ
  petadata           HybridDB for MySQL
  kms                密钥管理服务
  ros                资源编排
  facebody           视觉智能开放平台
  cr                 容器镜像服务
  oos                运维编排服务
  ram                访问控制
  arms               业务实时监控服务 ARMS
  scdn               安全加速 SCDN
  ims                访问控制 身份管理
  resourcemanager    资源管理
  ess                弹性伸缩
  dm                 邮件推送
  chatbot            云小蜜
  bssopenapi
  cloudphoto         智能云相册
  nas                文件存储
  domain-intl        域名
  config             配置审计
  dts                数据传输
  ddospro            DDoS高防IP
  hbase              云数据库 HBase
  sae                轻量级分布式应用服务
  dds                云数据库 MongoDB 版
  elasticsearch      elasticsearch
  dcdn               全站加速
  cbn                云企业网
  ens                边缘节点服务
  r-kvstore          云数据库 Redis 版
  cms                云监控
  waf-openapi        Web应用防火墙
  cs                 容器服务
  ccc                云呼叫中心
  ddoscoo            新BGP高防IP
  polardb            云数据库 PolarDB 版
  slb                负载均衡
  cloudapi           API 网关
  drds               分布式关系型数据库服务 DRDS
  mts                媒体处理
  edas               企业级分布式应用服务EDAS
  cloudwf            云AP
  cdn                CDN
  alidns             云解析DNS
  aegis              服务器安全(安骑士)
  vod                视频点播
  vpc                专有网络VPC
  ecs                云服务器 ECS
  live               视频直播
  rds                云数据库RDS版
  emr                E-MapReduce
  iot                物联网套件

Use `aliyun --help` for more information.

3. aliyun-cli 容器镜像服务

3.1. aliyun-cli cr 帮助

运行,

aliyun help cr

输出如:

阿里云CLI命令行工具 3.0.73

Usage 1:
  aliyun cr [GET|PUT|POST|DELETE] <PathPattern> --body "..."

Usage 2 (For API with NO PARAMS in PathPattern only.):
  aliyun cr <ApiName> --parameter1 value1 --parameter2 value2 ... --body "..."

Product: cr (容器镜像服务)
Version: 2016-06-07

Available Api List:
  CancelRepoBuild         : POST /repos/[RepoNamespace]/[RepoName]/build/[BuildId]/cancel
  CreateNamespace         : PUT /namespace
  CreateRepo              : PUT /repos
  CreateRepoBuildRule     : PUT /repos/[RepoNamespace]/[RepoName]/rules
  CreateRepoWebhook       : PUT /repos/[RepoNamespace]/[RepoName]/webhooks
  CreateUserInfo          : PUT /users
  DeleteImage             : DELETE /repos/[RepoNamespace]/[RepoName]/tags/[Tag]
  DeleteNamespace         : DELETE /namespace/[Namespace]
  DeleteRepo              : DELETE /repos/[RepoNamespace]/[RepoName]
  DeleteRepoBuildRule     : DELETE /repos/[RepoNamespace]/[RepoName]/rules/[BuildRuleId]
  DeleteRepoWebhook       : DELETE /repos/[RepoNamespace]/[RepoName]/webhooks/[WebhookId]
  GetAuthorizationToken   : GET /tokens
  GetImageLayer           : GET /repos/[RepoNamespace]/[RepoName]/tags/[Tag]/layers
  GetImageManifest        : GET /repos/[RepoNamespace]/[RepoName]/tags/[Tag]/manifest
  GetNamespace            : GET /namespace/[Namespace]
  GetNamespaceList        : GET /namespace
  GetRegion               : GET /regions
  GetRegionList           : GET /regions
  GetRepo                 : GET /repos/[RepoNamespace]/[RepoName]
  GetRepoBuildList        : GET /repos/[RepoNamespace]/[RepoName]/build
  GetRepoBuildRuleList    : GET /repos/[RepoNamespace]/[RepoName]/rules
  GetRepoBuildStatus      : GET /repos/[RepoNamespace]/[RepoName]/build/[BuildId]/status
  GetRepoList             : GET /repos
  GetRepoListByNamespace  : GET /repos/[RepoNamespace]
  GetRepoTag              : GET /repos/[RepoNamespace]/[RepoName]/tags/[Tag]
  GetRepoTagScanList      : GET /repos/[RepoNamespace]/[RepoName]/tags/[Tag]/scanResult
  GetRepoTagScanStatus    : GET /repos/[RepoNamespace]/[RepoName]/tags/[Tag]/scanStatus
  GetRepoTagScanSummary   : GET /repos/[RepoNamespace]/[RepoName]/tags/[Tag]/scanCount
  GetRepoTags             : GET /repos/[RepoNamespace]/[RepoName]/tags
  GetRepoWebhook          : GET /repos/[RepoNamespace]/[RepoName]/webhooks
  StartImageScan          : PUT /repos/[RepoNamespace]/[RepoName]/tags/[Tag]/scan
  StartRepoBuildByRule    : PUT /repos/[RepoNamespace]/[RepoName]/rules/[BuildRuleId]/build
  UpdateNamespace         : POST /namespace/[Namespace]
  UpdateRepo              : POST /repos/[RepoNamespace]/[RepoName]
  UpdateRepoBuildRule     : POST /repos/[RepoNamespace]/[RepoName]/rules/[BuildRuleId]
  UpdateRepoWebhook       : POST /repos/[RepoNamespace]/[RepoName]/webhooks/[WebhookId]
  UpdateUserInfo          : POST /users

Run `aliyun cr <ApiName> --help` to get more information about this API

3.2. 查看某个 API 的帮助

如:

aliyun help cr GetRepoTags

输出如,

阿里云CLI命令行工具 3.0.73

Product:     cr (容器镜像服务)
Method:      GET
PathPattern: /repos/[RepoNamespace]/[RepoName]/tags

Parameters:
  --RepoName      String  Required
  --RepoNamespace String  Required
  --Page          Integer Optional
  --PageSize      Integer Optional

如,

aliyun help cr GetRepoListByNamespace

输出如,

阿里云CLI命令行工具 3.0.73

Product:     cr (容器镜像服务)
Method:      GET
PathPattern: /repos/[RepoNamespace]

Parameters:
  --RepoNamespace String  Required
  --Page          Integer Optional
  --PageSize      Integer Optional
  --Status        String  Optional

3.3. 示例

aliyun cr GetRepoTags --RepoNamespace <阿里云容器镜像服务-命名空间> --RepoName <阿里云容器镜像服务-镜像仓库名>
Last modification:March 25th, 2021 at 06:57 pm