Crie AWS IoT Greengrass componentes - 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á.

Crie AWS IoT Greengrass componentes

Você pode desenvolver AWS IoT Greengrass componentes personalizados em um computador de desenvolvimento local ou em um dispositivo principal do Greengrass. AWS IoT Greengrass fornece a interface de linha de comando do kit de AWS IoT Greengrass desenvolvimento (GDK CLI) para ajudá-lo a criar, criar e publicar componentes a partir de modelos de componentes predefinidos e componentes da comunidade. Você também pode executar comandos de shell integrados para criar, criar e publicar componentes. Escolha entre as seguintes opções para criar componentes personalizados do Greengrass:

  • Use o Greengrass Development Kit CLI

    Use a CLI do GDK para desenvolver componentes em um computador de desenvolvimento local. A CLI do GDK cria e empacota o código-fonte do componente em uma receita e artefatos que você pode publicar como um componente privado no serviço. AWS IoT Greengrass Você pode configurar a CLI do GDK para atualizar automaticamente a versão do componente e os URIs do artefato ao publicar o componente, para que você não precise atualizar a receita toda vez. Para desenvolver um componente usando a CLI do GDK, você pode começar com um modelo ou componente da comunidade do Catálogo de Software do Greengrass. Para ter mais informações, consulte AWS IoT GreengrassInterface de linha de comando do kit de desenvolvimento.

  • Execute comandos de shell integrados

    Você pode executar comandos de shell integrados para desenvolver componentes em um computador de desenvolvimento local ou em um dispositivo principal do Greengrass. Você usa comandos shell para copiar ou criar o código-fonte do componente em artefatos. Cada vez que você cria uma nova versão de um componente, você deve criar ou atualizar a receita com a nova versão do componente. Ao publicar o componente no AWS IoT Greengrass serviço, você deve atualizar o URI para cada artefato do componente na receita.

Criar um componente (GDK CLI)

Siga as instruções nesta seção para criar e criar um componente usando a CLI do GDK.

Para desenvolver um componente do Greengrass (GDK CLI)
  1. Caso ainda não tenha feito isso, instale a CLI do GDK em seu computador de desenvolvimento. Para ter mais informações, consulte Instale ou atualize a interface de linha de comando do kit de AWS IoT Greengrass desenvolvimento.

  2. Vá para a pasta em que você deseja criar pastas de componentes.

    Linux or Unix
    mkdir ~/greengrassv2 cd ~/greengrassv2
    Windows Command Prompt (CMD)
    mkdir %USERPROFILE%\greengrassv2 cd %USERPROFILE%\greengrassv2
    PowerShell
    mkdir ~/greengrassv2 cd ~/greengrassv2
  3. Escolha um modelo de componente ou componente da comunidade para baixar. A CLI do GDK baixa o modelo ou o componente da comunidade, para que você possa começar com um exemplo funcional. Use o comando component list para recuperar a lista de modelos ou componentes da comunidade disponíveis.

    • Para listar modelos de componentes, execute o comando a seguir. Cada linha na resposta inclui o nome do modelo e a linguagem de programação.

      gdk component list --template
    • Para listar os componentes da comunidade, execute o comando a seguir.

      gdk component list --repository
  4. Crie e altere para uma pasta de componentes na qual a CLI do GDK baixa o modelo ou o componente da comunidade. HelloWorldSubstitua pelo nome do componente ou por outro nome que ajude a identificar essa pasta de componentes.

    Linux or Unix
    mkdir HelloWorld cd HelloWorld
    Windows Command Prompt (CMD)
    mkdir HelloWorld cd HelloWorld
    PowerShell
    mkdir HelloWorld cd HelloWorld
  5. Baixe o modelo ou componente da comunidade para a pasta atual. Use o comando component init.

    • Para criar uma pasta de componentes a partir de um modelo, execute o comando a seguir. HelloWorldSubstitua pelo nome do modelo e substitua python pelo nome da linguagem de programação.

      gdk component init --template HelloWorld --language python
    • Para criar uma pasta de componentes a partir de um componente da comunidade, execute o comando a seguir. ComponentNameSubstitua pelo nome do componente da comunidade.

      gdk component init --repository ComponentName
    nota

    Se você usa o GDK CLI v1.0.0, deve executar esse comando em uma pasta vazia. A CLI do GDK baixa o modelo ou componente da comunidade para a pasta atual.

    Se você usa o GDK CLI v1.1.0 ou posterior, pode especificar --name o argumento para especificar a pasta em que o GDK CLI baixa o modelo ou o componente da comunidade. Se você usar esse argumento, especifique uma pasta que não existe. A CLI do GDK cria a pasta para você. Se você não especificar esse argumento, a CLI do GDK usará a pasta atual, que deve estar vazia.

  6. A CLI do GDK lê o arquivo de configuração da CLI do GDK, gdk-config.json chamado, para criar e publicar componentes. Esse arquivo de configuração existe na raiz da pasta do componente. A etapa anterior cria esse arquivo para você. Nesta etapa, você atualiza gdk-config.json com informações sobre seu componente. Faça o seguinte:

    1. Abra gdk-config.json em um editor de texto.

    2. (Opcional) Altere o nome do componente. O nome do componente é a chave no component objeto.

    3. Altere o autor do componente.

    4. (Opcional) Altere 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.

    5. (Opcional) Altere a configuração de compilação do componente. A configuração de compilação define como a CLI do GDK transforma a fonte do componente em artefatos. Escolha entre as seguintes opções parabuild_system:

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

    6. Se você especificar custom parabuild_system, adicione o custom_build_command ao build objeto. Emcustom_build_command, especifique uma única string ou 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"].

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

      Altere a configuração de publicação do componente. Faça o seguinte:

      1. Especifique o nome do bucket do S3 a ser usado para hospedar artefatos do componente.

      2. Especifique Região da AWS onde a CLI do GDK publica o componente.

    Quando você concluir essa etapa, o gdk-config.json arquivo poderá ter uma aparência semelhante ao exemplo a seguir.

    { "component": { "com.example.PythonHelloWorld": { "author": "Amazon", "version": "NEXT_PATCH", "build": { "build_system" : "zip" }, "publish": { "bucket": "greengrass-component-artifacts", "region": "us-west-2" } } }, "gdk_version": "1.0.0" }
  7. Atualize o arquivo de receita do componente, chamado recipe.yaml ourecipe.json. Faça o seguinte:

    1. Se você baixou um modelo ou componente da comunidade que usa o sistema de zip compilação, verifique se o nome do artefato zip corresponde ao nome da pasta do componente. A CLI do GDK compacta a pasta do componente em um arquivo zip com o mesmo nome da pasta do componente. A receita contém o nome do artefato zip na lista de artefatos do componente e nos scripts de ciclo de vida que usam arquivos no artefato zip. Atualize as Lifecycle definições Artifacts e de forma que o nome do arquivo zip corresponda ao nome da pasta do componente. Os exemplos de receitas parciais a seguir destacam o nome do arquivo zip nas Lifecycle definições Artifacts e.

      JSON
      { ... "Manifests": [ { "Platform": { "os": "all" }, "Artifacts": [ { "URI": "s3://{COMPONENT_NAME}/{COMPONENT_VERSION}/HelloWorld.zip", "Unarchive": "ZIP" } ], "Lifecycle": { "run": "python3 -u {artifacts:decompressedPath}/HelloWorld/main.py {configuration:/Message}" } } ] }
      YAML
      --- ... Manifests: - Platform: os: all Artifacts: - URI: "s3://BUCKET_NAME/COMPONENT_NAME/COMPONENT_VERSION/HelloWorld.zip" Unarchive: ZIP Lifecycle: run: "python3 -u {artifacts:decompressedPath}/HelloWorld/main.py {configuration:/Message}"
    2. (Opcional) Atualize a descrição do componente, a configuração padrão, os artefatos, os scripts de ciclo de vida e o suporte à plataforma. Para ter mais informações, consulte AWS IoT Greengrass referência da receita do componente.

    Quando você terminar essa etapa, o arquivo da receita poderá ter uma aparência semelhante aos exemplos a seguir.

    JSON
    { "RecipeFormatVersion": "2020-01-25", "ComponentName": "{COMPONENT_NAME}", "ComponentVersion": "{COMPONENT_VERSION}", "ComponentDescription": "This is a simple Hello World component written in Python.", "ComponentPublisher": "{COMPONENT_AUTHOR}", "ComponentConfiguration": { "DefaultConfiguration": { "Message": "World" } }, "Manifests": [ { "Platform": { "os": "all" }, "Artifacts": [ { "URI": "s3://{COMPONENT_NAME}/{COMPONENT_VERSION}/HelloWorld.zip", "Unarchive": "ZIP" } ], "Lifecycle": { "run": "python3 -u {artifacts:decompressedPath}/HelloWorld/main.py {configuration:/Message}" } } ] }
    YAML
    --- RecipeFormatVersion: "2020-01-25" ComponentName: "{COMPONENT_NAME}" ComponentVersion: "{COMPONENT_VERSION}" ComponentDescription: "This is a simple Hello World component written in Python." ComponentPublisher: "{COMPONENT_AUTHOR}" ComponentConfiguration: DefaultConfiguration: Message: "World" Manifests: - Platform: os: all Artifacts: - URI: "s3://BUCKET_NAME/COMPONENT_NAME/COMPONENT_VERSION/HelloWorld.zip" Unarchive: ZIP Lifecycle: run: "python3 -u {artifacts:decompressedPath}/HelloWorld/main.py {configuration:/Message}"
  8. Desenvolva e construa o componente Greengrass. O comando de construção do componente produz uma receita e artefatos na greengrass-build pasta do componente. Execute o seguinte comando .

    gdk component build

Quando estiver pronto para testar seu componente, use a CLI do GDK para publicá-lo no serviço. AWS IoT Greengrass Em seguida, você pode implantar o componente nos dispositivos principais do Greengrass. Para ter mais informações, consulte Publish components to deploy to your core devices.

Crie um componente (comandos shell)

Siga as instruções nesta seção para criar pastas de receitas e artefatos que contêm código-fonte e artefatos para vários componentes.

Para desenvolver um componente do Greengrass (comandos shell)
  1. Crie uma pasta para seus componentes com subpastas para receitas e artefatos. Execute os comandos a seguir em seu dispositivo principal do Greengrass para criar essas pastas e mudar para a pasta do componente. Substitua ~/greengrassv2 ou %USERPROFILE%\ greengrassv2 pelo caminho para a pasta a ser usada no desenvolvimento local.

    Linux or Unix
    mkdir -p ~/greengrassv2/{recipes,artifacts} cd ~/greengrassv2
    Windows Command Prompt (CMD)
    mkdir %USERPROFILE%\greengrassv2\\recipes, %USERPROFILE%\greengrassv2\\artifacts cd %USERPROFILE%\greengrassv2
    PowerShell
    mkdir ~/greengrassv2/recipes, ~/greengrassv2/artifacts cd ~/greengrassv2
  2. Use um editor de texto para criar um arquivo de receita que defina os metadados, os parâmetros, as dependências, o ciclo de vida e a capacidade da plataforma do seu componente. Inclua a versão do componente no nome do arquivo da receita para que você possa identificar qual receita reflete qual versão do componente. Você pode escolher o formato YAML ou JSON para sua receita.

    Por exemplo, em um sistema baseado em Linux, você pode executar o seguinte comando para usar o GNU nano para criar o arquivo.

    JSON
    nano recipes/com.example.HelloWorld-1.0.0.json
    YAML
    nano recipes/com.example.HelloWorld-1.0.0.yaml
    nota

    AWS IoT Greengrass usa versões semânticas para componentes. As versões semânticas seguem um sistema de numeração principal.secundária.patch. Por exemplo, a versão 1.0.0 representa a primeira versão principal de um componente. Para obter mais informações, consulte a especificação da versão semântica.

  3. Defina a receita do seu componente. Para ter mais informações, consulte AWS IoT Greengrass referência da receita do componente.

    Sua receita pode ser semelhante à seguinte receita de exemplo do Hello World.

    JSON
    { "RecipeFormatVersion": "2020-01-25", "ComponentName": "com.example.HelloWorld", "ComponentVersion": "1.0.0", "ComponentDescription": "My first AWS IoT Greengrass component.", "ComponentPublisher": "Amazon", "ComponentConfiguration": { "DefaultConfiguration": { "Message": "world" } }, "Manifests": [ { "Platform": { "os": "linux" }, "Lifecycle": { "run": "python3 -u {artifacts:path}/hello_world.py {configuration:/Message}" } }, { "Platform": { "os": "windows" }, "Lifecycle": { "run": "py -3 -u {artifacts:path}/hello_world.py {configuration:/Message}" } } ] }
    YAML
    --- RecipeFormatVersion: '2020-01-25' ComponentName: com.example.HelloWorld ComponentVersion: '1.0.0' ComponentDescription: My first AWS IoT Greengrass component. ComponentPublisher: Amazon ComponentConfiguration: DefaultConfiguration: Message: world Manifests: - Platform: os: linux Lifecycle: run: | python3 -u {artifacts:path}/hello_world.py "{configuration:/Message}" - Platform: os: windows Lifecycle: run: | py -3 -u {artifacts:path}/hello_world.py "{configuration:/Message}"

    Essa receita executa um script Hello World Python, que pode ser semelhante ao script de exemplo a seguir.

    import sys message = "Hello, %s!" % sys.argv[1] # Print the message to stdout, which Greengrass saves in a log file. print(message)
  4. Crie uma pasta para a versão do componente ser desenvolvida. Recomendamos que você use uma pasta separada para os artefatos de cada versão do componente para que você possa identificar quais artefatos são de cada versão do componente. Execute o seguinte comando .

    Linux or Unix
    mkdir -p artifacts/com.example.HelloWorld/1.0.0
    Windows Command Prompt (CMD)
    mkdir artifacts/com.example.HelloWorld/1.0.0
    PowerShell
    mkdir artifacts/com.example.HelloWorld/1.0.0
    Importante

    Você deve usar o seguinte formato para o caminho da pasta de artefatos. Inclua o nome e a versão do componente que você especificar na receita.

    artifacts/componentName/componentVersion/
  5. Crie os artefatos para seu componente na pasta que você criou na etapa anterior. Os artefatos podem incluir software, imagens e quaisquer outros binários que seu componente usa.

    Quando seu componente estiver pronto, teste seu componente.