ROS integration example

更新时间:
复制 MD 格式

Use Resource Orchestration Service (ROS) to provision DCDN resources. The following Resource Orchestration Service template example automatically adds a domain to DCDN.

Resource Orchestration Service (ROS)

  • Resource Orchestration Service (ROS) simplifies cloud resource management on Alibaba Cloud. You write a template to define the required Alibaba Cloud resources, such as ECS instances and RDS database instances, and their dependencies. The ROS orchestration engine automatically provisions and configures all resources in the template for automated deployment and O&M. For more information, see What is Resource Orchestration Service?.

  • You can use ROS to create DCDN resources. Only regular resources can be orchestrated.

Permissions

This example adds a DCDN domain. By default, Resource Orchestration Service uses the credentials of the current console user, who must have the following permission:

  • AliyunDCDNFullAccess: Manages DCDN resources.

An Alibaba Cloud account has permissions on all API operations, which poses security risks. We recommend that you use a RAM user for API access or routine O&M. Before you call API operations, grant the RAM user the required permissions based on your business requirements. The RAM user must have permissions to manage DCDN resources. For more information, see System policies for DCDN.

Procedure

  1. Log on to the ROS console. In the top navigation bar, click the region drop-down list and select the target region.

  2. In the left-side navigation pane, click Stacks. Then, choose Create Stack > Use ROS.

    • Specify Template: Select Select an Existing Template.

    • Template Import Method: Select Enter Template Content.

  3. In the Template Content section, select ROS and enter your code.

    For the syntax, description, and examples of creating a DCDN instance, see ALIYUN::DCDN::Domain. The example adds an accelerated domain.

    YAML format

    ROSTemplateFormatVersion: '2015-09-01'
    Parameters:
      CheckUrl:
        Description: ''
        Type: String
      DomainName:
        Description: 'The name of the accelerated domain. You can specify only one domain
          name.  Wildcard domain names are supported. Wildcard domain names must start
          with a period (.). Example: .a.com.'
        Type: String
      ResourceGroupId:
        Description: The ID of the resource group. If you do not specify this parameter,
          the system automatically uses the ID of the default resource group.
        Type: String
      SSLPub:
        Description: Indicates the public key of the certificate if the HTTPS protocol
          is enabled.
        Type: String
      Scope:
        Description: 'The acceleration scope. Valid values: domestic (default): mainland
          China, overseas: outside mainland China, global: worldwide.'
        Type: String
      Sources:
        Description: The origin information.
        Type: Json
      TopLevelDomain:
        Description: ''
        Type: String
    Resources:
      DCDNDomain:
        Properties:
          CheckUrl:
            Ref: CheckUrl
          DomainName:
            Ref: DomainName
          ResourceGroupId:
            Ref: ResourceGroupId
          Scope:
            Ref: Scope
          Sources:
            Ref: Sources
          TopLevelDomain:
            Ref: TopLevelDomain
        Type: ALIYUN::DCDN::Domain
    Outputs:
      CertName:
        Description: The name of the certificate.
        Value:
          Fn::GetAtt:
          - DCDNDomain
          - CertName
      Cname:
        Description: The canonical name (CNAME) of the accelerated domain.
        Value:
          Fn::GetAtt:
          - DCDNDomain
          - Cname
      Description:
        Description: The reason for the review failure.
        Value:
          Fn::GetAtt:
          - DCDNDomain
          - Description
      DomainName:
        Description: 'The name of the accelerated domain. You can specify only one domain
          name.  Wildcard domain names are supported. Wildcard domain names must start
          with a period (.). Example: .a.com.'
        Value:
          Fn::GetAtt:
          - DCDNDomain
          - DomainName
      ResourceGroupId:
        Description: The ID of the resource group. If you do not specify this parameter,
          the system automatically uses the ID of the default resource group.
        Value:
          Fn::GetAtt:
          - DCDNDomain
          - ResourceGroupId
      SSLProtocol:
        Description: 'Indicates whether the SSL certificate is enabled. Valid values:  on:
          enabled off: disabled'
        Value:
          Fn::GetAtt:
          - DCDNDomain
          - SSLProtocol
      SSLPub:
        Description: Indicates the public key of the certificate if the HTTPS protocol
          is enabled.
        Value:
          Fn::GetAtt:
          - DCDNDomain
          - SSLPub
      Scope:
        Description: 'The acceleration scope. Valid values: domestic (default): mainland
          China, overseas: outside mainland China, global: worldwide.'
        Value:
          Fn::GetAtt:
          - DCDNDomain
          - Scope
      Sources:
        Description: The origin information.
        Value:
          Fn::GetAtt:
          - DCDNDomain
          - Sources

    JSON format

    {
      "ROSTemplateFormatVersion": "2015-09-01",
      "Parameters": {
        "Status": {
          "Type": "String",
          "Description": "The status of the accelerated domain.  online: The domain is enabled. offline: The domain is disabled. configuring: The domain is being configured. configure_failed: The domain configuration failed. checking: The domain is under review. check_failed: The domain failed the review."
        },
        "SecurityToken": {
          "Type": "String",
          "Description": ""
        },
        "CheckUrl": {
          "Type": "String",
          "Description": ""
        },
        "ResourceGroupId": {
          "Type": "String",
          "Description": "The ID of the resource group. If you do not specify this parameter, the system automatically uses the ID of the default resource group."
        },
        "Scope": {
          "Type": "String",
          "Description": "The acceleration scope. Valid values: domestic (default): mainland China, overseas: outside mainland China, global: worldwide."
        },
        "DomainName": {
          "Type": "String",
          "Description": "The name of the accelerated domain. You can specify only one domain name.  Wildcard domain names are supported. Wildcard domain names must start with a period (.). Example: .a.com."
        },
        "TopLevelDomain": {
          "Type": "String",
          "Description": ""
        },
        "Sources": {
          "Type": "Json",
          "Description": "The origin information."
        }
      },
      "Resources": {
        "DCDNDomain": {
          "Type": "ALIYUN::DCDN::Domain",
          "Properties": {
            "SecurityToken": {
              "Ref": "SecurityToken"
            },
            "CheckUrl": {
              "Ref": "CheckUrl"
            },
            "ResourceGroupId": {
              "Ref": "ResourceGroupId"
            },
            "Scope": {
              "Ref": "Scope"
            },
            "DomainName": {
              "Ref": "DomainName"
            },
            "SSLPub": {
              "Ref": "SSLPub"
            },
            "CertName": {
              "Ref": "CertName"
            },
            "TopLevelDomain": {
              "Ref": "TopLevelDomain"
            },
            "Sources": {
              "Ref": "Sources"
            }
          }
        }
      },
      "Outputs": {
        "Description": {
          "Description": "The reason for the review failure.",
          "Value": {
            "Fn::GetAtt": [
              "DCDNDomain",
              "Description"
            ]
          }
        },
        "ResourceGroupId": {
          "Description": "The ID of the resource group. If you do not specify this parameter, the system automatically uses the ID of the default resource group.",
          "Value": {
            "Fn::GetAtt": [
              "DCDNDomain",
              "ResourceGroupId"
            ]
          }
        },
        "Scope": {
          "Description": "The acceleration scope. Valid values: domestic (default): mainland China, overseas: outside mainland China, global: worldwide.",
          "Value": {
            "Fn::GetAtt": [
              "DCDNDomain",
              "Scope"
            ]
          }
        },
        "DomainName": {
          "Description": "The name of the accelerated domain. You can specify only one domain name.  Wildcard domain names are supported. Wildcard domain names must start with a period (.). Example: .a.com.",
          "Value": {
            "Fn::GetAtt": [
              "DCDNDomain",
              "DomainName"
            ]
          }
        },
        "SSLPub": {
          "Description": "Indicates the public key of the certificate if the HTTPS protocol is enabled.",
          "Value": {
            "Fn::GetAtt": [
              "DCDNDomain",
              "SSLPub"
            ]
          }
        },
        "CertName": {
          "Description": "The name of the certificate.",
          "Value": {
            "Fn::GetAtt": [
              "DCDNDomain",
              "CertName"
            ]
          }
        },
        "Cname": {
          "Description": "The canonical name (CNAME) of the accelerated domain.",
          "Value": {
            "Fn::GetAtt": [
              "DCDNDomain",
              "Cname"
            ]
          }
        },
        "Sources": {
          "Description": "The origin information.",
          "Value": {
            "Fn::GetAtt": [
              "DCDNDomain",
              "Sources"
            ]
          }
        },
        "SSLProtocol": {
          "Description": "Indicates whether the SSL certificate is enabled. Valid values:  on: enabled off: disabled",
          "Value": {
            "Fn::GetAtt": [
              "DCDNDomain",
              "SSLProtocol"
            ]
          }
        }
      }
    }
  4. Click Create.

  5. After the stack is created, you can view the added domain in the DCDN console or by using the OpenAPI or SDKs.

    p826771