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 urlfor 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_nofuncionará como uma opçãoNone of thesepara 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 urlfor 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 umimprovementPlanpara 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_RESOURCEouIMPROVEMENT_PLAN. -
additionalResources content: opcional. Especifica os valoresdisplayTexteurlpara 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 seurlfor 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
defaultpara cada pergunta. -
risk: Indica o risco associado à condição. Os valores válidos sãoHIGH_RISK,MEDIUM_RISKeNO_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_1ouchoice_2for selecionado echoice_3for selecionado, o risco é médio. -
Se
choice_1não for selecionado, maschoice_3for selecionado, também haverá um risco médio. -
Se nenhuma dessas condições anteriores for verdadeira, o risco é alto.