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á.
Arquivo de configuração CLI do Greengrass Development Kit
A interface de linha de comando do kit de AWS IoT Greengrass desenvolvimento (GDK CLI) lê um arquivo de configuração gdk-config.json
chamado para criar e publicar componentes. Esse arquivo de configuração deve existir na raiz do repositório de componentes. Você pode usar o comando init da CLI do GDK para inicializar repositórios de componentes com esse arquivo de configuração.
Formato de arquivo de configuração do GDK CLI
Ao definir um arquivo de configuração da CLI do GDK para um componente, você especifica as seguintes informações no formato JSON.
gdk_version
-
A versão mínima da CLI do GDK compatível com esse componente. Esse valor deve ser uma das versões da CLI do GDK das versões.
component
-
A configuração desse componente.
componentName
-
author
-
O autor ou editor do componente.
version
-
A versão do componente. Especifique um dos seguintes:
-
NEXT_PATCH
— Quando você escolhe essa opção, a CLI do GDK define a versão quando você publica o componente. A CLI do GDK consulta AWS IoT Greengrass o serviço para identificar a versão mais recente publicada do componente. Em seguida, ele define a versão para a próxima versão de patch após essa versão. Se você não publicou o componente antes, a CLI do GDK usa a versão.1.0.0
Se você escolher essa opção, não poderá usar a CLI do Greengrass para implantar e testar localmente o componente em seu computador de desenvolvimento local que executa o software Core. AWS IoT Greengrass Para habilitar implantações locais, você deve especificar uma versão semântica em vez disso.
-
Uma versão semântica, como
1.0.0
. As versões semânticas usam um major. menor. sistema de numeração de patches. Para obter mais informações, consulte a especificação da versão semântica. Se você desenvolver componentes em um dispositivo principal do Greengrass em que deseja implantar e testar o componente, escolha essa opção. Você deve criar o componente com uma versão específica para criar implantações locais com a CLI do Greengrass.
-
build
-
A configuração a ser usada para criar a fonte desse componente em artefatos. Esse objeto contém as seguintes informações:
-
build_system
-
O sistema de compilação a ser usado. Escolha uma das seguintes opções:
-
zip
— Empacota a pasta do componente em um arquivo ZIP para definir como o único artefato do componente. Escolha essa opção para os seguintes tipos de componentes:-
Componentes que usam linguagens de programação interpretadas, como JavaScript Python ou.
-
Componentes que empacotam arquivos que não sejam código, como modelos de aprendizado de máquina ou outros recursos.
A CLI do GDK compacta a pasta do componente em um arquivo zip com o mesmo nome da pasta do componente. Por exemplo, se o nome da pasta do componente for
HelloWorld
, a CLI do GDK criará um arquivo zip chamado.HelloWorld.zip
nota
Se você usa o GDK CLI versão 1.0.0 em um dispositivo Windows, a pasta do componente e os nomes dos arquivos zip devem conter somente letras minúsculas.
Quando a CLI do GDK compacta a pasta do componente em um arquivo zip, ela ignora os seguintes arquivos:
-
O arquivo
gdk-config.json
-
O arquivo da receita (
recipe.json
ourecipe.yaml
) -
Crie pastas, como
greengrass-build
-
-
maven
— Executa omvn clean package
comando para transformar a fonte do componente em artefatos. Escolha essa opção para componentes que usam o Maven, como componentes Java. Em dispositivos Windows, esse recurso está disponível para o GDK CLI v1.1.0 e versões posteriores.
-
gradle
— Executa ogradle build
comando para transformar a fonte do componente em artefatos. Escolha essa opção para componentes que usam o Gradle.Esse recurso está disponível para o GDK CLI v1.1.0 e versões posteriores. O sistema de
gradle
compilação oferece suporte ao Kotlin DSL como arquivo de compilação. Esse recurso está disponível para o GDK CLI v1.2.0 e versões posteriores. -
gradlew
— Executa ogradlew
comando para transformar a fonte do componente em artefatos. Escolha essa opção para componentes que usam o Gradle Wrapper. Esse recurso está disponível para o GDK CLI v1.2.0 e versões posteriores.
-
custom
— Executa um comando personalizado para transformar a fonte do componente em uma receita e artefatos. Especifique o comando personalizado nocustom_build_command
parâmetro.
-
custom_build_command
-
(Opcional) O comando de compilação personalizado a ser executado em um sistema de compilação personalizado. Você deve especificar esse parâmetro se especificar
custom
parabuild_system
.Importante
Esse comando deve criar uma receita e artefatos nas seguintes pastas dentro da pasta do componente. A CLI do GDK cria essas pastas para você quando você executa o comando de construção do componente.
-
Pasta de receitas:
greengrass-build/recipes
-
Pasta de artefatos:
greengrass-build/artifacts/
componentName
/componentVersion
Substitua
componentName
pelo nome do componente e substituacomponentVersion pela versão
do componente ou.NEXT_PATCH
Você pode especificar uma única string ou uma lista de strings, em que cada string é uma palavra no comando. Por exemplo, para executar um comando de compilação personalizado para um componente C++, você pode especificar
cmake --build build --config Release
ou["cmake", "--build", "build", "--config", "Release"]
. -
options
-
(Opcional) Opções de configuração adicionais usadas durante o processo de criação do componente.
Esse recurso está disponível para o GDK CLI v1.2.0 e versões posteriores.
excludes
-
Uma lista de padrões globais que definem quais arquivos excluir do diretório de componentes ao criar o arquivo zip. Válido somente quando o
build_system
ézip
.nota
Nas versões 1.4.0 e anteriores do GDK CLI, qualquer arquivo que corresponda a uma entrada na lista de exclusões é excluído de todos os subdiretórios do componente. Para obter o mesmo comportamento nas versões 1.5.0 e posteriores da CLI do GDK, acrescente às
**/
entradas existentes na lista de exclusões. Por exemplo,*.txt
excluirá arquivos de texto apenas do diretório;**/*.txt
excluirá arquivos de texto de todos os diretórios e subdiretórios.Nas versões 1.5.0 e posteriores da CLI do GDK, você pode ver um aviso durante a criação do componente,
excludes
quando definido no arquivo de configuração do GDK. Para desativar esse aviso, defina a variável de ambienteGDK_EXCLUDES_WARN_IGNORE
comotrue
.A CLI do GDK sempre exclui os seguintes arquivos do arquivo zip:
-
O arquivo
gdk-config.json
-
O arquivo da receita (
recipe.json
ourecipe.yaml
) -
Crie pastas, como
greengrass-build
Os arquivos a seguir são excluídos por padrão. No entanto, você pode controlar quais desses arquivos são excluídos com a
excludes
opção.-
Qualquer pasta que comece com o prefixo “test” ()
test*
-
Todos os arquivos ocultos
-
A pasta
node_modules
.
Se você especificar a
excludes
opção, a CLI do GDK excluirá somente os arquivos definidos com a opção.excludes
Se você não especificar aexcludes
opção, a CLI do GDK excluirá os arquivos e pastas padrão mencionados anteriormente. -
zip_name
-
O nome do arquivo zip a ser usado ao criar um artefato zip durante o processo de compilação. Válido somente quando o
build_system
ézip
. Sebuild_system
estiver vazio, o nome do componente será usado para o nome do arquivo zip.
-
publish
-
A configuração a ser usada para publicar esse componente no AWS IoT Greengrass serviço.
Se você usar o GDK CLI v1.1.0 ou posterior, poderá especificar
--bucket
o argumento para especificar o bucket do S3 em que o GDK CLI carrega os artefatos do componente. Se você não especificar esse argumento, a CLI do GDK será carregada no bucket do S3 cujo nome
é,bucket
-region
-accountId
onde
buckete
region são os valores que você especifica eaccountId
é seu ID. Conta da AWS A CLI do GDK cria o bucket se ele não existir.gdk-config.json
Esse objeto contém as seguintes informações:
bucket
-
O nome do bucket do S3 a ser usado para hospedar artefatos de componentes.
region
-
O Região da AWS local onde a CLI do GDK publica esse componente.
Essa propriedade é opcional se você estiver usando o GDK CLI v1.3.0 ou posterior.
options
-
(Opcional) Opções de configuração adicionais usadas durante a criação da versão do componente.
Esse recurso está disponível para o GDK CLI v1.2.0 e versões posteriores.
file_upload_args
-
Uma estrutura JSON contendo argumentos enviados ao Amazon S3 durante o upload de arquivos para um bucket, como metadados e mecanismos de criptografia. Para obter uma lista dos argumentos permitidos, consulte a
S3Transfer
classe na documentação do Boto3. .
test-e2e
-
(Opcional) A configuração a ser usada durante o end-to-end teste do componente. Esse recurso está disponível para o GDK CLI v1.3.0 e versões posteriores.
build
-
build_system
— O sistema de construção a ser usado. A opção padrão émaven
. Escolha uma das seguintes opções: gtf_version
-
(Opcional) A versão do Greengrass Testing Framework (GTF) a ser usada como dependência do módulo de end-to-end teste ao inicializar o projeto GDK com GTF. Esse valor deve ser uma das versões GTF dos lançamentos
. O padrão é GTF versão 1.1.0. gtf_options
-
(Opcional) Opções de configuração adicionais usadas durante o end-to-end teste do componente.
A lista a seguir inclui as opções que você pode usar com a versão 1.1.0 do GTF.
-
additional-plugins
— (Opcional) Plugins adicionais do Cucumber -
aws-region
— Tem como alvo endpoints regionais específicos para AWS serviços. O padrão é o que o AWS SDK descobre. -
credentials-path
— Caminho opcional AWS de credenciais do perfil. O padrão é credenciais descobertas no ambiente do host. -
credentials-path-rotation
— Duração de rotação opcional para AWS credenciais. O padrão é 15 minutos ou.PT15M
-
csr-path
— O caminho para o CSR usando o qual o certificado do dispositivo será gerado. -
device-mode
— O dispositivo alvo em teste. O padrão é dispositivo local. -
env-stage
— Tem como alvo o ambiente de implantação do Greengrass. O padrão é produção. -
existing-device-cert-arn
— O arn de um certificado existente que você deseja usar como certificado de dispositivo para o Greengrass. -
feature-path
— Arquivo ou diretório contendo arquivos de recursos adicionais. O padrão é que nenhum arquivo de recurso adicional é usado. -
gg-cli-version
— Substitui a versão da CLI do Greengrass. O padrão é o valor encontrado em.ggc.version
-
gg-component-bucket
— O nome de um bucket Amazon S3 existente que abriga componentes do Greengrass. -
gg-component-overrides
— Uma lista de substituições de componentes do Greengrass. -
gg-persist
— Uma lista de elementos de teste a serem persistidos após a execução do teste. O comportamento padrão é não persistir em nada. Os valores aceitos são:aws.resources
installed.software
,generated.files
e. -
gg-runtime
— Uma lista de valores para influenciar a forma como o teste interage com os recursos do teste. Esses valores substituem ogg.persist
parâmetro. Se o padrão for vazio, ele presume que todos os recursos de teste são gerenciados pelo caso de teste, incluindo o tempo de execução do Greengrass instalado. Os valores aceitos são:aws.resources
installed.software
,generated.files
e. -
ggc-archive
— O caminho para o componente do núcleo arquivado do Greengrass. -
ggc-install-root
— Diretório para instalar o componente do núcleo do Greengrass. O padrão é test.temp.path e test run folder. -
ggc-log-level
— Defina o nível de log do núcleo do Greengrass para a execução do teste. O padrão é “INFO”. -
ggc-tes-rolename
— A função do IAM que o AWS IoT Greengrass Core assumirá para acessar AWS os serviços. Se uma função com o nome fornecido não existir, será criada uma política de acesso padrão. -
ggc-trusted-plugins
— A lista separada por vírgula dos caminhos (no host) dos plug-ins confiáveis que precisam ser adicionados ao Greengrass. Para fornecer o caminho no próprio DUT, prefixe o caminho com 'dut: ' -
ggc-user-name
— O valor user:group PosixUser para o núcleo Greengrass. O padrão é o nome de usuário atual que está conectado. -
ggc-version
— Substitui a versão do componente do núcleo do Greengrass em execução. O padrão é o valor encontrado em ggc.archive. -
log-level
— Nível de registro da execução do teste. O padrão é “INFO”. -
parallel-config
— Conjunto de índice de lote e número de lotes como uma string JSON. O valor padrão do índice do lote é 0 e o número de lotes é 1. -
proxy-url
— Configure todos os testes para rotear o tráfego por meio desse URL. -
tags
— Execute apenas tags de recursos. Pode ser cruzado com '&' -
test-id-prefix
— Um prefixo comum aplicado a todos os recursos específicos do teste, incluindo nomes e tags de AWS recursos. O padrão é um prefixo “gg”. -
test-log-path
— Diretório que conterá os resultados de toda a execução do teste. O padrão é “TestResults”. -
test-results-json
— Sinalize para determinar se um relatório JSON do Cucumber resultante foi gerado e gravado no disco. O valor padrão é verdadeiro. -
test-results-log
— Sinalize para determinar se a saída do console foi gerada gravada no disco. O padrão é falso. -
test-results-xml
— Sinalize para determinar se um relatório XML JUnit resultante é gerado e gravado em disco. O valor padrão é verdadeiro. -
test-temp-path
— Diretório para gerar artefatos de teste locais. O padrão é um diretório temporário aleatório prefixado com gg-testing. -
timeout-multiplier
— Multiplicador fornecido para todos os tempos limite de teste. O padrão é 1.0.
-
Exemplos de arquivos de configuração do GDK CLI
Você pode consultar os seguintes exemplos de arquivos de configuração da CLI do GDK para ajudá-lo a configurar ambientes de componentes do Greengrass.
Hello World (Python)
O arquivo de configuração da CLI do GDK a seguir é compatível com um componente Hello World que executa um script Python. Esse arquivo de configuração usa o sistema de zip
compilação para empacotar o script Python do componente em um arquivo ZIP que a CLI do GDK carrega como um artefato.
{ "component": { "com.example.PythonHelloWorld": { "author": "Amazon", "version": "NEXT_PATCH", "build": { "build_system" : "zip", "options": { "excludes": [".*"] } }, "publish": { "bucket": "greengrass-component-artifacts", "region": "us-west-2", "options": { "file_upload_args": { "Metadata": { "
some-key
": "some-value
" } } } } }, "test-e2e":{ "build":{ "build_system": "maven" }, "gtf_version": "1.1.0", "gtf_options": { "tags": "Sample" } }, "gdk_version": "1.6.1" } }
Olá Mundo (Java)
O arquivo de configuração da CLI do GDK a seguir é compatível com um componente Hello World que executa um aplicativo Java. Esse arquivo de configuração usa o sistema de maven
compilação para empacotar o código-fonte Java do componente em um arquivo JAR que a CLI do GDK carrega como um artefato.
{ "component": { "com.example.JavaHelloWorld": { "author": "Amazon", "version": "NEXT_PATCH", "build": { "build_system" : "maven" }, "publish": { "bucket": "greengrass-component-artifacts", "region": "us-west-2", "options": { "file_upload_args": { "Metadata": { "
some-key
": "some-value
" } } } } }, "test-e2e":{ "build":{ "build_system": "maven" }, "gtf_version": "1.1.0", "gtf_options": { "tags": "Sample" } }, "gdk_version": "1.6.1" } }
Componentes da comunidade
Vários componentes da comunidade no Catálogo de Software do Greengrass usam a CLI do GDK. Você pode explorar os arquivos de configuração da CLI do GDK nos repositórios desses componentes.
Para visualizar os arquivos de configuração da CLI do GDK dos componentes da comunidade
-
Execute o comando a seguir para listar os componentes da comunidade que usam a CLI do GDK.
gdk component list --repository
A resposta lista o nome do GitHub repositório para cada componente da comunidade que usa a CLI do GDK. Cada repositório existe na
awslabs
organização.[2022-02-22 17:27:31] INFO - Listing all the available component repositories from Greengrass Software Catalog. [2022-02-22 17:27:31] INFO - Found '6' component repositories to display. 1. aws-greengrass-labs-database-influxdb 2. aws-greengrass-labs-telemetry-influxdbpublisher 3. aws-greengrass-labs-dashboard-grafana 4. aws-greengrass-labs-dashboard-influxdb-grafana 5. aws-greengrass-labs-local-web-server 6. aws-greengrass-labs-lookoutvision-gstreamer
-
Abra o GitHub repositório de um componente da comunidade no seguinte URL.
community-component-name
Substitua pelo nome de um componente da comunidade da etapa anterior.https://github.com/awslabs/
community-component-name