-
Notifications
You must be signed in to change notification settings - Fork 0
/
GCPScript.sh
57 lines (43 loc) · 2.09 KB
/
GCPScript.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#!/bin/bash
#Script .sh pra rodar e automatizar o provisionamento da infraestrutura na nuvem
#Este codigo provisiona do IoT hub, que funciano como porta de entrada e metodo de autenticacao,
#ate o servico Pub/Sub que le as mensagens recebidas e as publica num topico
#Atencao, o script precisa ser modificado de acordo com a necessidade
export PROJECT_ID= #insira o nome do projeto aqui
export REGION= #insira a regiao aqui
export TOPIC_ID= #insisra a ID do topico aqui
export SUBSCRIPTION= #insisra a subscricao aqui
export REGISTRY= #insisra o nome do registro aqui
export DEVICE_ID= #insira a identificacao do dispositivo
#Aqui inicia o processo
#Autoriza o Cloud Shell para fazer alteracoes
gcloud auth login
#O comando abaixo cria um novo projeto. Caso ainda nao tenha criado via console descomente a linha abaixo
#gcloud projects create $PROJECT_ID
#Aqui temos certeza de que estamos provisionando a infraestrutura no projeto correto
gcloud config set project $PROJECT_ID
#Ativar as APIs CloudIoT e PubSub
gcloud services enable cloudiot.googleapis.com pubsub.googleapis.com cloudfunctions.googleapis.com
#Adicionar conta de servico do cloud IoT para poder publicar no Pub/Sub
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member=serviceAccount:[email protected] \
--role=roles/pubsub.publisher
#Criar um topico no Pub/Sub
gcloud pubsub topics create $TOPIC_ID
#Criar uma subscricao com o nome definido no topico
gcloud pubsub subscriptions create --topic $TOPIC_ID $SUBSCRIPTION
#cria o registro na regiao escolhida e ativa mqtt e http
gcloud iot registries create $REGISTRY \
--region=$REGION \
--event-notification-config=topic=temperature-topic \
--enable-mqtt-config --enable-http-config
#cria uma chave privada 256
openssl ecparam -genkey -name prime256v1 -noout -out ec_private.pem
#cria uma chave publica 256
openssl ec -in ec_private.pem -pubout -out ec_public.pem
#realiza o registro do dispositivo com a chave publica
gcloud iot devices create $DEVICE_ID \
--region=$REGION \
--registry=$REGISTRY \
--public-key="path=./ec_public.pem,type=es256"
#fim