

Aviso de fim do suporte: em 7 de outubro de 2026, AWS o suporte para o. AWS IoT Greengrass Version 1 Depois de 7 de outubro de 2026, você não poderá mais acessar os AWS IoT Greengrass V1 recursos. Para obter mais informações, visite [Migrar de AWS IoT Greengrass Version 1](https://docs.aws.amazon.com/greengrass/v2/developerguide/migrate-from-v1.html).

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Conector de notificações Twilio
<a name="twilio-notifications-connector"></a>

**Atenção**  <a name="connectors-extended-life-phase-warning"></a>
Esse conector passou para a * fase de vida útil estendida* e AWS IoT Greengrass não lançará atualizações que forneçam atributos, aprimoramentos para atributos existentes, patches de segurança ou correções de erros. Para obter mais informações, consulte [AWS IoT Greengrass Version 1 política de manutenção](maintenance-policy.md).

O [conector](connectors.md) de notificações Twilio faz chamadas telefônicas automatizadas ou envia mensagens SMS por meio do Twilio. Você pode usar esse conector para enviar notificações em resposta a eventos no grupo do Greengrass. Para chamadas telefônicas, o conector pode encaminhar uma mensagem de voz para o destinatário.

Esse conector recebe informações de mensagens do Twilio em um tópico MQTT e aciona uma notificação do Twilio.

**nota**  
Para obter um tutorial que mostra como usar o conector de notificações Twilio, consulte [Conceitos básicos de conectores do Greengrass (console)](connectors-console.md) ou [Conceitos básicos de conectores do Greengrass (CLI)](connectors-cli.md).

Esse conector tem as seguintes versões.


| Versão | ARN | 
| --- | --- | 
| 5 | `arn:aws:greengrass:region::/connectors/TwilioNotifications/versions/5` | 
| 4 | `arn:aws:greengrass:region::/connectors/TwilioNotifications/versions/4` | 
| 3 | `arn:aws:greengrass:region::/connectors/TwilioNotifications/versions/3` | 
| 2 | `arn:aws:greengrass:region::/connectors/TwilioNotifications/versions/2` | 
| 1 | `arn:aws:greengrass:region::/connectors/TwilioNotifications/versions/1` | 

Para obter informações sobre alterações de versão, consulte o [Changelog](#twilio-notifications-connector-changelog).

## Requisitos
<a name="twilio-notifications-connector-req"></a>

Esse conector tem os seguintes requisitos:

------
#### [ Version 4 - 5 ]
+ <a name="conn-req-ggc-v1.9.3-secrets"></a>AWS IoT Greengrass Software principal v1.9.3 ou posterior. AWS IoT Greengrass deve ser configurado para oferecer suporte a segredos locais, conforme descrito em [Requisitos de segredos](secrets.md#secrets-reqs).
**nota**  
Este requisito inclui permitir o acesso aos seus segredos do Secrets Manager. Se você estiver usando a função de serviço padrão do Greengrass, o Greengrass terá permissão para obter os valores de segredos com nomes que começam com *greengrass-*.
+ <a name="conn-req-py-3.7-and-3.8"></a>[Python](https://www.python.org/), versão 3.7 ou 3.8, instalado no dispositivo de núcleo e adicionado à variável de ambiente PATH.
**nota**  <a name="use-runtime-py3.8"></a>
Para usar o Python 3.8, execute o comando a seguir para criar um symblink da pasta de instalação padrão do Python 3.7 para os binários instalados do Python 3.8.  

  ```
  sudo ln -s path-to-python-3.8/python3.8 /usr/bin/python3.7
  ```
Isso configura seu dispositivo para atender ao requisito Python para AWS IoT Greengrass.
+ Um SID da conta do Twilio, um token de autorização e um número de telefone habilitado para Twilio. Depois de criar um projeto do Twilio, esses valores estarão disponíveis no painel do projeto.
**nota**  
Você pode usar uma conta de teste do Twilio. Se você estiver usando uma conta de teste, você deve adicionar números de telefone que não são de destinatários do Twilio a uma lista de números de telefone verificados. Para obter mais informações, consulte [Como trabalhar com a sua conta de teste gratuita do Twilio](https://www.twilio.com/docs/usage/tutorials/how-to-use-your-free-trial-account).
+ <a name="conn-twilio-req-secret"></a>Um segredo de tipo de texto AWS Secrets Manager que armazena o token de autenticação do Twilio. Para obter mais informações, consulte [Criar um segredo básico](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_create-basic-secret.html) no *Guia do usuário do AWS Secrets Manager *.
**nota**  
Para criar o segredo no console do Secrets Manager, insira seu token na guia **Texto simples**. Não inclua aspas ou outra formatação. Na API, especifique o token como o valor da propriedade `SecretString`.
+ Um recurso de segredo no grupo do Greengrass que faz referência ao segredo do Secrets Manager. Para obter mais informações, consulte [Implante segredos até o AWS IoT Greengrass âmago](secrets.md).

------
#### [ Versions 1 - 3 ]
+ <a name="conn-req-ggc-v1.7.0-secrets"></a>AWS IoT Greengrass Software principal v1.7 ou posterior. AWS IoT Greengrass deve ser configurado para oferecer suporte a segredos locais, conforme descrito em [Requisitos de segredos](secrets.md#secrets-reqs).
**nota**  
Este requisito inclui permitir o acesso aos seus segredos do Secrets Manager. Se você estiver usando a função de serviço padrão do Greengrass, o Greengrass terá permissão para obter os valores de segredos com nomes que começam com *greengrass-*.
+ [Python](https://www.python.org/) versão 2.7 instalado no dispositivo de núcleo e adicionado à variável de ambiente PATH.
+ Um SID da conta do Twilio, um token de autorização e um número de telefone habilitado para Twilio. Depois de criar um projeto do Twilio, esses valores estarão disponíveis no painel do projeto.
**nota**  
Você pode usar uma conta de teste do Twilio. Se você estiver usando uma conta de teste, você deve adicionar números de telefone que não são de destinatários do Twilio a uma lista de números de telefone verificados. Para obter mais informações, consulte [Como trabalhar com a sua conta de teste gratuita do Twilio](https://www.twilio.com/docs/usage/tutorials/how-to-use-your-free-trial-account).
+ <a name="conn-twilio-req-secret"></a>Um segredo de tipo de texto AWS Secrets Manager que armazena o token de autenticação do Twilio. Para obter mais informações, consulte [Criar um segredo básico](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_create-basic-secret.html) no *Guia do usuário do AWS Secrets Manager *.
**nota**  
Para criar o segredo no console do Secrets Manager, insira seu token na guia **Texto simples**. Não inclua aspas ou outra formatação. Na API, especifique o token como o valor da propriedade `SecretString`.
+ Um recurso de segredo no grupo do Greengrass que faz referência ao segredo do Secrets Manager. Para obter mais informações, consulte [Implante segredos até o AWS IoT Greengrass âmago](secrets.md).

------

## Parâmetros do conector
<a name="twilio-notifications-connector-param"></a>

Esse conector oferece os seguintes parâmetros.

------
#### [ Version 5 ]

`TWILIO_ACCOUNT_SID`  <a name="twilio-TWILIO_ACCOUNT_SID"></a>
O SID da conta do Twilio que é usado para invocar a API do Twilio.  
Nome de exibição no AWS IoT console: SID da **conta Twilio**  
Obrigatório: `true`  
Digite: `string`  
Padrão válido: `.+`

`TwilioAuthTokenSecretArn`  <a name="twilio-TwilioAuthTokenSecretArn"></a>
O ARN do segredo do Secrets Manager que armazena o token de autenticação do Twilio.  
É usado para acessar o valor do segredo local no núcleo.
Nome de exibição no AWS IoT console: **ARN do segredo do token de autenticação do Twilio**  
Obrigatório: `true`  
Digite: `string`  
Padrão válido: `arn:aws:secretsmanager:[a-z0-9\-]+:[0-9]{12}:secret:([a-zA-Z0-9\\]+/)*[a-zA-Z0-9/_+=,.@\-]+-[a-zA-Z0-9]+`

`TwilioAuthTokenSecretArn-ResourceId`  <a name="twilio-TwilioAuthTokenSecretArn-ResourceId"></a>
O ID do recurso de segredo no grupo do Greengrass que faz referência ao segredo para o token de autenticação do Twilio.  
Nome de exibição no AWS IoT console: recurso de token de **autenticação Twilio**  
Obrigatório: `true`  
Digite: `string`  
Padrão válido: `.+`

`DefaultFromPhoneNumber`  <a name="twilio-DefaultFromPhoneNumber"></a>
O número de telefone padrão habilitado e usado pelo Twilio para enviar mensagens. O Twilio usa esse número para iniciar a mensagem ou chamada.  
+ Se você não configurar um número de telefone padrão, deverá especificar um número de telefone na propriedade `from_number` no corpo da mensagem de entrada.
+ Se você configurar um número de telefone padrão, poderá substituir o padrão especificando a propriedade `from_number` no corpo da mensagem de entrada.
Nome de exibição no AWS IoT console: **padrão a partir do número de telefone**  
Obrigatório: `false`  
Digite: `string`  
Padrão válido: `^$|\+[0-9]+`

`IsolationMode`  <a name="IsolationMode"></a>
O modo de [conteinerização](connectors.md#connector-containerization) para este conector. O padrão é`GreengrassContainer`, o que significa que o conector é executado em um ambiente de execução isolado dentro do AWS IoT Greengrass contêiner.  
A configuração padrão de conteinerização para o grupo não se aplica aos conectores.
Nome de exibição no AWS IoT console: **modo de isolamento de contêiner**  
Obrigatório: `false`  
Digite: `string`  
Valores válidos: `GreengrassContainer` ou `NoContainer`  
Padrão válido: `^NoContainer$|^GreengrassContainer$`

------
#### [ Version 1 - 4 ]

`TWILIO_ACCOUNT_SID`  <a name="twilio-TWILIO_ACCOUNT_SID"></a>
O SID da conta do Twilio que é usado para invocar a API do Twilio.  
Nome de exibição no AWS IoT console: SID da **conta Twilio**  
Obrigatório: `true`  
Digite: `string`  
Padrão válido: `.+`

`TwilioAuthTokenSecretArn`  <a name="twilio-TwilioAuthTokenSecretArn"></a>
O ARN do segredo do Secrets Manager que armazena o token de autenticação do Twilio.  
É usado para acessar o valor do segredo local no núcleo.
Nome de exibição no AWS IoT console: **ARN do segredo do token de autenticação do Twilio**  
Obrigatório: `true`  
Digite: `string`  
Padrão válido: `arn:aws:secretsmanager:[a-z0-9\-]+:[0-9]{12}:secret:([a-zA-Z0-9\\]+/)*[a-zA-Z0-9/_+=,.@\-]+-[a-zA-Z0-9]+`

`TwilioAuthTokenSecretArn-ResourceId`  <a name="twilio-TwilioAuthTokenSecretArn-ResourceId"></a>
O ID do recurso de segredo no grupo do Greengrass que faz referência ao segredo para o token de autenticação do Twilio.  
Nome de exibição no AWS IoT console: recurso de token de **autenticação Twilio**  
Obrigatório: `true`  
Digite: `string`  
Padrão válido: `.+`

`DefaultFromPhoneNumber`  <a name="twilio-DefaultFromPhoneNumber"></a>
O número de telefone padrão habilitado e usado pelo Twilio para enviar mensagens. O Twilio usa esse número para iniciar a mensagem ou chamada.  
+ Se você não configurar um número de telefone padrão, deverá especificar um número de telefone na propriedade `from_number` no corpo da mensagem de entrada.
+ Se você configurar um número de telefone padrão, poderá substituir o padrão especificando a propriedade `from_number` no corpo da mensagem de entrada.
Nome de exibição no AWS IoT console: **padrão a partir do número de telefone**  
Obrigatório: `false`  
Digite: `string`  
Padrão válido: `^$|\+[0-9]+`

------

### Exemplo de criação de conector (AWS CLI)
<a name="twilio-notifications-connector-create"></a>

O seguinte comando da CLI de exemplo cria um `ConnectorDefinition` com uma versão inicial que contém o conector de notificações Twilio.

```
aws greengrass create-connector-definition --name MyGreengrassConnectors --initial-version '{
    "Connectors": [
        {
            "Id": "MyTwilioNotificationsConnector",
            "ConnectorArn": "arn:aws:greengrass:region::/connectors/TwilioNotifications/versions/5",
            "Parameters": {
                "TWILIO_ACCOUNT_SID": "abcd12345xyz",
                "TwilioAuthTokenSecretArn": "arn:aws:secretsmanager:region:account-id:secret:greengrass-secret-hash",
                "TwilioAuthTokenSecretArn-ResourceId": "MyTwilioSecret",
                "DefaultFromPhoneNumber": "+19999999999",
                "IsolationMode" : "GreengrassContainer"
            }
        }
    ]
}'
```

Para obter tutoriais que mostram como adicionar o conector de notificações Twilio a um grupo, consulte [Conceitos básicos de conectores do Greengrass (CLI)](connectors-cli.md) e [Conceitos básicos de conectores do Greengrass (console)](connectors-console.md).

## Dados de entrada
<a name="twilio-notifications-connector-data-input"></a>

Esse conector aceita informações de mensagens do Twilio em dois tópicos MQTT. As mensagens de entrada devem estar no formato JSON.
+ Informações de mensagens SMS no tópico `twilio/txt`.
+ Informações de mensagens de voz no tópico `twilio/call`.

**nota**  
A carga da mensagem de entrada pode incluir uma mensagem SMS (`message`) ou mensagem de voz (`voice_message_location`), mas não as duas.

**Filtro de tópico: `twilio/txt`**    
**Propriedades de mensagens**    
`request`  
Informações sobre a notificação do Twilio.  
Obrigatório: `true`  
Tipo: `object` que inclui as seguintes propriedades:    
`recipient`  
O destinatário da mensagem. Somente um destinatário tem suporte.  
Obrigatório: `true`  
Tipo: `object` que inclui as seguintes propriedades:    
`name`  
O nome do destinatário.  
Obrigatório: `true`  
Digite: `string`  
Padrão válido: `.*`  
`phone_number`  
O número de telefone do destinatário.  
Obrigatório: `true`  
Digite: `string`  
Padrão válido: `\+[1-9]+`  
`message`  
O conteúdo de texto da mensagem SMS. Somente mensagens SMS têm suporte neste tópico. Para mensagens de voz, use `twilio/call`.  
Obrigatório: `true`  
Digite: `string`  
Padrão válido: `.+`  
`from_number`  
O número de telefone do remetente. O Twilio usa esse número de telefone para iniciar a mensagem. Essa propriedade será necessária se o parâmetro `DefaultFromPhoneNumber` não estiver configurado. Se `DefaultFromPhoneNumber` estiver configurado, você poderá usar essa propriedade para substituir o padrão.  
Obrigatório: `false`  
Digite: `string`  
Padrão válido: `\+[1-9]+`  
`retries`  
O número de novas tentativas. O padrão é 0.  
Obrigatório: `false`  
Digite: `integer`  
`id`  
Um ID arbitrário para a solicitação. Essa propriedade é usada para mapear a solicitação de entrada para uma resposta de saída.   
Obrigatório: `true`  
Digite: `string`  
Padrão válido: `.+`  
**Exemplo de entrada**  

```
{
    "request": {
        "recipient": {
            "name": "Darla",
            "phone_number": "+12345000000",
            "message": "Hello from the edge"
        },
        "from_number": "+19999999999",
        "retries": 3
    },
    "id": "request123"
}
```

**Filtro de tópico: `twilio/call`**    
**Propriedades de mensagens**    
`request`  
Informações sobre a notificação do Twilio.  
Obrigatório: `true`  
Tipo: `object` que inclui as seguintes propriedades:    
`recipient`  
O destinatário da mensagem. Somente um destinatário tem suporte.  
Obrigatório: `true`  
Tipo: `object` que inclui as seguintes propriedades:    
`name`  
O nome do destinatário.  
Obrigatório: `true`  
Digite: `string`  
Padrão válido: `.+`  
`phone_number`  
O número de telefone do destinatário.  
Obrigatório: `true`  
Digite: `string`  
Padrão válido: `\+[1-9]+`  
`voice_message_location`  
O URL do conteúdo de áudio para a mensagem de voz. Deve estar no formato TwiML. Somente mensagens de voz têm suporte neste tópico. Para mensagens SMS, use `twilio/txt`.  
Obrigatório: `true`  
Digite: `string`  
Padrão válido: `.+`  
`from_number`  
O número de telefone do remetente. O Twilio usa esse número de telefone para iniciar a mensagem. Essa propriedade será necessária se o parâmetro `DefaultFromPhoneNumber` não estiver configurado. Se `DefaultFromPhoneNumber` estiver configurado, você poderá usar essa propriedade para substituir o padrão.  
Obrigatório: `false`  
Digite: `string`  
Padrão válido: `\+[1-9]+`  
`retries`  
O número de novas tentativas. O padrão é 0.  
Obrigatório: `false`  
Digite: `integer`  
`id`  
Um ID arbitrário para a solicitação. Essa propriedade é usada para mapear a solicitação de entrada para uma resposta de saída.   
Obrigatório: `true`  
Digite: `string`  
Padrão válido: `.+`  
**Exemplo de entrada**  

```
{
    "request": {
        "recipient": {
            "name": "Darla",
            "phone_number": "+12345000000",
            "voice_message_location": "https://some-public-TwiML"
        },
        "from_number": "+19999999999",
        "retries": 3
    },
    "id": "request123"
}
```

## Dados de saída
<a name="twilio-notifications-connector-data-output"></a>

O conector publica informações de status como dados de saída em um tópico MQTT.

<a name="topic-filter"></a>**Filtro de tópico na assinatura**  
`twilio/message/status`

**Exemplo de resultado: sucesso**  

```
{
    "response": {
        "status": "success",
        "payload": {
            "from_number": "+19999999999",
            "messages": {
                "message_status": "queued",
                "to_number": "+12345000000",
                "name": "Darla"
            }
        }
    },
    "id": "request123"
}
```

**Exemplo de resultado: falha**  

```
{
    "response": {
        "status": "fail",
        "error_message": "Recipient name cannot be None",
        "error": "InvalidParameter",
        "payload": None
        }
    },
    "id": "request123"
}
```
A propriedade `payload` na saída é a resposta da API do Twilio quando a mensagem é enviada. Se o conector detecta que os dados de entrada são inválidos (por exemplo, se ele não especifica um campo de entrada obrigatório), o conector retorna um erro e define o valor como `None`. Veja as cargas de exemplo a seguir:  

```
{
    'from_number':'+19999999999',
    'messages': {
        'name':'Darla',
        'to_number':'+12345000000',
        'message_status':'undelivered'
    }
}
```

```
{
    'from_number':'+19999999999',
    'messages': {
        'name':'Darla',
        'to_number':'+12345000000',
        'message_status':'queued'
    }
}
```

## Exemplo de uso
<a name="twilio-notifications-connector-usage"></a>

<a name="connectors-setup-intro"></a>Use as seguintes etapas de alto nível para configurar um exemplo de função do Lambda Python 3.7 que pode ser usado para testar o conector.

**nota**  <a name="connectors-setup-get-started-topics"></a>
Os [Conceitos básicos de conectores do Greengrass (CLI)](connectors-cli.md) tópicos [Conceitos básicos de conectores do Greengrass (console)](connectors-console.md) e contêm end-to-end etapas que mostram como configurar, implantar e testar o conector Twilio Notifications.

1. Certifique-se de cumprir os [requisitos](#twilio-notifications-connector-req) para o conector.

1. <a name="connectors-setup-function"></a>Crie e publique uma função do Lambda que envie dados de entrada para o conector.

   Salve o [código de exemplo](#twilio-notifications-connector-usage-example) como arquivo PY. <a name="connectors-setup-function-sdk"></a>Baixe e descompacte o [SDK do AWS IoT Greengrass Core para Python](lambda-functions.md#lambda-sdks-core). Crie então um pacote zip que contenha o arquivo PY e a pasta `greengrasssdk` no nível raiz. Este pacote zip é o pacote de implantação que você transfere por upload para o AWS Lambda.

   <a name="connectors-setup-function-publish"></a>Depois de criar a função do Lambda Python 3.7, publique uma versão de função e crie um alias.

1. Configure o grupo do Greengrass.

   1. <a name="connectors-setup-gg-function"></a>Adicione a função do Lambda pelo seu alias (recomendado). Configure o ciclo de vida do Lambda como de longa duração (ou `"Pinned": true` na CLI).

   1. <a name="connectors-setup-secret-resource"></a>Adicione o recurso de segredode segredo necessário e conceda acesso de leitura à função do Lambda.

   1. Adicione o conector e configure seus [parâmetros](#twilio-notifications-connector-param).

   1. Adicione assinaturas que permitam que o conector receba [dados de entrada](#twilio-notifications-connector-data-input) e envie [dados de saída](#twilio-notifications-connector-data-output) em filtros de tópico compatíveis.
      + <a name="connectors-setup-subscription-input-data"></a>Defina a função do Lambda como origem, o conector como destino e use um filtro de tópico de entrada compatível.
      + <a name="connectors-setup-subscription-output-data"></a>Defina o conector como origem, o AWS IoT Core como destino, e use um filtro de tópico de saída compatível. Você usa essa assinatura para visualizar mensagens de status no AWS IoT console.

1. <a name="connectors-setup-deploy-group"></a>Implante o grupo.

1. <a name="connectors-setup-test-sub"></a>No AWS IoT console, na página **Teste**, inscreva-se no tópico de dados de saída para ver as mensagens de status do conector. A função de exemplo do Lambda é de longa duração e começa a enviar mensagens imediatamente após o grupo ser implantado.

   Ao finalizar o teste, você pode definir o ciclo de vida do Lambda como sob demanda (ou `"Pinned": false` na CLI) e implantar o grupo. Isso impede o envio de mensagens pela função.

### Exemplo
<a name="twilio-notifications-connector-usage-example"></a>

O exemplo a seguir da função do Lambda envia uma mensagem de entrada para o conector. Este exemplo aciona uma mensagem de texto.

```
import greengrasssdk
import json

iot_client = greengrasssdk.client('iot-data')
TXT_INPUT_TOPIC = 'twilio/txt'
CALL_INPUT_TOPIC = 'twilio/call'

def publish_basic_message():

    txt = {
        "request": {
            "recipient" : {
                "name": "Darla",
                "phone_number": "+12345000000",
                "message": 'Hello from the edge'
            },
            "from_number" : "+19999999999"
        },
        "id" : "request123"
    }
    
    print("Message To Publish: ", txt)

    client.publish(topic=TXT_INPUT_TOPIC,
                   payload=json.dumps(txt))

publish_basic_message()

def lambda_handler(event, context):
    return
```

## Licenças
<a name="twilio-notifications-connector-license"></a>

O conector de notificações Twilio inclui o seguinte licenciamento/software de terceiros:
+ [twilio-python](https://github.com/twilio/twilio-python)/MIT

Esse conector é liberado de acordo com o [Contrato de licença de software do Greengrass Core](https://greengrass-release-license.s3.us-west-2.amazonaws.com/greengrass-license-v1.pdf).

## Changelog
<a name="twilio-notifications-connector-changelog"></a>

A tabela a seguir descreve as alterações em cada versão do conector.


| Versão | Alterações | 
| --- | --- | 
| 5 | <a name="isolation-mode-changelog"></a>Adicionado o parâmetro `IsolationMode` para configurar o modo de conteinerização para o conector. | 
| 4 | <a name="upgrade-runtime-py3.7"></a>Atualização do runtime do Lambda para Python 3.7, o que altera o requisito de runtime. | 
| 3 | Corrija para reduzir o registro excessivo. | 
| 2 | Correções de bugs secundários e melhorias. | 
| 1 | Versão inicial.  | 

<a name="one-conn-version"></a>Um grupo do Greengrass só pode conter uma versão do conector por vez. Para obter informações sobre como fazer upgrade de uma versão do conector, consulte [Atualizar a versões do conector](connectors.md#upgrade-connector-versions).

## Consulte também
<a name="twilio-notifications-connector-see-also"></a>
+ [Integrar a serviços e protocolos usando conectores do Greengrass](connectors.md)
+ [Conceitos básicos de conectores do Greengrass (console)](connectors-console.md)
+ [Conceitos básicos de conectores do Greengrass (CLI)](connectors-cli.md)
+ [Referência da API do Twilio](https://www.twilio.com/docs/api)