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.