ALIYUN::GPDB::SupabaseProject

ALIYUN::GPDB::SupabaseProject类型用于创建Supabase项目。

语法

{
  "Type": "ALIYUN::GPDB::SupabaseProject",
  "Properties": {
    "AccountPassword": String,
    "ProjectSpec": String,
    "ProjectName": String,
    "SecurityIPList": String,
    "VpcId": String,
    "VSwitchId": String,
    "ZoneId": String,
    "DiskPerformanceLevel": String,
    "StorageSize": Integer
  }
}

属性

属性名称

类型

必须

允许更新

描述

约束

AccountPassword

String

初始账户的密码。

约束:

  • 由大写字母、小写字母、数字、特殊字符其中三种及以上组成。

  • 支持的特殊字符:!@#$%^&*()_+-=

  • 长度为 8~32 个字符。

ProjectSpec

String

Supabase 实例规格。

默认为 1C1G。

ProjectName

String

项目名称。

命名规则如下:

  • 长度为 1~128 字符。

  • 只能包含英文字母,数字,短划线(-)和下划线(_)。

  • 必须以英文字母或下划线(_)开头。

SecurityIPList

String

IP 白名单。

127.0.0.1 表示禁止任何外部 IP 访问。

VpcId

String

VPC ID。

VSwitchId

String

交换机ID。

ZoneId

String

可用区 ID。

DiskPerformanceLevel

String

云盘 PL 等级。

默认 PL0。取值可选:

  • PL0

  • PL1

StorageSize

Integer

存储空间大小。

单位 GB,默认 1GB。

返回值

Fn::GetAtt

ProjectId:Supabase 实例 ID

示例

ROSTemplateFormatVersion: '2015-09-01'
Parameters:
  ProjectSpec:
    Type: String
    Description:
      en: Supabase instance specification, default is 1C1G.
    Required: true
  VpcId:
    AssociationProperty: ALIYUN::ECS::VPC::VPCId
    Type: String
    Description:
      en: |-
        VPC ID.
        illustrate
        You can call the DescribeRdsVpcs interface to view the available VPC IDs.
        This parameter must be passed in.
    Required: true
  ZoneId:
    AssociationProperty: ZoneId
    Type: String
    Description:
      en: |-
        Availability Zone ID.
        Description You can call the DescribeRegions interface to view the available Availability Zone ID.
    Required: true
  ProjectName:
    Type: String
    Description:
      en: |-
        Project name.The naming rules are as follows:
        The length is 1~128 characters.
        Only English letters, numbers, dash (-) and underscore (_).
        Must start with English letters or underscores (_).
    AllowedPattern: ^[a-zA-Z_][a-zA-Z0-9_-]{0,127}$
    Required: true
  SecurityIPList:
    Type: String
    Description:
      en: |-
        IP whitelist.
        127.0.0.1 means that any external IP access is prohibited. You can call the ModifySecurityIps interface to modify the IP whitelist after the instance is created.
    Required: true
  VSwitchId:
    AssociationPropertyMetadata:
      VpcId: ${VpcId}
      ZoneId: ${ZoneId}
    AssociationProperty: ALIYUN::VPC::VSwitch::VSwitchId
    Type: String
    Description:
      en: |-
        vSwitch ID.
        illustrate
        vSwitchId is required.
        The Availability Zone where the vSwitch is located must be consistent with the ZoneId.
    Required: true
  AccountPassword:
    Type: String
    Description:
      en: |-
        The password for the initial account.
        It consists of three or more types of capital letters, lowercase letters, numbers, and special characters.
        Supported special characters: !@#$%^&*()_+-=
        The length is 8~32 characters.
    AllowedPattern: ^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%^&*()_+=-]).{8,32}$
    Required: true
Resources:
  SupabaseProject:
    Type: ALIYUN::GPDB::SupabaseProject
    Properties:
      ProjectSpec:
        Ref: ProjectSpec
      VpcId:
        Ref: VpcId
      ZoneId:
        Ref: ZoneId
      ProjectName:
        Ref: ProjectName
      SecurityIPList:
        Ref: SecurityIPList
      VSwitchId:
        Ref: VSwitchId
      AccountPassword:
        Ref: AccountPassword
Outputs:
  ProjectId:
    Description: Supabase instance ID
    Value:
      Fn::GetAtt:
        - SupabaseProject
        - ProjectId
{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Parameters": {
    "ProjectSpec": {
      "Type": "String",
      "Description": {
        "en": "Supabase instance specification, default is 1C1G."
      },
      "Required": true
    },
    "VpcId": {
      "AssociationProperty": "ALIYUN::ECS::VPC::VPCId",
      "Type": "String",
      "Description": {
        "en": "VPC ID.\nillustrate\nYou can call the DescribeRdsVpcs interface to view the available VPC IDs.\nThis parameter must be passed in."
      },
      "Required": true
    },
    "ZoneId": {
      "AssociationProperty": "ZoneId",
      "Type": "String",
      "Description": {
        "en": "Availability Zone ID.\nDescription You can call the DescribeRegions interface to view the available Availability Zone ID."
      },
      "Required": true
    },
    "ProjectName": {
      "Type": "String",
      "Description": {
        "en": "Project name.The naming rules are as follows:\nThe length is 1~128 characters.\nOnly English letters, numbers, dash (-) and underscore (_).\nMust start with English letters or underscores (_)."
      },
      "AllowedPattern": "^[a-zA-Z_][a-zA-Z0-9_-]{0,127}$",
      "Required": true
    },
    "SecurityIPList": {
      "Type": "String",
      "Description": {
        "en": "IP whitelist.\n127.0.0.1 means that any external IP access is prohibited. You can call the ModifySecurityIps interface to modify the IP whitelist after the instance is created."
      },
      "Required": true
    },
    "VSwitchId": {
      "AssociationPropertyMetadata": {
        "VpcId": "${VpcId}",
        "ZoneId": "${ZoneId}"
      },
      "AssociationProperty": "ALIYUN::VPC::VSwitch::VSwitchId",
      "Type": "String",
      "Description": {
        "en": "vSwitch ID.\nillustrate\nvSwitchId is required.\nThe Availability Zone where the vSwitch is located must be consistent with the ZoneId."
      },
      "Required": true
    },
    "AccountPassword": {
      "Type": "String",
      "Description": {
        "en": "The password for the initial account.\nIt consists of three or more types of capital letters, lowercase letters, numbers, and special characters.\nSupported special characters: !@#$%^&*()_+-=\nThe length is 8~32 characters."
      },
      "AllowedPattern": "^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[!@#$%^&*()_+=-]).{8,32}$",
      "Required": true
    }
  },
  "Resources": {
    "SupabaseProject": {
      "Type": "ALIYUN::GPDB::SupabaseProject",
      "Properties": {
        "ProjectSpec": {
          "Ref": "ProjectSpec"
        },
        "VpcId": {
          "Ref": "VpcId"
        },
        "ZoneId": {
          "Ref": "ZoneId"
        },
        "ProjectName": {
          "Ref": "ProjectName"
        },
        "SecurityIPList": {
          "Ref": "SecurityIPList"
        },
        "VSwitchId": {
          "Ref": "VSwitchId"
        },
        "AccountPassword": {
          "Ref": "AccountPassword"
        }
      }
    }
  },
  "Outputs": {
    "ProjectId": {
      "Description": "Supabase instance ID",
      "Value": {
        "Fn::GetAtt": [
          "SupabaseProject",
          "ProjectId"
        ]
      }
    }
  }
}