Internet das Coisas na AWS: Guia Completo
Descubra os serviços da AWS para o desenvolvimento e o gerenciamento de soluções IoT.
I
InSkillCoach
· min
Internet das Coisas na AWS: Guia Completo
Descubra os serviços da AWS para o desenvolvimento e o gerenciamento de soluções IoT.
1. AWS IoT Core
Configuração do Serviço
# Exemplo de configuração do IoT Core
import boto3
def setup_iot_core():
iot = boto3.client('iot')
# Criação de uma política
policy = iot.create_policy(
policyName='MonPolicy',
policyDocument=json.dumps({
'Version': '2012-10-17',
'Statement': [
{
'Effect': 'Allow',
'Action': [
'iot:Connect',
'iot:Publish',
'iot:Subscribe'
],
'Resource': '*'
}
]
})
)
# Criação de uma coisa
thing = iot.create_thing(
thingName='MonCapteur',
attributePayload={
'attributes': {
'type': 'temperature',
'location': 'salle-1'
}
}
)
return {
'policy_arn': policy['policyArn'],
'thing_arn': thing['thingArn']
}
Gerenciamento de Certificados
# Exemplo de gerenciamento de certificados IoT
def manage_iot_certificates():
iot = boto3.client('iot')
# Criação de um certificado
certificate = iot.create_keys_and_certificate(
setAsActive=True
)
# Anexo da política
iot.attach_policy(
policyName='MonPolicy',
target=certificate['certificateArn']
)
# Anexo à coisa
iot.attach_thing_principal(
thingName='MonCapteur',
principal=certificate['certificateArn']
)
return {
'certificate_arn': certificate['certificateArn'],
'public_key': certificate['keyPair']['PublicKey'],
'private_key': certificate['keyPair']['PrivateKey']
}
2. AWS IoT Greengrass
Configuração do Greengrass
# Exemplo de configuração do Greengrass
def setup_greengrass():
greengrass = boto3.client('greengrass')
# Criação de um grupo
group = greengrass.create_group(
Name='MonGroupe',
InitialVersion={
'CoreDefinitionVersionArn': 'arn:aws:greengrass:region:account:/greengrass/definition/cores/1',
'DeviceDefinitionVersionArn': 'arn:aws:greengrass:region:account:/greengrass/definition/devices/1',
'FunctionDefinitionVersionArn': 'arn:aws:greengrass:region:account:/greengrass/definition/functions/1'
}
)
# Criação de uma definição de função
function = greengrass.create_function_definition(
Name='MonFonction',
InitialVersion={
'Functions': [
{
'FunctionArn': 'arn:aws:lambda:region:account:function:MonFonction',
'FunctionConfiguration': {
'Executable': 'python3.7',
'MemorySize': 128,
'Pinned': True,
'Timeout': 3
},
'Id': 'MonFonctionId'
}
]
}
)
return {
'group_id': group['Id'],
'function_arn': function['LatestVersionArn']
}
Implantação de Funções
# Exemplo de implantação de funções do Greengrass
def deploy_greengrass_function():
greengrass = boto3.client('greengrass')
# Criação de uma versão de grupo
group_version = greengrass.create_group_version(
GroupId='MonGroupe',
CoreDefinitionVersionArn='arn:aws:greengrass:region:account:/greengrass/definition/cores/1',
DeviceDefinitionVersionArn='arn:aws:greengrass:region:account:/greengrass/definition/devices/1',
FunctionDefinitionVersionArn='arn:aws:greengrass:region:account:/greengrass/definition/functions/1'
)
# Implantação
deployment = greengrass.create_deployment(
GroupId='MonGroupe',
DeploymentType='NewDeployment',
GroupVersionId=group_version['Version']
)
return deployment['DeploymentId']
3. AWS IoT Analytics
Configuração do Canal
# Exemplo de configuração do IoT Analytics
def setup_iot_analytics():
analytics = boto3.client('iotanalytics')
# Criação de um canal
channel = analytics.create_channel(
channelName='MonCanal',
retentionPeriod={
'unlimited': False,
'numberOfDays': 30
},
storage={
'serviceManagedS3': {}
}
)
# Criação de um pipeline
pipeline = analytics.create_pipeline(
pipelineName='MonPipeline',
activities=[
{
'name': 'MonActivite',
'selectAttributes': {
'attributes': ['temperature', 'timestamp']
}
}
]
)
return {
'channel_arn': channel['channelArn'],
'pipeline_arn': pipeline['pipelineArn']
}
Processamento dos Dados
# Exemplo de processamento de dados IoT
def process_iot_data():
analytics = boto3.client('iotanalytics')
# Criação de um dataset
dataset = analytics.create_dataset(
datasetName='MonDataset',
actions=[
{
'actionName': 'MonAction',
'queryAction': {
'sqlQuery': 'SELECT temperature, timestamp FROM MonCanal WHERE temperature > 30'
}
}
],
triggers=[
{
'schedule': {
'expression': 'rate(1 hour)'
}
}
]
)
return dataset['datasetArn']
4. AWS IoT Device Defender
Configuração da Segurança
# Exemplo de configuração do Device Defender
def setup_device_defender():
defender = boto3.client('iotdevice')
# Criação de uma tarefa de auditoria
audit_task = defender.create_audit_suppression(
checkName='CA_CERTIFICATE_EXPIRING_CHECK',
resourceIdentifier={
'deviceCertificateId': 'MonCertificat'
},
expirationDate=datetime.now() + timedelta(days=30)
)
# Configuração das métricas
metrics = defender.create_metrics_reporting(
targetArn='arn:aws:iot:region:account:thing/MonCapteur',
metricsConfig={
'metrics': [
{
'name': 'CPUUtilization',
'threshold': 80
}
]
}
)
return {
'task_id': audit_task['taskId'],
'metrics_arn': metrics['metricsArn']
}
Monitoramento dos Dispositivos
# Exemplo de monitoramento de dispositivos
def monitor_devices():
defender = boto3.client('iotdevice')
# Criação de uma tarefa de monitoramento
task = defender.create_task(
taskName='MonTache',
targets=['arn:aws:iot:region:account:thing/MonCapteur'],
taskType='AUDIT',
taskParameters={
'checkName': 'CA_CERTIFICATE_EXPIRING_CHECK',
'resourceIdentifier': {
'deviceCertificateId': 'MonCertificat'
}
}
)
return task['taskId']
5. AWS IoT Events
Configuração dos Detectores
# Exemplo de configuração do IoT Events
def setup_iot_events():
events = boto3.client('iotevents')
# Criação de um detector
detector = events.create_detector_model(
detectorModelName='MonDetecteur',
detectorModelDefinition={
'states': [
{
'stateName': 'Normal',
'onInput': {
'events': [
{
'eventName': 'TemperatureHigh',
'condition': 'temperature > 30',
'actions': [
{
'setVariable': {
'variableName': 'alert',
'value': 'true'
}
}
]
}
]
}
}
]
}
)
return detector['detectorModelArn']
Gerenciamento de Eventos
# Exemplo de gerenciamento de eventos IoT
def manage_iot_events():
events = boto3.client('iotevents')
# Criação de um input
input = events.create_input(
inputName='MonInput',
inputDefinition={
'attributes': [
{
'jsonPath': '$.temperature',
'dataType': 'DOUBLE'
}
]
}
)
# Criação de um output
output = events.create_output(
outputName='MonOutput',
outputDefinition={
'attributes': [
{
'jsonPath': '$.alert',
'dataType': 'BOOLEAN'
}
]
}
)
return {
'input_arn': input['inputArn'],
'output_arn': output['outputArn']
}
Conclusão
Pontos-chave a reter:
- Gerenciar os dispositivos com o IoT Core
- Processar os dados na borda com o Greengrass
- Analisar os dados com o IoT Analytics
- Proteger os dispositivos com o Device Defender
- Detectar eventos com o IoT Events
Recomendações:
- Escolher os serviços certos de acordo com as necessidades
- Otimizar a conectividade
- Implementar um monitoramento eficiente
- Proteger as comunicações
- Seguir as boas práticas da AWS
Sobre InSkillCoach
Especialista em treinamento e tecnologias
Coach especializado em tecnologias avançadas e IA, apoiado pela GNeurone Inc.
Certificações:
- AWS Certified Solutions Architect – Professional
- Certificações Google Cloud
- Microsoft Certified: DevOps Engineer Expert
- Certified Kubernetes Administrator (CKA)
- CompTIA Security+
1.2k
145
Comentários
Os comentários são alimentados pelo GitHub Discussions
Conecte-se com o GitHub para participar da discussão