Lançamos uma nova versão do Well-Architected Framework. Também adicionamos lentes novas e atualizadas ao Catálogo de Lentes. Saiba mais
Especificação do formato da lente no AWS WA Tool
As lentes são definidas usando um formato JSON específico. Ao começar a criar uma lente personalizada, você tem a opção de baixar um arquivo JSON de modelo. Você pode usar esse arquivo como base para suas lentes personalizadas, pois ele define a estrutura básica dos pilares, das perguntas, das melhores práticas e do plano de melhoria.
Seção de lentes
Esta seção define os atributos da própria lente personalizada. Este é o nome e a descrição.
schemaVersion
: A versão do esquema de lente personalizada a ser usada. Definido pelo modelo, não altere.name
: Nome da lente. O nome pode ter até 128 caracteres.description
: Descrição em texto da lente. Esse texto é exibido ao selecionar lentes para adicionar durante a criação da workload ou ao selecionar uma lente para aplicar a uma workload existente posteriormente. A descrição pode ter até 2.048 caracteres.
"schemaVersion": "2021-11-01", "name": "
Company Policy ABC
", "description": "This lens provides a set of specific questions to assess compliance with company policy ABC-2021 as revised on 2021/09/01.
",
Seção de pilares
Esta seção define os pilares associados à lente personalizada. Você pode mapear suas perguntas para os pilares do AWS Well-Architected Framework, definir seus próprios pilares ou ambos.
Você pode definir até dez pilares em uma lente personalizada.
id
: ID do pilar. O ID pode ter entre 3 e 128 caracteres e conter somente caracteres alfanuméricos e sublinhado (“_”). Os IDs usados em um pilar devem ser exclusivos.Ao mapear suas perguntas para os pilares da Estrutura, use os seguintes IDs:
-
operationalExcellence
-
security
-
reliability
-
performance
-
costOptimization
-
sustainability
-
name
: Nome do pilar. O nome pode ter até 128 caracteres.
"pillars": [ { "id": "
company_Privacy
", "name": "Privacy Excellence
", . . . }, { "id": "company_Security
", "name": "Security
", . . . } ]
Seção de perguntas
Esta seção define as questões associadas a um pilar.
Você pode definir até 20 perguntas em um pilar em uma lente personalizada.
-
id
: ID da pergunta. A ID pode ter de 3 a 128 caracteres e conter apenas caracteres alfanuméricos e de sublinhado ("_"). As IDs usadas em uma pergunta devem ser exclusivas. -
title
: Título da pergunta. O título pode ter até 128 caracteres. -
description
: Descreve a pergunta com mais detalhes. A descrição pode ter até 2.048 caracteres. -
helpfulResource displayText
: opcional. Texto que fornece informações úteis sobre a pergunta. O texto pode ter até 2.048 caracteres. Deve ser especificado sehelpfulResource url
for especificado. -
helpfulResource url
: opcional. Um recurso de URL que explica a pergunta com mais detalhes. O URL deve começar comhttp://
ouhttps://
.
nota
Ao sincronizar uma workload da lente personalizada com o Jira, as perguntas exibem o “ID” e o “título” da pergunta.
O formato usado nos tíquetes do Jira é [ QuestionID ] QuestionTitle
.
"questions": [ { "id": "
privacy01
", "title": "How do you ensure HR conversations are private?
", "description": "Career and benefits discussions should occur on secure channels only and be audited regularly for compliance.
", "helpfulResource": { "displayText": "This is helpful text for the first question
", "url": "https://example.com/poptquest01_help.html
" }, . . . }, { "id": "privacy02
", "title": "Is your team following the company privacy policy?
", "description": "Our company requires customers to opt-in to data use and does not disclose customer data to third parties either individually or in aggregate.
", "helpfulResource": { "displayText": "This is helpful text for the second question
", "url": "https://example.com/poptquest02_help.html
" }, . . . } ]
Seção de opções
Esta seção define as opções associadas a uma pergunta.
Você pode definir até 15 opções para uma pergunta em uma lente personalizada.
-
id
: ID da escolha. O ID pode ter entre 3 e 128 caracteres e conter somente caracteres alfanuméricos e sublinhado (“_”). Um ID exclusivo deve ser especificado para cada opção em uma pergunta. A adição de uma opção com um sufixo_no
funcionará como uma opçãoNone of these
para a pergunta. -
title
: Título da escolha. O título pode ter até 128 caracteres. -
helpfulResource displayText
: opcional. Texto que fornece informações úteis sobre uma opção. O texto pode ter até 2.048 caracteres. Deverá ser incluído sehelpfulResource url
for especificado. -
helpfulResource url
: opcional. Um recurso de URL que explica a escolha em mais detalhes. O URL deve começar comhttp://
ouhttps://
. -
improvementPlan displayText
: Texto que descreve como uma escolha pode ser aprimorada. O texto pode ter até 2.048 caracteres. É necessário umimprovementPlan
para cada opção, exceto para uma opçãoNone of these
. -
improvementPlan url
: opcional. Um recurso de URL que pode ajudar na melhoria. O URL deve começar comhttp://
ouhttps://
. -
additionalResources type
: opcional. O tipo de recursos adicionais. O valor pode serHELPFUL_RESOURCE
ouIMPROVEMENT_PLAN
. -
additionalResources content
: opcional. Especifica os valoresdisplayText
eurl
para o recurso adicional. Até cinco recursos úteis adicionais e até cinco itens adicionais do plano de melhoria podem ser especificados para uma escolha.-
displayText
: opcional. Texto que descreve o recurso útil ou o plano de melhoria. O texto pode ter até 2.048 caracteres. Deverá ser incluído seurl
for especificado. -
url
: opcional. Um recurso de URL para o recurso útil ou plano de melhoria. O URL deve começar comhttp://
ouhttps://
.
-
nota
Ao sincronizar uma workload da lente personalizada com o Jira, as opções exibem o “ID” da pergunta e da escolha, bem como o “título” da escolha.
O formato usado é [ QuestionID | ChoiceID ] ChoiceTitle
.
"choices": [ { "id": "
choice_1
", "title": "Option 1
", "helpfulResource": { "displayText": "This is helpful text for the first choice
", "url": "https://example.com/popt01_help.html
" }, "improvementPlan": { "displayText": "This is text that will be shown for improvement of this choice.
", "url": "https://example.com/popt01_iplan.html
" } }, { "id": "choice_2
", "title": "Option 2
", "helpfulResource": { "displayText": "This is helpful text for the second choice
", "url": "https://example.com/hr_manual_CORP_1.pdf
" }, "improvementPlan": { "displayText": "This is text that will be shown for improvement of this choice.
", "url": "https://example.com/popt02_iplan_01.html
" }, "additionalResources":[ { "type": "HELPFUL_RESOURCE", "content": [ { "displayText": "This is the second set of helpful text for this choice.
", "url": "https://example.com/hr_manual_country.html
" }, { "displayText": "This is the third set of helpful text for this choice.
", "url": "https://example.com/hr_manual_city.html
" } ] }, { "type": "IMPROVEMENT_PLAN", "content": [ { "displayText": "This is additional text that will be shown for improvement of this choice.
", "url": "https://example.com/popt02_iplan_02.html
" }, { "displayText": "This is the third piece of improvement plan text.
", "url": "https://example.com/popt02_iplan_03.html
" } { "displayText": "This is the fourth piece of improvement plan text.
", "url": "https://example.com/popt02_iplan_04.html
" } ] } ] }, { "id": "option_no", "title": "None of these", "helpfulResource": { "displayText": "Choose this if your workload does not follow these best practices.
", "url": "https://example.com/popt02_iplan_none.html
" } }
Seção de regras de risco
Esta seção define como as opções selecionadas determinam o nível de risco.
Você pode definir no máximo três regras de risco por pergunta, uma para cada nível de risco.
-
condition
: Uma expressão booleana das opções mapeada para um nível de risco para a pergunta, oudefault
.Deve haver uma regra de risco
default
para cada pergunta. -
risk
: Indica o risco associado à condição. Os valores válidos sãoHIGH_RISK
,MEDIUM_RISK
eNO_RISK
.
A ordem de suas regras de risco é significativa. O primeiro condition
que é avaliado como true
define o risco para a pergunta. Um padrão comum para a implementação de regras de risco é começar com as regras menos arriscadas (e, normalmente, mais granulares) e ir descendo até as regras mais arriscadas (e menos específicas).
Por exemplo:
"riskRules": [ { "condition": "
choice_1 && choice_2 && choice_3
", "risk": "NO_RISK
" }, { "condition": "((choice_1 || choice_2) && choice_3) || (!choice_1 && choice_3)
", "risk": "MEDIUM_RISK
" }, { "condition": "default
", "risk": "HIGH_RISK
" } ]
Se a pergunta tiver três opções (choice_1
, choice_2
, e choice_3
), essas regras de risco resultarão no seguinte comportamento:
-
Se todas as três opções forem selecionadas, não há risco.
-
Se um
choice_1
ouchoice_2
for selecionado echoice_3
for selecionado, o risco é médio. -
Se
choice_1
não for selecionado, maschoice_3
for selecionado, também haverá um risco médio. -
Se nenhuma dessas condições anteriores for verdadeira, o risco é alto.