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á.
Gerenciar implantações e componentes locais
nota
Esse recurso está disponível para a versão 2.6.0 e posterior do componente de núcleo do Greengrass.
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.
Tópicos
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.
SDK | Versão mínima |
---|---|
v1.2.10 |
|
v1.5.3 |
|
v1.17.0 |
|
v1.12.0 |
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, consulte Autorizar componentes a realizar operações de IPC.
As políticas de autorização da CLI do Greengrass têm as seguintes propriedades.
Identificador de serviço IPC: aws.greengrass.Cli
Operação | Descrição | Recursos |
---|---|---|
|
Permite que um componente crie uma implantação local no dispositivo principal. |
|
|
Permite que um componente liste implantações locais no dispositivo principal. |
|
|
Permite que um componente obtenha o status de uma implantação local no dispositivo principal. |
Um ID de implantação local ou |
|
Permite que um componente liste componentes no dispositivo principal. |
|
|
Permite que um componente obtenha detalhes sobre um componente no dispositivo principal. |
Um nome de componente, como |
|
Permite que um componente reinicie um componente no dispositivo principal. |
Um nome de componente, como |
|
Permite que um componente interrompa um componente no dispositivo principal. |
Um nome de componente, como |
|
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 fórmulas de componentes, artefatos e argumentos de runtime 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 arquivos de fórmulas de componentes.
artifactDirectoryPath
(Python:artifact_directory_path
)-
(Opcional) O caminho absoluto para a pasta que contém os arquivos de artefato 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 chave-valor: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 chave-valor:key
-
O nome do componente.
value
-
O objeto JSON da 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, consulte Atualizar configurações do componente.
componentToRunWithInfo
(Python:component_to_run_with_info
)-
(Opcional) A configuração de runtime 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 chave-valor:key
-
O nome do componente.
value
-
A configuração de runtime 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, como opção, o grupo a ser usado para executar este componente em 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 essenciais 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 Greengrass atualmente 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 deste 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 quatro núcleos da CPU, é possível definir esse valor como
2
a fim de limitar os processos do componente para 50% de uso em cada núcleo da CPU. Em um dispositivo com um núcleo da CPU, você pode definir esse valor como0.25
a fim de limitar os processos do componente para 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 objetos 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 objeto
LocalDeployment
, que contém as seguintes informações:deploymentId
(Python:deployment_id
)-
O ID da implantação local.
status
-
O status da implantação local. Esse enumerador,
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. Esse enumerador,
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 essencial. Cada objeto nessa lista é um objeto
ComponentDetails
, 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 essencial.
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 essencial.
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 interrupção. 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.