Gerencie implantações e componentes locais - AWS IoT Greengrass

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á.

Gerencie implantações e componentes locais

Use o serviço Greengrass CLI IPC para gerenciar implantações locais e componentes do Greengrass no dispositivo principal.

Para usar essas operações de IPC, inclua a versão 2.6.0 ou posterior do componente Greengrass CLI como uma dependência em seu componente personalizado. Em seguida, você pode usar as operações de IPC em seus componentes personalizados para fazer o seguinte:

  • Crie implantações locais para modificar e configurar os componentes do Greengrass no dispositivo principal.

  • Reinicie e interrompa os componentes do Greengrass no dispositivo principal.

  • Gere uma senha que você possa usar para entrar no console de depuração local.

Versões mínimas do SDK

A tabela a seguir lista as versões mínimas do AWS IoT Device SDK que você deve usar para interagir com o serviço Greengrass CLI IPC.

Autorização

Para usar o serviço Greengrass CLI IPC em um componente personalizado, você deve definir políticas de autorização que permitam que seu componente gerencie implantações e componentes locais. Para obter informações sobre a definição de políticas de autorização, consulteAutorize componentes a realizar operações de IPC.

As políticas de autorização para a CLI do Greengrass têm as seguintes propriedades.

Identificador de serviço IPC: aws.greengrass.Cli

Operation Descrição Recursos

aws.greengrass#CreateLocalDeployment

Permite que um componente crie uma implantação local no dispositivo principal.

*

aws.greengrass#ListLocalDeployments

Permite que um componente liste implantações locais no dispositivo principal.

*

aws.greengrass#GetLocalDeploymentStatus

Permite que um componente obtenha o status de uma implantação local no dispositivo principal.

Um ID de implantação local ou * para permitir o acesso a todas as implantações locais.

aws.greengrass#ListComponents

Permite que um componente liste componentes no dispositivo principal.

*

aws.greengrass#GetComponentDetails

Permite que um componente obtenha detalhes sobre um componente no dispositivo principal.

Um nome de componente, comocom.example.HelloWorld, ou * para permitir o acesso a todos os componentes.

aws.greengrass#RestartComponent

Permite que um componente reinicie um componente no dispositivo principal.

Um nome de componente, comocom.example.HelloWorld, ou * para permitir o acesso a todos os componentes.

aws.greengrass#StopComponent

Permite que um componente interrompa um componente no dispositivo principal.

Um nome de componente, comocom.example.HelloWorld, ou * para permitir o acesso a todos os componentes.

aws.greengrass#CreateDebugPassword

Permite que um componente gere uma senha para usar para entrar no componente do console de depuração local.

*

exemplo Exemplo de política de autorização

O exemplo de políticas de autorização a seguir permite que um componente crie implantações locais, visualize todas as implantações e componentes locais e reinicie e interrompa um componente chamado. com.example.HelloWorld

{ "accessControl": { "aws.greengrass.Cli": { "com.example.MyLocalManagerComponent:cli:1": { "policyDescription": "Allows access to create local deployments and view deployments and components.", "operations": [ "aws.greengrass#CreateLocalDeployment", "aws.greengrass#ListLocalDeployments", "aws.greengrass#GetLocalDeploymentStatus", "aws.greengrass#ListComponents", "aws.greengrass#GetComponentDetails" ], "resources": [ "*" ] } }, "aws.greengrass.Cli": { "com.example.MyLocalManagerComponent:cli:2": { "policyDescription": "Allows access to restart and stop the Hello World component.", "operations": [ "aws.greengrass#RestartComponent", "aws.greengrass#StopComponent" ], "resources": [ "com.example.HelloWorld" ] } } } }

CreateLocalDeployment

Crie ou atualize uma implantação local usando receitas de componentes, artefatos e argumentos de tempo de execução especificados.

Essa operação fornece a mesma funcionalidade do comando deployment create na CLI do Greengrass.

Solicitação

A solicitação dessa operação tem os seguintes parâmetros:

recipeDirectoryPath(Python:) recipe_directory_path

(Opcional) O caminho absoluto para a pasta que contém os arquivos de receitas dos componentes.

artifactDirectoryPath(Python:) artifact_directory_path

(Opcional) O caminho absoluto para a pasta que contém os arquivos de artefatos a serem incluídos na implantação. A pasta de artefatos deve conter a seguinte estrutura de pastas:

/path/to/artifact/folder/component-name/component-version/artifacts
rootComponentVersionsToAdd(Python:) root_component_versions_to_add

(Opcional) As versões dos componentes a serem instaladas no dispositivo principal. Esse objeto,ComponentToVersionMap, é um mapa que contém os seguintes pares de valores-chave:

key

O nome do componente.

value

A versão do componente.

rootComponentsToRemove(Python:) root_components_to_remove

(Opcional) Os componentes a serem desinstalados do dispositivo principal. Especifique uma lista em que cada entrada seja o nome de um componente.

componentToConfiguration(Python:) component_to_configuration

(Opcional) As atualizações de configuração para cada componente na implantação. Esse objeto,ComponentToConfiguration, é um mapa que contém os seguintes pares de valores-chave:

key

O nome do componente.

value

O objeto JSON de atualização de configuração do componente. O objeto JSON deve ter o seguinte formato.

{ "MERGE": { "config-key": "config-value" }, "RESET": [ "path/to/reset/" ] }

Para obter mais informações sobre atualizações de configuração, consulteAtualizar configurações de componentes.

componentToRunWithInfo(Python:) component_to_run_with_info

(Opcional) A configuração de tempo de execução para cada componente na implantação. Essa configuração inclui o usuário do sistema que possui os processos de cada componente e os limites do sistema a serem aplicados a cada componente. Esse objeto,ComponentToRunWithInfo, é um mapa que contém os seguintes pares de valores-chave:

key

O nome do componente.

value

A configuração de tempo de execução do componente. Se você omitir um parâmetro de configuração de tempo de execução, o software AWS IoT Greengrass Core usará os valores padrão que você configura no núcleo do Greengrass. Esse objeto,RunWithInfo, contém as seguintes informações:

posixUser(Python:) posix_user

(Opcional) O usuário do sistema POSIX e, opcionalmente, o grupo a ser usado para executar esse componente nos dispositivos principais do Linux. O usuário e o grupo, se especificados, devem existir em cada dispositivo principal do Linux. Especifique o usuário e o grupo separando-os por dois pontos (:), no seguinte formato: user:group. O grupo é opcional. Se você não especificar um grupo, o software AWS IoT Greengrass Core usará o grupo primário para o usuário. Para obter mais informações, consulte Configurar o usuário que executa os componentes.

windowsUser(Python:) windows_user

(Opcional) O usuário do Windows a ser usado para executar esse componente nos dispositivos principais do Windows. O usuário deve existir em cada dispositivo principal do Windows e seu nome e senha devem ser armazenados na instância do Gerenciador de Credenciais da LocalSystem conta. Para obter mais informações, consulte Configurar o usuário que executa os componentes.

systemResourceLimits(Python:) system_resource_limits

(Opcional) Os limites de recursos do sistema a serem aplicados aos processos desse componente. Você pode aplicar limites de recursos do sistema a componentes Lambda genéricos e não conteinerizados. Para obter mais informações, consulte Configurar limites de recursos do sistema para componentes.

AWS IoT Greengrassatualmente não oferece suporte a esse recurso nos dispositivos principais do Windows.

Esse objeto,SystemResourceLimits, contém as seguintes informações:

cpus

(Opcional) A quantidade máxima de tempo de CPU que os processos desse componente podem usar no dispositivo principal. O tempo total da CPU de um dispositivo essencial é equivalente ao número de núcleos da CPU do dispositivo. Por exemplo, em um dispositivo principal com 4 núcleos de CPU, você pode definir esse valor 2 para limitar os processos desse componente a 50% de uso de cada núcleo da CPU. Em um dispositivo com 1 núcleo de CPU, você pode definir esse valor 0.25 para limitar os processos desse componente a 25% de uso da CPU. Se você definir esse valor como um número maior que o número de núcleos de CPU, o software AWS IoT Greengrass Core não limitará o uso da CPU do componente.

memory

(Opcional) A quantidade máxima de RAM (em kilobytes) que os processos desse componente podem usar no dispositivo principal.

groupName(Python:) group_name

(Opcional) O nome do grupo de coisas a ser direcionado com essa implantação.

Resposta

A resposta dessa operação tem as seguintes informações:

deploymentId(Python:) deployment_id

O ID da implantação local que a solicitação criou.

ListLocalDeployments

Obtém o status das últimas 10 implantações locais.

Essa operação fornece a mesma funcionalidade do comando de lista de implantação na CLI do Greengrass.

Solicitação

A solicitação dessa operação não tem nenhum parâmetro.

Resposta

A resposta dessa operação tem as seguintes informações:

localDeployments(Python:) local_deployments

A lista de implantações locais. Cada objeto nessa lista é um LocalDeployment objeto, que contém as seguintes informações:

deploymentId(Python:) deployment_id

O ID da implantação local.

status

O status da implantação local. Essa enumeração,DeploymentStatus, tem os seguintes valores:

  • QUEUED

  • IN_PROGRESS

  • SUCCEEDED

  • FAILED

GetLocalDeploymentStatus

Obtém o status de uma implantação local.

Essa operação fornece a mesma funcionalidade do comando de status de implantação na CLI do Greengrass.

Solicitação

A solicitação dessa operação tem os seguintes parâmetros:

deploymentId(Python:) deployment_id

O ID da implantação local a ser obtida.

Resposta

A resposta dessa operação tem as seguintes informações:

deployment

A implantação local. Esse objeto,LocalDeployment, contém as seguintes informações:

deploymentId(Python:) deployment_id

O ID da implantação local.

status

O status da implantação local. Essa enumeração,DeploymentStatus, tem os seguintes valores:

  • QUEUED

  • IN_PROGRESS

  • SUCCEEDED

  • FAILED

ListComponents

Obtém o nome, a versão, o status e a configuração de cada componente raiz no dispositivo principal. Um componente raiz é um componente que você especifica em uma implantação. Essa resposta não inclui componentes que são instalados como dependências de outros componentes.

Essa operação fornece a mesma funcionalidade do comando de lista de componentes na CLI do Greengrass.

Solicitação

A solicitação dessa operação não tem nenhum parâmetro.

Resposta

A resposta dessa operação tem as seguintes informações:

components

A lista de componentes raiz no dispositivo principal. Cada objeto nessa lista é um ComponentDetails objeto, que contém as seguintes informações:

componentName(Python:) component_name

O nome do componente.

version

A versão do componente.

state

O estado do componente. Esse estado pode ser um dos seguintes:

  • BROKEN

  • ERRORED

  • FINISHED

  • INSTALLED

  • NEW

  • RUNNING

  • STARTING

  • STOPPING

configuration

A configuração do componente como um objeto JSON.

GetComponentDetails

Obtém a versão, o status e a configuração de um componente no dispositivo principal.

Essa operação fornece a mesma funcionalidade do comando de detalhes do componente na CLI do Greengrass.

Solicitação

A solicitação dessa operação tem os seguintes parâmetros:

componentName(Python:) component_name

O nome do componente a ser obtido.

Resposta

A resposta dessa operação tem as seguintes informações:

componentDetails(Python:) component_details

Os detalhes do componente. Esse objeto,ComponentDetails, contém as seguintes informações:

componentName(Python:) component_name

O nome do componente.

version

A versão do componente.

state

O estado do componente. Esse estado pode ser um dos seguintes:

  • BROKEN

  • ERRORED

  • FINISHED

  • INSTALLED

  • NEW

  • RUNNING

  • STARTING

  • STOPPING

configuration

A configuração do componente como um objeto JSON.

RestartComponent

Reinicia um componente no dispositivo principal.

nota

Embora você possa reiniciar qualquer componente, recomendamos que você reinicie somente componentes genéricos.

Essa operação fornece a mesma funcionalidade do comando de reinicialização do componente na CLI do Greengrass.

Solicitação

A solicitação dessa operação tem os seguintes parâmetros:

componentName(Python:) component_name

O nome do componente.

Resposta

A resposta dessa operação tem as seguintes informações:

restartStatus(Python:) restart_status

O status da solicitação de reinicialização. O status da solicitação pode ser um dos seguintes:

  • SUCCEEDED

  • FAILED

message

Uma mensagem sobre por que o componente falhou na reinicialização, se a solicitação falhou.

StopComponent

Interrompe os processos de um componente no dispositivo principal.

nota

Embora você possa interromper qualquer componente, recomendamos que você interrompa somente os componentes genéricos.

Essa operação fornece a mesma funcionalidade do comando de parada do componente na CLI do Greengrass.

Solicitação

A solicitação dessa operação tem os seguintes parâmetros:

componentName(Python:) component_name

O nome do componente.

Resposta

A resposta dessa operação tem as seguintes informações:

stopStatus(Python:) stop_status

O status da solicitação de parada. O status da solicitação pode ser um dos seguintes:

  • SUCCEEDED

  • FAILED

message

Uma mensagem sobre o motivo pelo qual o componente não foi interrompido, se a solicitação falhou.

CreateDebugPassword

Gera uma senha aleatória que você pode usar para entrar no componente local do console de depuração. A senha expira 8 horas depois de ser gerada.

Essa operação fornece a mesma funcionalidade do get-debug-password comando na CLI do Greengrass.

Solicitação

A solicitação dessa operação não tem nenhum parâmetro.

Resposta

A resposta dessa operação tem as seguintes informações:

username

O nome de usuário a ser usado para fazer login.

password

A senha a ser usada para fazer login.

passwordExpiration(Python:) password_expiration

A hora em que a senha expira.

certificateSHA256Hash(Python:) certificate_sha256_hash

A impressão digital SHA-256 do certificado autoassinado que o console de depuração local usa quando o HTTPS está ativado. Ao abrir o console de depuração local, use essa impressão digital para verificar se o certificado é legítimo e se a conexão é segura.

certificateSHA1Hash(Python:) certificate_sha1_hash

A impressão digital SHA-1 do certificado autoassinado que o console de depuração local usa quando o HTTPS está ativado. Ao abrir o console de depuração local, use essa impressão digital para verificar se o certificado é legítimo e se a conexão é segura.