全部产品
Search
文档中心

资源编排:ALIYUN::CR::InstanceV2

更新时间:Jul 15, 2026

ALIYUN::CR::InstanceV2类型用于创建新版容器镜像企业版实例。

语法

{
  "Type": "ALIYUN::CR::InstanceV2",
  "Properties": {
    "InstanceName": String,
    "InstanceType": String,
    "PaymentType": String,
    "CustomOssBucket": String,
    "DefaultOssBucket": Boolean,
    "ImageScanner": String,
    "Period": Integer,
    "Password": String,
    "ResourceGroupId": String,
    "RenewalStatus": String,
    "RenewPeriod": Integer
  }
}

属性

属性名称

类型

必须

允许更新

描述

约束

InstanceName

String

实例名称。

取值为3~30个小写字母、数字和分隔符"-"组成(分隔符不能位于首尾)。

InstanceType

String

容器镜像服务企业版实例规格的取值配置。

取值范围:

  • Basic:基础版实例。

  • Standard:标准版实例。

  • Advanced:高级版实例。

PaymentType

String

付费类型,

取值:

  • Subscription:预付费。

CustomOssBucket

String

自定义的OSS Bucket名称。

DefaultOssBucket

Boolean

是否使用默认的OSS Bucket。

取值:

  • true:使用默认的OSS Bucket。

  • false:使用自定义的OSS Bucket。

ImageScanner

String

容器镜像服务企业版使用的安全扫描引擎。

取值:

  • ACR:使用默认提供的Trivy扫描引擎。

  • SAS:使用增强版云安全扫描引擎。

Password

String

登录密码,

长度为8~32位,必须至少包含字母、符号、数字中的两种。

Period

Integer

预付费周期。

单位为月,按年付费的产品请输入12的整数倍。

  • 创建预付费实例时必须设置该参数。

RenewalStatus

String

自动续费状态,

取值:

  • AutoRenewal:自动续费。

  • ManualRenewal:手动续费。

默认值为ManualRenewal。

RenewPeriod

Integer

自动续费周期,

单位为月。

  • 当RenewalStatus设置为AutoRenewal时,必须设置该参数。

ResourceGroupId

String

资源组ID。

返回值

Fn::GetAtt

  • InstanceName:容器镜像服务实例的名称。

  • ModifiedTime:实例最后修改的时间。

  • ResourceGroupId:资源组ID。

  • EndTime:实例的到期时间。

  • InstanceIssue:实例发生的问题。

  • InstanceId:容器镜像服务实例的ID。

  • CreateTime:实例的创建时间。

  • InstanceEndpoints:实例的网络访问端点。

  • RenewalStatus:自动续费状态。

  • RenewPeriod:自动续费周期,单位为月。

  • PaymentType:付费类型。

示例

场景 1 :创建容器镜像服务企业版实例(基础版)

ROSTemplateFormatVersion: '2015-09-01'
Description:
  zh-cn: 创建容器镜像服务企业版实例(基础版),用于私有镜像仓库。
Parameters:
  InstanceName:
    Type: String
    Label: 容器镜像实例名称
    Description: 实例名称,3-30 位小写字母、数字和连字符(-),不能以连字符开头或结尾。
    MinLength: 3
    MaxLength: 30
    Default: acr-enterprise-demo
Resources:
  Instance:
    Type: ALIYUN::CR::InstanceV2
    Properties:
      InstanceName:
        Ref: InstanceName
      PaymentType: Subscription
      InstanceType: Basic
      Period: 1
      DefaultOssBucket: true
Outputs:
  InstanceId:
    Description: 容器镜像实例 ID。
    Value:
      Fn::GetAtt:
        - Instance
        - InstanceId
  InstanceName:
    Description: 容器镜像实例名称。
    Value:
      Fn::GetAtt:
        - Instance
        - InstanceName
  InstanceEndpoints:
    Description: 容器镜像实例网络访问域名。
    Value:
      Fn::GetAtt:
        - Instance
        - InstanceEndpoints
  EndTime:
    Description: 容器镜像实例到期时间。
    Value:
      Fn::GetAtt:
        - Instance
        - EndTime
{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Description": {
    "zh-cn": "创建容器镜像服务企业版实例(基础版),用于私有镜像仓库。"
  },
  "Parameters": {
    "InstanceName": {
      "Type": "String",
      "Label": "容器镜像实例名称",
      "Description": "实例名称,3-30 位小写字母、数字和连字符(-),不能以连字符开头或结尾。",
      "MinLength": 3,
      "MaxLength": 30,
      "Default": "acr-enterprise-demo"
    }
  },
  "Resources": {
    "Instance": {
      "Type": "ALIYUN::CR::InstanceV2",
      "Properties": {
        "InstanceName": {
          "Ref": "InstanceName"
        },
        "PaymentType": "Subscription",
        "InstanceType": "Basic",
        "Period": 1,
        "DefaultOssBucket": true
      }
    }
  },
  "Outputs": {
    "InstanceId": {
      "Description": "容器镜像实例 ID。",
      "Value": {
        "Fn::GetAtt": ["Instance", "InstanceId"]
      }
    },
    "InstanceName": {
      "Description": "容器镜像实例名称。",
      "Value": {
        "Fn::GetAtt": ["Instance", "InstanceName"]
      }
    },
    "InstanceEndpoints": {
      "Description": "容器镜像实例网络访问域名。",
      "Value": {
        "Fn::GetAtt": ["Instance", "InstanceEndpoints"]
      }
    },
    "EndTime": {
      "Description": "容器镜像实例到期时间。",
      "Value": {
        "Fn::GetAtt": ["Instance", "EndTime"]
      }
    }
  }
}

场景 2 :创建标准版实例并配置自动续费、SAS 镜像安全扫描、自定义OSS存储与资源组。

ROSTemplateFormatVersion: '2015-09-01'
Description:
  zh-cn: 创建容器镜像服务企业版实例并配置自动续费、SAS 镜像安全扫描、自定义 OSS 存储及资源组。
Parameters:
  InstanceName:
    Type: String
    Label: 容器镜像实例名称
    Description: 实例名称,3-30 位小写字母、数字和连字符(-),不能以连字符开头或结尾。
    MinLength: 3
    MaxLength: 30
    Default: acr-enterprise-prod
  InstanceType:
    Type: String
    Label: 实例规格
    Description: 容器镜像服务企业版实例规格。Basic:基础版;Standard:标准版;Advanced:高级版。
    AllowedValues:
      - Basic
      - Standard
      - Advanced
    Default: Standard
  Period:
    Type: Number
    Label: 购买时长
    Description: 预付费购买时长,单位为月。年付产品请输入 12 的整数倍。
    AllowedValues:
      - 1
      - 2
      - 3
      - 6
      - 12
      - 24
      - 36
      - 48
      - 60
    Default: 12
  RenewalStatus:
    Type: String
    Label: 续费方式
    Description: 自动续费状态。AutoRenewal:自动续费;ManualRenewal:手动续费。
    AllowedValues:
      - AutoRenewal
      - ManualRenewal
    Default: ManualRenewal
  RenewPeriod:
    Type: Number
    Label: 自动续费周期
    Description: 自动续费周期,单位为月。仅在 RenewalStatus 为 AutoRenewal 时生效。
    MinValue: 1
    MaxValue: 12
    Default: 1
  ImageScanner:
    Type: String
    Label: 镜像安全扫描引擎
    Description: 镜像安全扫描引擎。ACR:默认 Trivy 扫描引擎;SAS:增强云安全扫描引擎。
    AllowedValues:
      - ACR
      - SAS
    Default: SAS
  UseDefaultOssBucket:
    Type: Boolean
    Label: 使用默认 OSS 存储桶
    Description: true 使用默认 OSS 存储桶;false 使用自定义 OSS 存储桶。
    Default: true
  CustomOssBucket:
    Type: String
    Label: 自定义 OSS 存储桶名称
    Description: 自定义 OSS 存储桶名称。仅在 UseDefaultOssBucket 为 false 时生效。
    Default: ''
  ResourceGroupId:
    Type: String
    Label: 资源组 ID
    Description: 资源组 ID。可登录资源组控制台查看,留空则使用默认资源组。
    AssociationProperty: 'ALIYUN::ResourceManager::ResourceGroup::ResourceGroupId'
    Default: ''
Conditions:
  IsAutoRenewal:
    Fn::Equals:
      - Ref: RenewalStatus
      - AutoRenewal
  UseCustomBucket:
    Fn::Equals:
      - Ref: UseDefaultOssBucket
      - false
  HasResourceGroup:
    Fn::Not:
      - Fn::Equals:
          - Ref: ResourceGroupId
          - ''
Resources:
  Instance:
    Type: ALIYUN::CR::InstanceV2
    Properties:
      InstanceName:
        Ref: InstanceName
      PaymentType: Subscription
      InstanceType:
        Ref: InstanceType
      Period:
        Ref: Period
      RenewalStatus:
        Ref: RenewalStatus
      RenewPeriod:
        Fn::If:
          - IsAutoRenewal
          - Ref: RenewPeriod
          - Ref: ALIYUN::NoValue
      ImageScanner:
        Ref: ImageScanner
      DefaultOssBucket:
        Ref: UseDefaultOssBucket
      CustomOssBucket:
        Fn::If:
          - UseCustomBucket
          - Ref: CustomOssBucket
          - Ref: ALIYUN::NoValue
      ResourceGroupId:
        Fn::If:
          - HasResourceGroup
          - Ref: ResourceGroupId
          - Ref: ALIYUN::NoValue
Outputs:
  InstanceId:
    Description: 容器镜像实例 ID。
    Value:
      Fn::GetAtt:
        - Instance
        - InstanceId
  InstanceName:
    Description: 容器镜像实例名称。
    Value:
      Fn::GetAtt:
        - Instance
        - InstanceName
  InstanceEndpoints:
    Description: 容器镜像实例网络访问域名。
    Value:
      Fn::GetAtt:
        - Instance
        - InstanceEndpoints
  RenewalStatus:
    Description: 自动续费状态。
    Value:
      Fn::GetAtt:
        - Instance
        - RenewalStatus
  ImageScanner:
    Description: 镜像安全扫描引擎。
    Value:
      Ref: ImageScanner
  EndTime:
    Description: 容器镜像实例到期时间。
    Value:
      Fn::GetAtt:
        - Instance
        - EndTime
{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Description": {
    "zh-cn": "创建容器镜像服务企业版实例并配置自动续费、SAS 镜像安全扫描、自定义 OSS 存储及资源组。"
  },
  "Parameters": {
    "InstanceName": {
      "Type": "String",
      "Label": "容器镜像实例名称",
      "Description": "实例名称,3-30 位小写字母、数字和连字符(-),不能以连字符开头或结尾。",
      "MinLength": 3,
      "MaxLength": 30,
      "Default": "acr-enterprise-prod"
    },
    "InstanceType": {
      "Type": "String",
      "Label": "实例规格",
      "Description": "容器镜像服务企业版实例规格。Basic:基础版;Standard:标准版;Advanced:高级版。",
      "AllowedValues": ["Basic", "Standard", "Advanced"],
      "Default": "Standard"
    },
    "Period": {
      "Type": "Number",
      "Label": "购买时长",
      "Description": "预付费购买时长,单位为月。年付产品请输入 12 的整数倍。",
      "AllowedValues": [1, 2, 3, 6, 12, 24, 36, 48, 60],
      "Default": 12
    },
    "RenewalStatus": {
      "Type": "String",
      "Label": "续费方式",
      "Description": "自动续费状态。AutoRenewal:自动续费;ManualRenewal:手动续费。",
      "AllowedValues": ["AutoRenewal", "ManualRenewal"],
      "Default": "ManualRenewal"
    },
    "RenewPeriod": {
      "Type": "Number",
      "Label": "自动续费周期",
      "Description": "自动续费周期,单位为月。仅在 RenewalStatus 为 AutoRenewal 时生效。",
      "MinValue": 1,
      "MaxValue": 12,
      "Default": 1
    },
    "ImageScanner": {
      "Type": "String",
      "Label": "镜像安全扫描引擎",
      "Description": "镜像安全扫描引擎。ACR:默认 Trivy 扫描引擎;SAS:增强云安全扫描引擎。",
      "AllowedValues": ["ACR", "SAS"],
      "Default": "SAS"
    },
    "UseDefaultOssBucket": {
      "Type": "Boolean",
      "Label": "使用默认 OSS 存储桶",
      "Description": "true 使用默认 OSS 存储桶;false 使用自定义 OSS 存储桶。",
      "Default": true
    },
    "CustomOssBucket": {
      "Type": "String",
      "Label": "自定义 OSS 存储桶名称",
      "Description": "自定义 OSS 存储桶名称。仅在 UseDefaultOssBucket 为 false 时生效。",
      "Default": ""
    },
    "ResourceGroupId": {
      "Type": "String",
      "Label": "资源组 ID",
      "Description": "资源组 ID。可登录资源组控制台查看,留空则使用默认资源组。",
      "AssociationProperty": "ALIYUN::ResourceManager::ResourceGroup::ResourceGroupId",
      "Default": ""
    }
  },
  "Conditions": {
    "IsAutoRenewal": {
      "Fn::Equals": [{ "Ref": "RenewalStatus" }, "AutoRenewal"]
    },
    "UseCustomBucket": {
      "Fn::Equals": [{ "Ref": "UseDefaultOssBucket" }, false]
    },
    "HasResourceGroup": {
      "Fn::Not": [{ "Fn::Equals": [{ "Ref": "ResourceGroupId" }, ""] }]
    }
  },
  "Resources": {
    "Instance": {
      "Type": "ALIYUN::CR::InstanceV2",
      "Properties": {
        "InstanceName": { "Ref": "InstanceName" },
        "PaymentType": "Subscription",
        "InstanceType": { "Ref": "InstanceType" },
        "Period": { "Ref": "Period" },
        "RenewalStatus": { "Ref": "RenewalStatus" },
        "RenewPeriod": {
          "Fn::If": ["IsAutoRenewal", { "Ref": "RenewPeriod" }, { "Ref": "ALIYUN::NoValue" }]
        },
        "ImageScanner": { "Ref": "ImageScanner" },
        "DefaultOssBucket": { "Ref": "UseDefaultOssBucket" },
        "CustomOssBucket": {
          "Fn::If": ["UseCustomBucket", { "Ref": "CustomOssBucket" }, { "Ref": "ALIYUN::NoValue" }]
        },
        "ResourceGroupId": {
          "Fn::If": ["HasResourceGroup", { "Ref": "ResourceGroupId" }, { "Ref": "ALIYUN::NoValue" }]
        }
      }
    }
  },
  "Outputs": {
    "InstanceId": {
      "Description": "容器镜像实例 ID。",
      "Value": { "Fn::GetAtt": ["Instance", "InstanceId"] }
    },
    "InstanceName": {
      "Description": "容器镜像实例名称。",
      "Value": { "Fn::GetAtt": ["Instance", "InstanceName"] }
    },
    "InstanceEndpoints": {
      "Description": "容器镜像实例网络访问域名。",
      "Value": { "Fn::GetAtt": ["Instance", "InstanceEndpoints"] }
    },
    "RenewalStatus": {
      "Description": "自动续费状态。",
      "Value": { "Fn::GetAtt": ["Instance", "RenewalStatus"] }
    },
    "ImageScanner": {
      "Description": "镜像安全扫描引擎。",
      "Value": { "Ref": "ImageScanner" }
    },
    "EndTime": {
      "Description": "容器镜像实例到期时间。",
      "Value": { "Fn::GetAtt": ["Instance", "EndTime"] }
    }
  }
}

场景 3 :创建企业版实例并配置命名空间、镜像仓库、RAM推送账号与VPC私网访问。

ROSTemplateFormatVersion: '2015-09-01'
Description:
  zh-cn: 创建容器镜像服务企业版实例,配置命名空间、镜像仓库、RAM 推送账号及 VPC 私网访问,适用于企业级镜像仓库的端到端初始化。
Parameters:
  InstanceName:
    Type: String
    Label: 容器镜像实例名称
    Description: 实例名称,3-30 位小写字母、数字和连字符(-),不能以连字符开头或结尾。
    MinLength: 3
    MaxLength: 30
    Default: acr-enterprise-ci
  Namespace:
    Type: String
    Label: 命名空间名称
    Description: 镜像仓库命名空间名称,2-30 位字符。
    MinLength: 2
    MaxLength: 30
    Default: app
  RepoName:
    Type: String
    Label: 仓库名称
    Description: 镜像仓库名称,1-64 位字符。
    MinLength: 1
    MaxLength: 64
    Default: web
  RamUserName:
    Type: String
    Label: RAM 用户名称
    Description: 用于推送镜像的 RAM 子账号名称。
    Default: acr-push-user
  ZoneId:
    Type: String
    Label: 可用区
    Description: VPC 交换机所属可用区。
    AssociationProperty: ALIYUN::ECS::Instance::ZoneId
Resources:
  Instance:
    Type: ALIYUN::CR::InstanceV2
    Properties:
      InstanceName:
        Ref: InstanceName
      PaymentType: Subscription
      InstanceType: Basic
      Period: 1
      DefaultOssBucket: true
  CrNamespace:
    Type: ALIYUN::CR::Namespace
    Properties:
      InstanceId:
        Fn::GetAtt:
          - Instance
          - InstanceId
      Namespace:
        Ref: Namespace
      AutoCreate: false
      DefaultVisibility: PRIVATE
    DependsOn: Instance
  Repository:
    Type: ALIYUN::CR::Repository
    Properties:
      InstanceId:
        Fn::GetAtt:
          - Instance
          - InstanceId
      RepoNamespace:
        Ref: Namespace
      RepoName:
        Ref: RepoName
      RepoType: PRIVATE
      Summary: 由 ROS 模板创建的演示镜像仓库
      Detail: 该仓库用于存放应用镜像,可通过 RAM 推送账号进行推送和拉取。
    DependsOn: CrNamespace
  RamUser:
    Type: ALIYUN::RAM::User
    Properties:
      UserName:
        Ref: RamUserName
      DisplayName: ACR Push User
      Comments: 用于推送镜像到容器镜像服务企业版实例。
      DeletionForce: true
      PolicyAttachments:
        System:
          - AliyunContainerRegistryFullAccess
  AccessKey:
    Type: ALIYUN::RAM::AccessKey
    Properties:
      UserName:
        Fn::GetAtt:
          - RamUser
          - UserName
    DependsOn: RamUser
  Vpc:
    Type: ALIYUN::ECS::VPC
    Properties:
      CidrBlock: 192.168.0.0/16
      VpcName: acr-demo-vpc
  VSwitch:
    Type: ALIYUN::ECS::VSwitch
    Properties:
      ZoneId:
        Ref: ZoneId
      CidrBlock: 192.168.0.0/24
      VpcId:
        Ref: Vpc
      VSwitchName: acr-demo-vsw
  VpcLink:
    Type: ALIYUN::CR::InstanceVpcEndpointLinkedVpc
    Properties:
      InstanceId:
        Fn::GetAtt:
          - Instance
          - InstanceId
      VpcId:
        Ref: Vpc
      VswitchId:
        Ref: VSwitch
      ModuleName: Registry
      EnableCreateDNSRecordInPvzt: true
    DependsOn: Instance
Outputs:
  InstanceId:
    Description: 容器镜像实例 ID。
    Value:
      Fn::GetAtt:
        - Instance
        - InstanceId
  InstanceEndpoints:
    Description: 容器镜像实例网络访问域名(公网与 VPC 域名)。
    Value:
      Fn::GetAtt:
        - Instance
        - InstanceEndpoints
  NamespaceName:
    Description: 命名空间名称。
    Value:
      Fn::GetAtt:
        - CrNamespace
        - Namespace
  NamespaceId:
    Description: 命名空间 ID。
    Value:
      Fn::GetAtt:
        - CrNamespace
        - NamespaceId
  RepoId:
    Description: 镜像仓库 ID。
    Value:
      Fn::GetAtt:
        - Repository
        - RepoId
  RepoName:
    Description: 镜像仓库名称。
    Value:
      Fn::GetAtt:
        - Repository
        - RepoName
  AccessKeyId:
    Description: RAM 推送账号的 AccessKey ID,用于 docker login 及镜像推送。
    Value:
      Fn::GetAtt:
        - AccessKey
        - AccessKeyId
  AccessKeySecret:
    Description: RAM 推送账号的 AccessKey Secret,请妥善保管。docker login 时将其作为密码。
    Value:
      Fn::GetAtt:
        - AccessKey
        - AccessKeySecret
  LoginCommand:
    Description: 容器镜像登录命令示例(请将 <域名> 替换为 InstanceEndpoints 中的公网域名)。
    Value:
      Fn::Sub:
        - docker login --username '${AccessKeyId}' --password-stdin <域名>
        - AccessKeyId:
            Fn::GetAtt:
              - AccessKey
              - AccessKeyId
{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Description": {
    "zh-cn": "创建容器镜像服务企业版实例,配置命名空间、镜像仓库、RAM 推送账号及 VPC 私网访问,适用于企业级镜像仓库的端到端初始化。"
  },
  "Parameters": {
    "InstanceName": {
      "Type": "String",
      "Label": "容器镜像实例名称",
      "Description": "实例名称,3-30 位小写字母、数字和连字符(-),不能以连字符开头或结尾。",
      "MinLength": 3,
      "MaxLength": 30,
      "Default": "acr-enterprise-ci"
    },
    "Namespace": {
      "Type": "String",
      "Label": "命名空间名称",
      "Description": "镜像仓库命名空间名称,2-30 位字符。",
      "MinLength": 2,
      "MaxLength": 30,
      "Default": "app"
    },
    "RepoName": {
      "Type": "String",
      "Label": "仓库名称",
      "Description": "镜像仓库名称,1-64 位字符。",
      "MinLength": 1,
      "MaxLength": 64,
      "Default": "web"
    },
    "RamUserName": {
      "Type": "String",
      "Label": "RAM 用户名称",
      "Description": "用于推送镜像的 RAM 子账号名称。",
      "Default": "acr-push-user"
    },
    "ZoneId": {
      "Type": "String",
      "Label": "可用区",
      "Description": "VPC 交换机所属可用区。",
      "AssociationProperty": "ALIYUN::ECS::Instance::ZoneId"
    }
  },
  "Resources": {
    "Instance": {
      "Type": "ALIYUN::CR::InstanceV2",
      "Properties": {
        "InstanceName": { "Ref": "InstanceName" },
        "PaymentType": "Subscription",
        "InstanceType": "Basic",
        "Period": 1,
        "DefaultOssBucket": true
      }
    },
    "CrNamespace": {
      "Type": "ALIYUN::CR::Namespace",
      "Properties": {
        "InstanceId": { "Fn::GetAtt": ["Instance", "InstanceId"] },
        "Namespace": { "Ref": "Namespace" },
        "AutoCreate": false,
        "DefaultVisibility": "PRIVATE"
      },
      "DependsOn": "Instance"
    },
    "Repository": {
      "Type": "ALIYUN::CR::Repository",
      "Properties": {
        "InstanceId": { "Fn::GetAtt": ["Instance", "InstanceId"] },
        "RepoNamespace": { "Ref": "Namespace" },
        "RepoName": { "Ref": "RepoName" },
        "RepoType": "PRIVATE",
        "Summary": "由 ROS 模板创建的演示镜像仓库",
        "Detail": "该仓库用于存放应用镜像,可通过 RAM 推送账号进行推送和拉取。"
      },
      "DependsOn": "CrNamespace"
    },
    "RamUser": {
      "Type": "ALIYUN::RAM::User",
      "Properties": {
        "UserName": { "Ref": "RamUserName" },
        "DisplayName": "ACR Push User",
        "Comments": "用于推送镜像到容器镜像服务企业版实例。",
        "DeletionForce": true,
        "PolicyAttachments": {
          "System": ["AliyunContainerRegistryFullAccess"]
        }
      }
    },
    "AccessKey": {
      "Type": "ALIYUN::RAM::AccessKey",
      "Properties": {
        "UserName": { "Fn::GetAtt": ["RamUser", "UserName"] }
      },
      "DependsOn": "RamUser"
    },
    "Vpc": {
      "Type": "ALIYUN::ECS::VPC",
      "Properties": {
        "CidrBlock": "192.168.0.0/16",
        "VpcName": "acr-demo-vpc"
      }
    },
    "VSwitch": {
      "Type": "ALIYUN::ECS::VSwitch",
      "Properties": {
        "ZoneId": { "Ref": "ZoneId" },
        "CidrBlock": "192.168.0.0/24",
        "VpcId": { "Ref": "Vpc" },
        "VSwitchName": "acr-demo-vsw"
      }
    },
    "VpcLink": {
      "Type": "ALIYUN::CR::InstanceVpcEndpointLinkedVpc",
      "Properties": {
        "InstanceId": { "Fn::GetAtt": ["Instance", "InstanceId"] },
        "VpcId": { "Ref": "Vpc" },
        "VswitchId": { "Ref": "VSwitch" },
        "ModuleName": "Registry",
        "EnableCreateDNSRecordInPvzt": true
      },
      "DependsOn": "Instance"
    }
  },
  "Outputs": {
    "InstanceId": {
      "Description": "容器镜像实例 ID。",
      "Value": { "Fn::GetAtt": ["Instance", "InstanceId"] }
    },
    "InstanceEndpoints": {
      "Description": "容器镜像实例网络访问域名(公网与 VPC 域名)。",
      "Value": { "Fn::GetAtt": ["Instance", "InstanceEndpoints"] }
    },
    "NamespaceName": {
      "Description": "命名空间名称。",
      "Value": { "Fn::GetAtt": ["CrNamespace", "Namespace"] }
    },
    "NamespaceId": {
      "Description": "命名空间 ID。",
      "Value": { "Fn::GetAtt": ["CrNamespace", "NamespaceId"] }
    },
    "RepoId": {
      "Description": "镜像仓库 ID。",
      "Value": { "Fn::GetAtt": ["Repository", "RepoId"] }
    },
    "RepoName": {
      "Description": "镜像仓库名称。",
      "Value": { "Fn::GetAtt": ["Repository", "RepoName"] }
    },
    "AccessKeyId": {
      "Description": "RAM 推送账号的 AccessKey ID,用于 docker login 及镜像推送。",
      "Value": { "Fn::GetAtt": ["AccessKey", "AccessKeyId"] }
    },
    "AccessKeySecret": {
      "Description": "RAM 推送账号的 AccessKey Secret,请妥善保管。docker login 时将其作为密码。",
      "Value": { "Fn::GetAtt": ["AccessKey", "AccessKeySecret"] }
    },
    "LoginCommand": {
      "Description": "容器镜像登录命令示例(请将 <域名> 替换为 InstanceEndpoints 中的公网域名)。",
      "Value": {
        "Fn::Sub": [
          "docker login --username '${AccessKeyId}' --password-stdin <域名>",
          { "AccessKeyId": { "Fn::GetAtt": ["AccessKey", "AccessKeyId"] } }
        ]
      }
    }
  }
}