Skip to content

Commit ee343d0

Browse files
committed
adicionando v 0.2.0
1 parent 5c2be5a commit ee343d0

File tree

2 files changed

+162
-144
lines changed

2 files changed

+162
-144
lines changed

internal/templates/manifests/lab_01_linux_processamento-texto.yaml

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -116,11 +116,12 @@ data:
116116
- "O **awk** é uma linguagem de programação completa, especializada no processamento de dados baseados em texto. Diferente do grep e sed, que funcionam principalmente com linhas inteiras, o awk é particularmente útil para processar dados estruturados em colunas ou campos."
117117
- "O nome 'awk' vem das iniciais de seus criadores: Alfred **A**ho, Peter **W**einberger e Brian **K**ernighan. Esta ferramenta tem capacidades avançadas para manipulação de dados, incluindo variáveis, funções, e estruturas condicionais."
118118
- "Para demonstrar o poder do awk, vamos criar um arquivo com dados estruturados em colunas:"
119-
- "cat > arquivo_colunas.txt << EOL
120-
col1 col2 col3
121-
val1 val2 val3
122-
xyz abc 123
123-
EOL"
119+
- |
120+
cat > arquivo_colunas.txt << EOL
121+
col1 col2 col3
122+
val1 val2 val3
123+
xyz abc 123
124+
EOL
124125
- "Este arquivo simula dados tabulares, com três colunas separadas por espaços."
125126
- "**Conceito fundamental: campos e registros**"
126127
- "No awk, cada linha do arquivo é considerada um 'registro', e cada palavra (ou conjunto de caracteres separados por delimitadores) é um 'campo'. Por padrão, os campos são separados por espaços em branco (espaços ou tabs)."
@@ -144,12 +145,13 @@ EOL"
144145
- "Aqui, `$3 == \"val3\"` é uma condição que deve ser satisfeita para que o bloco de código entre chaves seja executado. Note que as aspas dentro do script awk precisam ser escapadas com backslash."
145146
- "**Usando separadores diferentes:**"
146147
- "Por padrão, o awk considera espaços em branco como separadores de campo. Podemos especificar um separador diferente com a opção -F. Vamos criar um arquivo CSV para demonstrar:"
147-
- "cat > arquivo_csv.txt << EOL
148-
Nome,Idade,Cidade
149-
João,35,São Paulo
150-
Maria,28,Rio de Janeiro
151-
Pedro,42,Belo Horizonte
152-
EOL"
148+
- |
149+
cat > arquivo_csv.txt << EOL
150+
Nome,Idade,Cidade
151+
João,35,São Paulo
152+
Maria,28,Rio de Janeiro
153+
Pedro,42,Belo Horizonte
154+
EOL
153155
- "Agora podemos processar este arquivo especificando a vírgula como separador:"
154156
- "`awk -F, '{print \"Nome: \" $1, \"Idade: \" $2}' arquivo_csv.txt`"
155157
- "**Cálculos e variáveis:**"

internal/templates/manifests/lab_33_aws_dynamodb_nosql.yaml

Lines changed: 149 additions & 133 deletions
Original file line numberDiff line numberDiff line change
@@ -68,46 +68,51 @@ data:
6868
description: "Aprenda a inserir, atualizar e consultar itens em tabelas DynamoDB"
6969
steps:
7070
- "Insira um item na tabela Produtos:"
71-
- "`aws dynamodb put-item \
72-
--table-name Produtos \
73-
--item '{
74-
\"ProdutoId\": {\"S\": \"prod-001\"},
75-
\"Nome\": {\"S\": \"Smartphone XYZ\"},
76-
\"Preco\": {\"N\": \"899.99\"},
77-
\"Categoria\": {\"S\": \"Eletrônicos\"},
78-
\"Estoque\": {\"N\": \"50\"}
79-
}'`"
71+
- |
72+
aws dynamodb put-item \
73+
--table-name Produtos \
74+
--item '{
75+
"ProdutoId": {"S": "prod-001"},
76+
"Nome": {"S": "Smartphone XYZ"},
77+
"Preco": {"N": "899.99"},
78+
"Categoria": {"S": "Eletrônicos"},
79+
"Estoque": {"N": "50"}
80+
}'
8081
- "Insira outro item na tabela Produtos:"
81-
- "`aws dynamodb put-item \
82-
--table-name Produtos \
83-
--item '{
84-
\"ProdutoId\": {\"S\": \"prod-002\"},
85-
\"Nome\": {\"S\": \"Notebook ABC\"},
86-
\"Preco\": {\"N\": \"2499.99\"},
87-
\"Categoria\": {\"S\": \"Computadores\"},
88-
\"Estoque\": {\"N\": \"15\"}
89-
}'`"
82+
- |
83+
aws dynamodb put-item \
84+
--table-name Produtos \
85+
--item '{
86+
"ProdutoId": {"S": "prod-002"},
87+
"Nome": {"S": "Notebook ABC"},
88+
"Preco": {"N": "2499.99"},
89+
"Categoria": {"S": "Computadores"},
90+
"Estoque": {"N": "15"}
91+
}'
9092
- "Insira um item na tabela Pedidos:"
91-
- "`aws dynamodb put-item \
92-
--table-name Pedidos \
93-
--item '{
94-
\"ClienteId\": {\"S\": \"cliente-001\"},
95-
\"PedidoId\": {\"S\": \"pedido-001\"},
96-
\"Data\": {\"S\": \"2023-04-01\"},
97-
\"Valor\": {\"N\": \"899.99\"},
98-
\"Produtos\": {\"SS\": [\"prod-001\"]}
99-
}'`"
93+
- |
94+
aws dynamodb put-item \
95+
--table-name Pedidos \
96+
--item '{
97+
"ClienteId": {"S": "cliente-001"},
98+
"PedidoId": {"S": "pedido-001"},
99+
"Data": {"S": "2023-04-01"},
100+
"Valor": {"N": "899.99"},
101+
"Produtos": {"SS": ["prod-001"]}
102+
}'
100103
- "Obtenha um item específico da tabela Produtos:"
101-
- "`aws dynamodb get-item \
102-
--table-name Produtos \
103-
--key '{\"ProdutoId\": {\"S\": \"prod-001\"}}'`"
104+
- |
105+
aws dynamodb get-item \
106+
--table-name Produtos \
107+
--key '{"ProdutoId": {"S": "prod-001"}}'
104108
- "Execute uma scan para ver todos os itens em uma tabela:"
105109
- "`aws dynamodb scan --table-name Produtos`"
106110
- "Execute uma query usando a chave primária (para a tabela Pedidos):"
107-
- "`aws dynamodb query \
108-
--table-name Pedidos \
109-
--key-condition-expression \"ClienteId = :clienteId\" \
110-
--expression-attribute-values '{\":clienteId\": {\"S\": \"cliente-001\"}}'`"
111+
- |
112+
aws dynamodb query \
113+
--table-name Pedidos \
114+
--key-condition-expression "ClienteId = :clienteId" \
115+
--expression-attribute-values '{":clienteId": {"S": "cliente-001"}}'
111116
tips:
112117
- type: "warning"
113118
title: "Scan vs Query"
@@ -127,41 +132,46 @@ data:
127132
description: "Aprenda a atualizar e excluir itens em tabelas DynamoDB"
128133
steps:
129134
- "Atualize um item existente na tabela Produtos:"
130-
- "`aws dynamodb update-item \
131-
--table-name Produtos \
132-
--key '{\"ProdutoId\": {\"S\": \"prod-001\"}}' \
133-
--update-expression \"SET Preco = :preco, Estoque = :estoque\" \
134-
--expression-attribute-values '{
135-
\":preco\": {\"N\": \"849.99\"},
136-
\":estoque\": {\"N\": \"45\"}
137-
}' \
138-
--return-values ALL_NEW`"
135+
- |
136+
aws dynamodb update-item \
137+
--table-name Produtos \
138+
--key '{"ProdutoId": {"S": "prod-001"}}' \
139+
--update-expression "SET Preco = :preco, Estoque = :estoque" \
140+
--expression-attribute-values '{
141+
":preco": {"N": "849.99"},
142+
":estoque": {"N": "45"}
143+
}' \
144+
--return-values ALL_NEW
139145
- "Verifique se a atualização foi bem-sucedida:"
140-
- "`aws dynamodb get-item \
141-
--table-name Produtos \
142-
--key '{\"ProdutoId\": {\"S\": \"prod-001\"}}'`"
146+
- |
147+
aws dynamodb get-item \
148+
--table-name Produtos \
149+
--key '{"ProdutoId": {"S": "prod-001"}}'
143150
- "Adicione um novo atributo a um item existente:"
144-
- "`aws dynamodb update-item \
145-
--table-name Produtos \
146-
--key '{\"ProdutoId\": {\"S\": \"prod-002\"}}' \
147-
--update-expression \"SET Promocao = :promocao\" \
148-
--expression-attribute-values '{
149-
\":promocao\": {\"BOOL\": true}
150-
}' \
151-
--return-values ALL_NEW`"
151+
- |
152+
aws dynamodb update-item \
153+
--table-name Produtos \
154+
--key '{"ProdutoId": {"S": "prod-002"}}' \
155+
--update-expression "SET Promocao = :promocao" \
156+
--expression-attribute-values '{
157+
":promocao": {"BOOL": true}
158+
}' \
159+
--return-values ALL_NEW
152160
- "Exclua um atributo de um item:"
153-
- "`aws dynamodb update-item \
154-
--table-name Produtos \
155-
--key '{\"ProdutoId\": {\"S\": \"prod-001\"}}' \
156-
--update-expression \"REMOVE Categoria\" \
157-
--return-values ALL_NEW`"
161+
- |
162+
aws dynamodb update-item \
163+
--table-name Produtos \
164+
--key '{"ProdutoId": {"S": "prod-001"}}' \
165+
--update-expression "REMOVE Categoria" \
166+
--return-values ALL_NEW
158167
- "Exclua um item completo da tabela:"
159-
- "`aws dynamodb delete-item \
160-
--table-name Pedidos \
161-
--key '{
162-
\"ClienteId\": {\"S\": \"cliente-001\"},
163-
\"PedidoId\": {\"S\": \"pedido-001\"}
164-
}'`"
168+
- |
169+
aws dynamodb delete-item \
170+
--table-name Pedidos \
171+
--key '{
172+
"ClienteId": {"S": "cliente-001"},
173+
"PedidoId": {"S": "pedido-001"}
174+
}'
165175
- "Verifique se o item foi excluído:"
166176
- "`aws dynamodb scan --table-name Pedidos`"
167177
tips:
@@ -183,77 +193,83 @@ data:
183193
description: "Configure índices secundários e realize consultas mais complexas"
184194
steps:
185195
- "Crie uma nova tabela com um índice secundário global (GSI):"
186-
- "`aws dynamodb create-table \
187-
--table-name Clientes \
188-
--attribute-definitions \
189-
AttributeName=ClienteId,AttributeType=S \
190-
AttributeName=Email,AttributeType=S \
191-
AttributeName=Cidade,AttributeType=S \
192-
--key-schema \
193-
AttributeName=ClienteId,KeyType=HASH \
194-
--provisioned-throughput \
195-
ReadCapacityUnits=5,WriteCapacityUnits=5 \
196-
--global-secondary-indexes '[
197-
{
198-
\"IndexName\": \"EmailIndex\",
199-
\"KeySchema\": [
200-
{\"AttributeName\": \"Email\", \"KeyType\": \"HASH\"}
201-
],
202-
\"Projection\": {\"ProjectionType\": \"ALL\"},
203-
\"ProvisionedThroughput\": {
204-
\"ReadCapacityUnits\": 5,
205-
\"WriteCapacityUnits\": 5
206-
}
207-
},
208-
{
209-
\"IndexName\": \"CidadeIndex\",
210-
\"KeySchema\": [
211-
{\"AttributeName\": \"Cidade\", \"KeyType\": \"HASH\"}
212-
],
213-
\"Projection\": {\"ProjectionType\": \"ALL\"},
214-
\"ProvisionedThroughput\": {
215-
\"ReadCapacityUnits\": 5,
216-
\"WriteCapacityUnits\": 5
217-
}
218-
}
219-
]'`"
196+
- |
197+
aws dynamodb create-table \
198+
--table-name Clientes \
199+
--attribute-definitions \
200+
AttributeName=ClienteId,AttributeType=S \
201+
AttributeName=Email,AttributeType=S \
202+
AttributeName=Cidade,AttributeType=S \
203+
--key-schema \
204+
AttributeName=ClienteId,KeyType=HASH \
205+
--provisioned-throughput \
206+
ReadCapacityUnits=5,WriteCapacityUnits=5 \
207+
--global-secondary-indexes '[
208+
{
209+
"IndexName": "EmailIndex",
210+
"KeySchema": [
211+
{"AttributeName": "Email", "KeyType": "HASH"}
212+
],
213+
"Projection": {"ProjectionType": "ALL"},
214+
"ProvisionedThroughput": {
215+
"ReadCapacityUnits": 5,
216+
"WriteCapacityUnits": 5
217+
}
218+
},
219+
{
220+
"IndexName": "CidadeIndex",
221+
"KeySchema": [
222+
{"AttributeName": "Cidade", "KeyType": "HASH"}
223+
],
224+
"Projection": {"ProjectionType": "ALL"},
225+
"ProvisionedThroughput": {
226+
"ReadCapacityUnits": 5,
227+
"WriteCapacityUnits": 5
228+
}
229+
}
230+
]'
220231
- "Insira alguns itens para testar os índices:"
221-
- "`aws dynamodb put-item \
222-
--table-name Clientes \
223-
--item '{
224-
\"ClienteId\": {\"S\": \"cliente-001\"},
225-
\"Nome\": {\"S\": \"João Silva\"},
226-
\"Email\": {\"S\": \"[email protected]\"},
227-
\"Cidade\": {\"S\": \"São Paulo\"}
228-
}'`"
229-
- "`aws dynamodb put-item \
230-
--table-name Clientes \
231-
--item '{
232-
\"ClienteId\": {\"S\": \"cliente-002\"},
233-
\"Nome\": {\"S\": \"Maria Souza\"},
234-
\"Email\": {\"S\": \"[email protected]\"},
235-
\"Cidade\": {\"S\": \"Rio de Janeiro\"}
236-
}'`"
237-
- "`aws dynamodb put-item \
238-
--table-name Clientes \
239-
--item '{
240-
\"ClienteId\": {\"S\": \"cliente-003\"},
241-
\"Nome\": {\"S\": \"Carlos Santos\"},
242-
\"Email\": {\"S\": \"[email protected]\"},
243-
\"Cidade\": {\"S\": \"São Paulo\"}
244-
}'`"
232+
- |
233+
aws dynamodb put-item \
234+
--table-name Clientes \
235+
--item '{
236+
"ClienteId": {"S": "cliente-001"},
237+
"Nome": {"S": "João Silva"},
238+
"Email": {"S": "[email protected]"},
239+
"Cidade": {"S": "São Paulo"}
240+
}'
241+
- |
242+
aws dynamodb put-item \
243+
--table-name Clientes \
244+
--item '{
245+
"ClienteId": {"S": "cliente-002"},
246+
"Nome": {"S": "Maria Souza"},
247+
"Email": {"S": "[email protected]"},
248+
"Cidade": {"S": "Rio de Janeiro"}
249+
}'
250+
- |
251+
aws dynamodb put-item \
252+
--table-name Clientes \
253+
--item '{
254+
"ClienteId": {"S": "cliente-003"},
255+
"Nome": {"S": "Carlos Santos"},
256+
"Email": {"S": "[email protected]"},
257+
"Cidade": {"S": "São Paulo"}
258+
}'
245259
- "Consulte usando o índice secundário por email:"
246-
- "`aws dynamodb query \
247-
--table-name Clientes \
248-
--index-name EmailIndex \
249-
--key-condition-expression \"Email = :email\" \
250-
--expression-attribute-values '{\":email\": {\"S\": \"[email protected]\"}}'`"
260+
- |
261+
aws dynamodb query \
262+
--table-name Clientes \
263+
--index-name EmailIndex \
264+
--key-condition-expression "Email = :email" \
265+
--expression-attribute-values '{":email": {"S": "[email protected]"}}'
251266
- "Consulte usando o índice secundário por cidade (para encontrar todos os clientes de São Paulo):"
252-
- "`aws dynamodb query \
253-
--table-name Clientes \
254-
--index-name CidadeIndex \
255-
--key-condition-expression \"Cidade = :cidade\" \
256-
--expression-attribute-values '{\":cidade\": {\"S\": \"São Paulo\"}}'`"
267+
- |
268+
aws dynamodb query \
269+
--table-name Clientes \
270+
--index-name CidadeIndex \
271+
--key-condition-expression "Cidade = :cidade" \
272+
--expression-attribute-values '{":cidade": {"S": "São Paulo"}}'
257273
tips:
258274
- type: "info"
259275
title: "Tipos de índices secundários"

0 commit comments

Comments
 (0)