Criação de uma instância de DCS
Função
Essa API é usada para criar uma instância de DCS que é faturada no modo de pagamento por uso.
URI
POST /v2/{project_id}/instances
Parâmetro |
Obrigatório |
Tipo |
Descrição |
---|---|---|---|
project_id |
Sim |
String |
ID do projeto. |
Parâmetros de solicitação
Parâmetro |
Obrigatório |
Tipo |
Descrição |
---|---|---|---|
name |
Sim |
String |
Nome da instância. Um nome de ocorrência pode conter letras, dígitos, sublinhados (_), e hífens (-) e deve começar com uma letra. Quando você cria apenas uma instância por vez, o valor desse parâmetro pode conter de 4 a 64 caracteres. Quando você cria várias instâncias ao mesmo tempo, o valor desse parâmetro pode conter de 4 a 56 caracteres. As instâncias são nomeadas no formato de custom name-n, em que n começa em 000 e é incrementado em 1. Por exemplo, se você criar duas instâncias e definir o nome personalizado para dcs_demo, as duas instâncias serão denominadas respectivamente dcs_demo-000 e dcs_demo-001. |
engine |
Sim |
String |
Mecanismo de cache. O valor pode ser Redis ou Memcached. |
engine_version |
Não |
String |
Versão cache. Se o mecanismo de cache for Redis, o valor poderá ser 4.0, ou 5.0. Se o mecanismo de cache for Memcached, esse parâmetro é opcional e pode ser deixado em branco. |
capacity |
Sim |
Float |
Capacidade de cache (GB).
|
spec_code |
Sim |
String |
Variante de produto. O método de consulta é o seguinte:
|
az_codes |
Sim |
Array of strings |
ID da AZ onde o nó de cache reside e que tem recursos disponíveis. Para obter detalhes, consulte Consulta das AZ. Verifique se a AZ desejada tem recursos disponíveis. As instâncias de DCS de cluster principal/em espera, de proxy e de cluster do Redis oferecem suporte à implantação entre as AZ. Você pode especificar uma AZ para o nó em espera. Ao especificar as AZ para nós, use (,) de vírgulas para separar várias AZ. Para obter detalhes, consulte a solicitação de exemplo. |
vpc_id |
Sim |
String |
ID de VPC Você pode obter o valor de uma das seguintes maneiras:
|
subnet_id |
Sim |
String |
ID da rede de sub-rede. Você pode obter o valor de uma das seguintes maneiras:
|
security_group_id |
Não |
String |
ID do grupo de segurança ao qual a instância pertence. Este parâmetro é obrigatório quando o engine é Redis e engine_version é 3.0, ou quando o engine é Memcached. As instâncias do DCS Redis 3.0 e do Memcached oferecem suporte ao controle de acesso do grupo de segurança. Esse parâmetro é opcional quando o engine é Redis e engine_version é 4.0 ou 5.0. As instâncias do DCS Redis 4.0 e 5.0 não são compatíveis com o controle de acesso do grupo de segurança. Eles suportam apenas o controle de acesso baseado em whitelist. Você pode obter o valor de uma das seguintes maneiras:
|
publicip_id |
Não |
String |
ID do EIP vinculado à instância do DCS Redis. Esse parâmetro é obrigatório se o acesso público estiver habilitado (ou seja, enable_publicip estiver definido como true). Padrão: false |
enterprise_project_id |
Não |
String |
ID do projeto empresarial. |
enterprise_project_name |
Não |
String |
Nome de um projeto empresarial. |
description |
Não |
String |
Descrição da instância. A descrição pode conter um máximo de 1024 caracteres.
NOTA:
A barra invertida (\) e aspas (") são caracteres especiais para mensagens JSON. Ao usar esses caracteres em um valor de parâmetro, adicione o caractere de escape (\) antes dos caracteres, por exemplo, \\ e \”. |
enable_ssl |
Não |
Boolean |
Habilitar o SSL para acesso público a uma instância do DCS Redis.
|
private_ip |
Não |
String |
Endereço IP especificado manualmente para uma instância de DCS. Esse parâmetro está disponível para instâncias do DCS Redis e Memcached. |
instance_num |
Não |
Integer |
Número de instâncias a serem criadas em lotes. Esse parâmetro está disponível para instâncias do DCS Redis e Memcached. Valor padrão: 1 Faixa de valor: 1–100 Padrão: 1 |
maintain_begin |
Não |
String |
Hora UTC quando a janela de tempo de manutenção é iniciada. O formato é HH:mm:ss.
|
maintain_end |
Não |
String |
Hora UTC quando a janela de tempo de manutenção termina. O formato é HH:mm:ss.
|
password |
Não |
String |
Informações de autenticação da instância DCS.
NOTA:
Quando no_password_access é definido como false ou não especificado, a solicitação deve conter o parâmetro password. A senha de uma instância do DCS Redis deve atender aos seguintes requisitos de complexidade:
|
no_password_access |
Não |
Boolean |
Se a instância pode ser acessada sem uma senha.
Padrão: false |
instance_backup_policy |
Não |
BackupPolicy object |
Política de backup. Este parâmetro é suportado quando o tipo de instância é principal/em espera ou cluster. |
tags |
Não |
Array of ResourceTag objects |
Chave e valor da tag de instância. |
access_user |
Não |
String |
Se o mecanismo de cache for o Redis, não será necessário definir esse parâmetro. Se o mecanismo de cache for Memcached e no_password_access estiver definido como false, esse parâmetro será necessário, indicando que você precisa acessar a instância do DCS no modo de senha. Um nome de ocorrência começa com uma letra, consiste de 1 a 64 caracteres e pode conter apenas letras, dígitos, (_), de sublinhado e hífens (-).
|
enable_publicip |
Não |
Boolean |
Se habilitar o acesso à rede pública para a instância do DCS Redis.
Padrão: false |
port |
Não |
Integer |
Personalização de portas, que é suportada apenas pelas instâncias do Redis 4.0 e do Redis 5.0 e não pelas instâncias do Redis 3.0 e do Memcached. Se esse parâmetro não for enviado ou for deixado vazio quando você criar uma instância do Redis 4.0 ou 5.0, a porta padrão 6379 será usada. Para personalizar uma porta, especifique um número de porta no intervalo de 1 a 65535. |
rename_commands |
Não |
Object |
Renomeação crítica de comando, que é suportada apenas pelas instâncias do Redis 4.0 e do Redis 5.0 e não pelas instâncias do Redis 3.0 e do Memcached. Se esse parâmetro não for enviado ou for deixado vazio quando você criar uma instância do Redis 4.0 ou 5.0, nenhum comando crítico será renomeado. Atualmente, somente COMMAND, KEYS, FLUSHDB, FLUSHALL e HGETALL podem ser renomeados. |
Parâmetro |
Obrigatório |
Tipo |
Descrição |
---|---|---|---|
backup_type |
Sim |
String |
Tipo de backup.
|
save_days |
Não |
Integer |
Este parâmetro é obrigatório quando backup_type é definido como auto. Período de retenção, em dias. O valor varia de 1 a 7. |
periodical_backup_plan |
Não |
BackupPlan object |
Agendamento de backup. Este parâmetro é obrigatório quando backup_type é definido como auto. |
Parâmetro |
Obrigatório |
Tipo |
Descrição |
---|---|---|---|
timezone_offset |
Não |
String |
Fuso horário em que o backup é realizado. Faixa: GMT –12:00 às +12:00 GMT. Se este parâmetro for deixado em branco, o fuso horário atual da VM do servidor DCS é usado por padrão. |
backup_at |
Sim |
Array of integers |
Dia em uma semana em que o backup começa. O valor varia de 1 a 7, onde 1 indica segunda-feira e 7 indica domingo. |
period_type |
Sim |
String |
Intervalo em que o backup é executado, que suporta apenas weekly atualmente. |
begin_at |
Sim |
String |
Hora em que o backup começa. 00:00-01:00 indica que o backup começa às 00:00. |
Parâmetro |
Obrigatório |
Tipo |
Descrição |
---|---|---|---|
key |
Sim |
String |
Chave da tag.
|
value |
Não |
String |
Valor da tag.
|
Parâmetros de resposta
Código de estado: 200
Parâmetro |
Tipo |
Descrição |
---|---|---|
instances |
Array of Instances objects |
ID e nome da instância do DCS. Se várias instâncias de DCS forem criadas ao mesmo tempo, vários ID e nomes de instâncias de DCS serão retornados. |
Parâmetro |
Tipo |
Descrição |
---|---|---|
instance_id |
String |
ID da instância do DCS. |
instance_name |
String |
Nome da instância do DCS. |
Código de estado: 400
Parâmetro |
Tipo |
Descrição |
---|---|---|
error_msg |
String |
Mensagem de erro. Máximo: 1024 |
error_code |
String |
Código de erro. Máximo: 9 |
error_ext_msg |
String |
Informações de erro estendidas. Este parâmetro não é usado atualmente e está definido como nulo. Máximo: 1024 |
Código de estado: 401
Parâmetro |
Tipo |
Descrição |
---|---|---|
error_msg |
String |
Mensagem de erro. Máximo: 1024 |
error_code |
String |
Código de erro. Máximo: 9 |
error_ext_msg |
String |
Informações de erro estendidas. Este parâmetro não é usado atualmente e está definido como nulo. Máximo: 1024 |
Código de estado: 403
Parâmetro |
Tipo |
Descrição |
---|---|---|
error_msg |
String |
Mensagem de erro. Máximo: 1024 |
error_code |
String |
Código de erro. Máximo: 9 |
error_ext_msg |
String |
Informações de erro estendidas. Este parâmetro não é usado atualmente e está definido como nulo. Máximo: 1024 |
Código de estado: 404
Parâmetro |
Tipo |
Descrição |
---|---|---|
error_msg |
String |
Mensagem de erro. Máximo: 1024 |
error_code |
String |
Código de erro. Máximo: 9 |
error_ext_msg |
String |
Informações de erro estendidas. Este parâmetro não é usado atualmente e está definido como nulo. Máximo: 1024 |
Código de estado: 500
Parâmetro |
Tipo |
Descrição |
---|---|---|
error_msg |
String |
Mensagem de erro. Máximo: 1024 |
error_code |
String |
Código de erro. Máximo: 9 |
error_ext_msg |
String |
Informações de erro estendidas. Este parâmetro não é usado atualmente e está definido como nulo. Máximo: 1024 |
Exemplos de solicitações
- Criando uma instância do DCS Redis
POST https://{dcs_endpoint}/v2/{project_id}/instances { "name" : "dcs-APITest", "description" : "Test", "engine" : "Redis", "engine_version" : 5.0, "enterprise_project_id" : 0, "enterprise_project_name" : "default", "vpc_id" : "5e37b3be-950a-48e1-b498-65b63d336481", "security_group_id" : "securityGroupId", "enable_ssl" : false, "private_ip" : "", "az_codes" : [ "xxxxxx" ], "capacity" : 2, "access_user" : "", "instance_num" : 1, "maintain_begin" : "02:00:00", "maintain_end\"" : "06:00:00", "password" : "********", "enable_publicip" : false, "spec_code" : "redis.single.xu1.tiny.128", "subnet_id" : "a3bd29e4-d5bc-414c-a79a-1f35ee4ead88", "no_password_access" : false }
- Criação de uma instância do DCS Redis principal/em espera, paga por uso, com tags, uma porta personalizada, comandos renomeados e implantação entre AZ
{ "enterprise_project_name" : "default", "vpc_id" : "c5cd009b-9ba9-41f2-9a26-2b8c3f3ffd39", "description" : "Test", "security_group_id" : "d57fad27-e3e9-43b7-9498-0a698ab63b27", "port" : 4040, "maintain_end\"" : "06:00:00", "enable_ssl" : false, "private_ip" : "", "az_codes" : [ "xxxxxx", "xxxxxxx" ], "capacity" : 2, "access_user" : "", "instance_num" : 1, "maintain_begin" : "02:00:00", "enterprise_project_id" : 0, "password" : "********", "enable_publicip" : false, "engine" : "Redis", "spec_code" : "redis.ha.au1.large.2", "name" : "dcs-demo", "subnet_id" : "7e95c4d6-d7af-424c-a3cf-2be10968fe81", "engine_version" : 4.0, "no_password_access" : true, "rename_commands" : { "keys" : "keys001", "flushdb" : "flushdb001", "flushall" : "flushall001" }, "tags" : [ { "key" : "dcs001", "value" : 2 }, { "key" : "dcs003", "value" : 4 } ] }
- Criação de uma instância principal/em espera do Memcached DCS com políticas de backup
{ "publicip_id" : "", "enterprise_project_name" : "default", "vpc_id" : "0402ea19-5457-4032-9d1b-eb48b98f6c66", "description" : "Test", "security_group_id" : "4b95a790-5cfc-463d-8de5-42199e55371c", "maintain_end\"" : "06:00", "enable_ssl" : false, "private_ip" : "", "az_codes" : [ "xxxxxx" ], "capacity" : 2, "access_user" : "", "instance_num" : 1, "maintain_begin" : "02:00:00", "enterprise_project_id" : 0, "password" : "********", "enable_publicip" : false, "engine" : "Memcached", "spec_code" : "dcs.memcached.single_node", "name" : "dcs-APITest", "subnet_id" : "a3bd29e4-d5bc-414c-a79a-1f35ee4ead88", "engine_version" : 3.0, "no_password_access" : false, "instance_backup_policy" : { "save_days" : 1, "backup_type" : "auto", "periodical_backup_plan" : { "begin_at" : "16:00-17:00", "period_type" : "weekly", "backup_at" : [ 1, 2, 3, 4, 5, 6, 7 ], "timezone_offset" : "+0800" } } }
Exemplo de respostas
Código de estado: 200
A tarefa de criação da instância DCS foi submetida com êxito.
Se o status da instância for RUNNING, a instância DCS foi criada com êxito.
- Exemplo 1
{ "instances" : [ { "instance_id" : "3c49fd6b-fc7c-419e-9644-b6cce008653f", "instance_name" : "dcs-test005" } ] }
- Exemplo 2
{ "instances" : [ { "instance_id" : "77284d69-cd51-4bf1-aa30-2e60f055800c", "instance_name" : "dcs-APITest1" } ] }
Código de estado: 400
Pedido inválido.
{ "error_code" : "DCS.1004", "error_msg" : "Project ID does not match the token." }
Código de estado: 401
Informações de autenticação inválidas.
{ "error_code" : "DCS.1001", "error_msg" : "Invalid token." }
Código de estado: 403
O pedido é rejeitado.
{ "error_code" : "DCS.2003", "error_msg" : "This role does not have the permission to perform this operation." }
Código de estado: 404
O recurso solicitado não foi encontrado.
{ "error_code" : "DCS.4001", "error_msg" : "The requested URL does not exist." }
Código de estado: 500
Erro de serviço interno.
{ "error_code" : "DCS.5000", "error_msg" : "Internal service error." }
Códigos de status
Código de status |
Descrição |
---|---|
200 |
A tarefa de criação da instância DCS foi submetida com êxito.
NOTA:
Se o status da instância for RUNNING, a instância DCS foi criada com êxito. |
400 |
Pedido inválido. |
401 |
Informações de autenticação inválidas. |
403 |
O pedido é rejeitado. |
404 |
O recurso solicitado não foi encontrado. |
500 |
Erro de serviço interno. |
Códigos de erro
Consulte Códigos de erro.