Arquivo de configuração CLI do Greengrass Development Kit - 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á.

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, como1.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 forHelloWorld, 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.jsonourecipe.yaml)

    • Crie pastas, como greengrass-build

  • maven— Executa o mvn 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 o gradle 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 o gradlew 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 no custom_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 substitua componentVersion 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"].

Para ver um exemplo de um sistema de compilação personalizado, consulte GitHub o. aws.greengrass.labs.LocalWebServer community component

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 ambiente GDK_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.jsonourecipe.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 a excludes 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. Se build_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 bucket e region são os valores que você especifica e accountId gdk-config.json é seu ID. Conta da AWS A CLI do GDK cria o bucket se ele não existir.

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 S3Transferclasse 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:

  • maven— Executa o mvn package comando para criar o módulo de teste. Escolha essa opção para criar o módulo de teste que usa o Maven.

  • gradle— Executa o gradle build comando para criar o módulo de teste. Escolha essa opção para o módulo de teste que usa o Gradle.

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.resourcesinstalled.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 o gg.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.resourcesinstalled.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
  1. 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
  2. Abra o GitHub repositório de um componente da comunidade no seguinte URL. community-component-nameSubstitua pelo nome de um componente da comunidade da etapa anterior.

    https://github.com/awslabs/community-component-name