Giter Club home page Giter Club logo

Comments (8)

huguesBouvier avatar huguesBouvier commented on June 19, 2024 1

Hello,

That's correct, you need to complete the GG procedure completetly, once deployement is complete, it should turn green "Successfully completed".
Usual problems are:

  • GG not correctly configured on the device it is running on (configure end point etc...)
  • Device running GG as a firewall blocking port 8883
  • In settings, add a role "Greengrass service role"

Right now there is no GGD test but I brought back the idea to our internal GG team.

Hugues

from amazon-freertos.

huguesBouvier avatar huguesBouvier commented on June 19, 2024

Connection to Greengrass is established in 3 steps:

  1. It connects to your AWS IoT Endpoint (not Greengrass) on port 8443 to retrieve an HTML file that embeds a JSON document.
  2. The retrieved JSON document is parsed to extract the Greengrass Certificate, the Port Number and the Greengrass IP.
  3. Once IP, Port Number, and the Certificate are retrieved, it will connect to the Greengrass, usually on port 8883 (not 8443) using the extracted certificate.

Looking at the logs you provided, it seems that you are able to connect to your AWS IoT Endpoint on port 8443 (as mentioned in step 1 above) but you are unable to retrieve the Greengrass JSON file.

One potential issue may be that your device policy doesn't authorize Greengrass, an example of which may be the following:

{
   "Version":"2012-10-17",
   "Statement":[
      {
         "Effect":"Allow",
         "Action":"iot:",
         "Resource":""
      },
      {
         "Effect":"Allow",
         "Action":"greengrass:",
         "Resource":""
      }
   ]
}

Would you please share the policy document attached to the certificate you are using?

Hugues

from amazon-freertos.

cyliangtw avatar cyliangtw commented on June 19, 2024

@huguesBouvier , my original policy is really without action for greengrass, however still got error after I adjusted the policy with greengrass action. It failed in GGD_SecureConnect_Read. I could pass MQTT stress & agent test, so my certificate should be OK to TLS connect.
Error log as:

TEST(Full_GGD, GetIPandCertificateFromJSON)JSONRequestGetSize: 112
SecureConnect - recv error, -30848
JSON parsing - JSON file retrieval failed

Adjusted policy as:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "greengrass:*",
        "iot:*"
      ],
      "Resource": "*"
    }
  ]
}

from amazon-freertos.

cyliangtw avatar cyliangtw commented on June 19, 2024

@huguesBouvier , is there any problem of my policy file for green-grass ?

from amazon-freertos.

huguesBouvier avatar huguesBouvier commented on June 19, 2024

Hello,

Your policy seems to be correct. Looking at the error, it comes from an issue in the HTML document that is sent by the server.
i.e: The size is only 112. If it contains the certificate, it should be a lot bigger that that.

Could you look into the response sent by the server?
You can achieve it by adding:

GGD_SecureConnect_Read( &BufferBiggerThan112,
                                          ( uint32_t ) 112,
                                          *pxSocket,
                                          &ulReadSize );

After

GGD_JSONRequestGetSize( &xSocket, &ulJSONFileSize );

The content of BufferBiggerThan112 will reflect what is inside the returned http page.

Hugues

from amazon-freertos.

cyliangtw avatar cyliangtw commented on June 19, 2024

@huguesBouvier , thanks of your helpful comment, the error message reveals the wrong region and I changed region as Oregon.
Then, to create Greengrass group, policy & core. In setting my core ->"connectivity", except to Setting Up an Amazon EC2 Instance by myself, is there any existing endpoint(IP or DNS) & port for test purpose ?

from amazon-freertos.

huguesBouvier avatar huguesBouvier commented on June 19, 2024

Hello,

You are welcome :).

About the test endpoint, I have no knowledge of it but I can consult with our internal Greengrass team.
Could you give more information about what you need?
Thank you,

Hugues

from amazon-freertos.

cyliangtw avatar cyliangtw commented on June 19, 2024

@huguesBouvier , I created green-grass group, policy, core & added device. In my green-grass group, I created one Lambdas & local resource with status as "Affiliated". In my green-grass core, it's connectivity shows "doesn't have any endpoints configured". However, to make greengrass group a deployment, it's status seems keep "In progress" forever.
Based on the above condition, GGD_SecureConnect_Read got {"errorMessage":"Resource not found"} after GGD_JSONRequestGetSize.
Should I need to finish green-grass core's connectivity setting ?
Is there any existing shared test environment for GGD test ?

from amazon-freertos.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.