Question: Entity hierarchies with embedded Events : init and design problems

"After several tests, it seems that it's impossible to get back the hierarchy of parent/children in script canvas with the available Nodes like Get Descendants, Get Children ... is it a bug or maybe must be sure to have initialize in a good way before to get all children "présents à l'appel" 🏁?Follow"

Answer: "0For info, it is by asking the question that we sometimes find an answer 😉 ... if can that help you, in this case here if instead of starting the script by On Graph or other ... it's with an On Tick that it works well.SharerePost-User-3300607answered 3 years ago0I don't have any problem with getting children. You have to use a "for each" to loop through all the children if you want to do anything with each one. By the way, the ordering of the entities is not maintained. That's because it would cost too much for too little gain to doing sorting all the time, if I recall correctly.SharerePost-User-9359627answered 3 years ago0@REDACTEDUSERSharerePost-User-3300607answered 3 years ago0I haven't worked with entity hierarchies that deep so I'm not sure about that. I am not sure if get children nodes actually do a recursive walk of the hierarchy or not. If not then you'll have to implement it yourself in a for each loop.SharerePost-User-9359627answered 3 years ago0For info I get the total hierarchy as expected, but as discussed under some init conditions that must be followed before we can expect to get the whole hierearchy in a reliable way.SharerePost-User-3300607answered 3 years ago0If it works on tick but not on graph it's because the entities probably haven't been activated yet in the tree if you do it "on graph." You should get children on an entity when that entity is activated I would think.SharerePost-User-9359627answered 3 years ago0On Graph Start, Game Entity was tested without the success ... Tick was perfect but then must be desactivated which is not very top. If you have another idea to do it ?SharerePost-User-3300607answered 3 years ago0A way is to call the hierarchy after a call to "Game Entity" with as source the deepest child of the tree so we are sure that the init is well done before we make a call to "get children" or "get descendants" ...But the simplest and reliable way for me seems like thereafterREMOVEDUPLOADSharerePost-User-3300607answered 3 years ago0What about "on game entity activated"?SharerePost-User-9359627answered 3 years ago0[quote="Didier, post:9, topic:8461"]a call to “Game Entity”[/quote]yes with  a call to “Game Entity- on game entity activated” it's ok if you choose a deep leaf of your tree as the Source ... but it stills problems with the others branch ... so a little bit boring if we need to do it for all branch to be sure ...SharerePost-User-3300607answered 3 years ago0Another improved proposal 😉REMOVEDUPLOADBut in fact the problem is elsewhere as well as its solution 🧐 ...I made an init in the script of the Parent entity and every time one of his children is activated, it also activates again the script of the parent entity.Thus as it's the case now for me, it's good to remember that now ! 😉The use of REMOVEDUPLOAD is recomended too here as the  On Graph Start  and  the On Entity Activated  events are subject to activation order issues and it's sometimes the case here too.SharerePost-User-3300607answered 3 years ago0Hello @REDACTEDUSERThe solutions you offered are often used when these situations happen, the event driven nature of Lumberyard sometimes introduces some patterns that don't feel intuitive. This is because entities rely on their components to provide their functionality and the way entities communicate with each other is through event messages (through the EBus system).This means that in order for an Entity to be able to handle function calls on its components it needs to be activated. During the activation step entities connect internally to the different component event buses, these are the functions called by scripts.I recommend that you add a variable for the target entity you wish to get descendants from, then add an On Entity Activated handler for which you specify your new variable as the Source. When you handle the On Entity Activated event you should be able to call Get Descendants and receive them as the entity will be guaranteed to be active and able to respond to your requests.Thank you,LSSharerePost-User-2322203answered 3 years ago0Hello @REDACTEDUSERI'm just now going to find out more about performance and as the design choice with Events is likely to be a determining factor in these performance evaluations, I'll have a question that follows with Events and script design.In the same problem area, when you have a large number of Entities sending Events that are themselves red by the same large number of Entities ... a kind of "for each Entity a one-to-many dependency between Entities so that when one Entity changes state, all its dependents are notified and updated automatically"... what could be your recommendation for designing it as it may concern the initialisation with parenting of Entities as discussed before, Events,... and pitfalls to avoid in order to get performances, stability and reliability during play?Maybe as you evoked too with update/init Entities/Component, recommendations could arise to avoid browsing components if not necessary (performance?), to use different time base according to the systems ...SharerePost-User-3300607answered 3 years ago0Hi @REDACTEDUSERPerformance is a great thing to keep in mind when you're designing systems, I'm glad you're thinking about it, thanks for the question!While our event system is designed to be very efficient, it is true that at some point too many events in a given frame could result in a slow down. My recommendation would be to try and reduce the number of events you send out on a frame by frame basis.For example, if you have an array of 10000 entities, you may not necessarily need for all of them to receive an event on the same frame, you could throttle the messaging over N frames, this would limit the number of events you're sending out per-frame. In other words, distribute your event sending over a number of frames rather than in a single frame (tick).Another strategy is for entities to only connect to events they want to handle only for as long as they need to handle it. What I mean by this is, if after handling an event you will no longer need to handle it anymore, it's a good idea to disconnect from it. This is not always possible, the benefit is that disconnecting from an event will remove it from the list of recipients of the event.As much as possible, avoid entities connected to On Tick, but if you do need them to do per-frame operations, try to manage how long they remain connected to On Tick.These are a few things that come to mind, I hope they help!LSSharerePost-User-2322203answered 3 years ago0Interesting, thanks @REDACTEDUSERYou define a recurrence period, a pulse width, ... and everything is organized around a listening every nth recurrence and according to the pulse width ...Thus it seems for me comparable to what you propose[quote="LS1, post:15, topic:8461"]distribute your event sending over a number of frames rather than in a single frame (tick).[/quote]= pulse impulse width and only each sending/listening at nth recurrenceand then[quote="LS1, post:15, topic:8461"]disconnecting from an event[/quote]= listening only during a time period of the nth recurrence.Would this mean that we would need a class of Events with these kinds of parametrisation or is it already easy to define this kind of behavior without loosing too much in lisibility/simplicity of our scripts ? Could you give us a kind of design template for this ? (an idea : a kind of Gantt tool for Events to get a better visibility on design with those Events)It's remind me too that implementing the Get/Send of global variables with Events is overloading maybe unecessary the system and increase complexity. On the other hand using the coordinates of an Empty is not viable for a global Array variable too as discussed here https://forums.awsgametech.com/t/how-can-i-create-a-global-variable-in-script-canvas-lumberyard-1-14/5279/3?u=didier... or maybe some other solution that escapes me, thus what could be the best way  or some missing component or speciallized Event ?And what is the risk of putting several script components on the same Entity while using Events?SharerePost-User-3300607answered 3 years ago0@REDACTEDUSERREMOVEDUPLOADbut the Get Children is empty.Thus currently, I'm using On Child Added Node.REMOVEDUPLOADWith this Node I can step by step follow the construction of the parent-child tree and store it in a matrix which is this time perfectly complete.SharerePost-User-3300607answered 3 years ago0[quote="LS1, post:15, topic:8461"]it’s a good idea to disconnect from it[/quote]@REDACTEDUSERhttps://forums.awsgametech.com/t/send-event-disconnect-bug/8526?u=didierSharerePost-User-3300607answered 3 years ago"


Question: How to apply a Before Session Script on S3 storage connector in AppStream

I'm trying to hide from users a folder generated by our app. Persistent storage is configured with S3 and that's where the folder is stored. Now I would like to run a BAT file that would change the folder attribute on startup. But since the session scripts and storage connector mounting happens in parallel how can one run a BAT file after the mount is complete?FollowComment

Answer: "1You can check the storage connector registry key to get the mount status, and have your script wait for the connector to be available.https://docs.aws.amazon.com/appstream2/latest/developerguide/use-session-scripts.html#use-storage-connectors-with-session-scriptsCommentShareJeremy_Sanswered 7 months ago"


Question: IoT topic names?

"I'm trying to build a Java client that subscribes to IoT services topics.In the IoT console, I went to the MQTT test client and subscribed to a topic named "test".In my Java code, I set up an MqttClientConnection. For the endpoint, I gave the value returned by IotClient.describeEndpoint(). I also gave my AWS credentials.I'm able to instantiate the client, connect, and publish a message to the "test" topic without encountering any exceptions. However, the message doesn't appear in the AWS console. Similarly, I can subscribe to the topic, but messages I publish via the console don't show up in the Java application.I suspect the problem is that the topic name is not simply "test", but some string that has a prefix which associates it with IoT services. I can't find any documentation to this effect, though.Thanks,FrankFollowComment"

Answer: "0Accepted AnswerI suspect the problem is that the topic name is not simply "test", but some string that has a prefix which associates it with IoT services. I can't find any documentation to this effect, though.Hi Frank. There is no prefix, so something else must be going on. You can both publish and subscribe within the console's MQTT client to confirm this.Could it be that your Java client has connected to the endpoint for a different region?CommentShareEXPERTGreg_Banswered a year agoFrank a year agoThanks, it turned out I had an authentication problem that I didn't notice because I wasn't waiting for the connection to complete. Once I did that, I could see what was wrong and when I fixed it, the queues worked as I was expecting.Share"


Question: API Gateway - OpenAPI 3.1

"Are there any plans to support OpenAPI 3.1? It's critical for our business to use many features of JSON-Schema, like Schema validation.FollowComment"

Answer: "0Hello nchadwick, Thank you for your question. Currently, API Gateway supports OpenAPI v2.0 and OpenAPI v3.0. At this time we cannot provide an estimated time of release for version 3.1.  Documentation:https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-import-api.htmlhttps://aws.amazon.com/about-aws/in-the-news/?media-coverage-cards.sorthttps://aws.amazon.com/about-aws/whats-new/2022/?whats-new-content-all.sort-by=item.additionalFields.postDateTime&whats-new-content-all.sort-order=desc&awsf.whats-new-analytics=*all&awsf.whats-new-app-integration=*all&awsf.whats-new-arvr=*all&awsf.whats-new-blockchain=*all&awsf.whats-new-business-applications=*all&awsf.whats-new-cloud-financial-management=*all&awsf.whats-new-compute=*all&awsf.whats-new-containers=*all&awsf.whats-new-customer-enablement=*all&awsf.whats-new-customer%20engagement=*all&awsf.whats-new-database=*all&awsf.whats-new-developer-tools=*all&awsf.whats-new-end-user-computing=*all&awsf.whats-new-mobile=*all&awsf.whats-new-gametech=*all&awsf.whats-new-iot=*all&awsf.whats-new-machine-learning=*all&awsf.whats-new-management-governance=*all&awsf.whats-new-media-services=*all&awsf.whats-new-migration-transfer=*all&awsf.whats-new-networking-content-delivery=*all&awsf.whats-new-quantum-tech=*all&awsf.whats-new-robotics=*all&awsf.whats-new-satellite=*all&awsf.whats-new-security-id-compliance=*all&awsf.whats-new-serverless=*all&awsf.whats-new-storage=*allCommentSharelatrunda_sanswered 9 months ago"


Question: TimedMetadata api is not working I am not able to view the metadata.

"When  I am sending the time metadata in my livestream I am not able to see the data in my stream, I am sending like this through my python function:client.put_metadata(channelArn='arn:aws:ivs:us-west-2:581789878376:channel/GfLO66Z3zZWo',metadata='votes:100,25,23,412')and in response I am getting this{'ResponseMetadata': {'HTTPStatusCode': 204, 'RequestId': '94930266-7bf9-43fe-8987-458a9c1a97a7', 'HTTPHeaders': {'content-type': 'application/json', 'connection': 'keep-alive', 'x-amzn-remapped-date': 'Fri, 11 Sep 2020 11:21:41 GMT', 'x-amzn-trace-id': 'Root=1-5f5b5dc5-05a005530281262523d2ca5b', 'x-amz-cf-id': 'deDqseQGhs5H9ZSkToWv-obV7pXYQ7s-wyfWfMMKyj3CP7MwhM6POA==', 'access-control-allow-origin': '', 'access-control-expose-headers': '', 'via': '1.1 6879fbb200387fd145e21133ac6fcec4.cloudfront.net (CloudFront)', 'x-amz-cf-pop': 'DEL54-C2', 'x-amzn-requestid': '94930266-7bf9-43fe-8987-458a9c1a97a7', 'date': 'Fri, 11 Sep 2020 11:21:41 GMT', 'x-amz-apigw-id': 'SsuW4G5yvHcFwHQ=', 'content-length': '0', 'x-cache': 'Miss from cloudfront'}, 'RetryAttempts': 0}}I am not able  to see the metadata in amazon ivs player in aws console also in  my jsplayer the code which I have cloned from the samples and I had subscribed to the event.I tried the sample ivs player from github code there a quiz video is also given but I was not able to see the questions also.Please help me out.FollowComment"

Answer: "0Thank you for using the service. To clarify IVS TimedMetadata information will not appear within the Live Preview on the IVS Console. From what I can tell through your provided information, it appears that the information is being successfully sent, however, not appearing during playback.Some troubleshooting steps that we recommend are to test using the sample QuizDemo Codepen [1], as this requires little setup and a sample of how TimedMetadata can work. To test using this CodePen, please load the CodePen first and ensure that the example stream and quiz metadata are appearing. For more information, open the console view of the CodePen (bottom left) in which player state and player events should be appearing. Following confirmation of the sample stream working, start an IVS stream and ensure that it is working via the Live Preview on the IVS Console. Once the stream is running, copy the playback URL provided on the IVS channel page and replace the playbackUrl variable within the CodePen’s JS section. Run the updated CodePen (top right) and ensure the stream changes to your stream.  Now with the CodePen console view still open, the information from your PutMetadata call will appear in the console view. Note: the quiz prompt overlay may not appear, as the sample is looking for a specific metadata format.More information on setting up and using the QuizDemo Sample can be found in the IVS documentation [2] or  “Add Live Video to Your Apps and Websites” blog post [3].[1] CodePen - Amazon IVS Simple Quiz Demo with TimedMetadatahttps://codepen.io/amazon-ivs/pen/XWmjEKN[2] IVS Documentation - Embedding TimedMetadatahttps://docs.aws.amazon.com/ivs/latest/userguide/SEM.html[3] Amazon IVS Blog Post – Add Live Video to Your Apps and Websiteshttps://aws.amazon.com/blogs/aws/amazon-interactive-video-service-add-live-video-to-your-apps-and-websites/Edited by: riley-aws on Sep 14, 2020 3:15 PMCommentShareriley-awsanswered 3 years ago0Thank you it is workingCommentSharehimanshubhattanswered 3 years ago"


Question: Unresponsive instance

"My instance i-0b8868b756223015d went unresponsive this morning at 11:30 am. The ec2 console says status 2/2 is good but the ip address is now unresponsive and can't rdp into instance anymore (error - Remote Desktop can't connect to the remote computer).The server's been running fine for months and all of a sudden today - kaput... any idea what's going on?Edited by: JKTidd on Dec 19, 2020 4:27 PMFollowComment"

Answer: "0Oh, now it's working... 9 hours later. Magic!CommentShareJKTiddanswered 2 years ago"


Question: stop EC2 windows not having activity

How can I stop an EC2 instance with a lambda or in any other way when it is detected that it has no activity in the last 15 minutes?FollowComment

Answer: "0Accepted AnswerTo stop EC2 with Lambda, the code in the following document may be useful.https://repost.aws/knowledge-center/start-stop-lambda-eventbridgeIt seems to me that incorporating a method of detecting no activity in the past 15 minutes into this code would accomplish your requirement.As for how to get the activity, there is a CloudWatch metric for EC2 called NetworkIn.How about using the metrics here to alarm and trigger Lambda if the threshold falls below the threshold?This metric is the amount of network traffic received by EC2, so if the value is low for the past 15 minutes, an alarm is raised to indicate that no communication is being sent to EC2 (EC2 is rarely used).CommentShareEXPERTRiku_Kobayashianswered 12 days agoLuis 11 days agoThanks for the link. It has served me well.Although I still don't understand or see a way to identify if the Instance hasn't had any activity for the last 15 minutes.I want to shut down the EC2 instance as long as there is no activity on the instance in the last 15 min.Thank youShare"


Question: Amazon Connect :VoiceMail Express: Create a case in Salesforce parameters

"Hello,We have set up Service Cloud Voice in Salesforce with Amazon contact center.We have installed the Voicemail Express package from GitHub.Then, when the customer press 3 to leave a voicemail message, it is creating a Voice Call Record and a case later on with a link to the voicemail message in salesforce.However, the voice call record is not related to that case, it's too bad because we loose the contact information ( in Salesforce, the phone number of the incoming call is associated to a contact if it exists ).We would like to link the VoiceCallId to the Case when it is created in Salesforce but I don't find what is creating this case and I don't find neither where to add this parameter, can you help me please?Thank you.FollowComment"

Answer: "0The case creation with Voicemail Express is done via a Lambda function 'sub_salesforce_case.py'There are a few options you could use to link these records.Create a new Lambda function to query salesforce for the voice call record, and then link it to the case.  You could invoke this function from sub_salesforce_case.py and pass the created case number as a parameter to the child function.You could also use Lightning Flows to implement a similar style of logic in Salesforce via Process BuilderCommentSharegthomasanswered a year ago"


Question: Athena INTERNAL_ERROR_QUERY_ENGINE

[ErrorCode: INTERNAL_ERROR_QUERY_ENGINE] Amazon Athena experienced an internal error while executing this query.FollowComment


Question: Getting a "SINGLE_BUILD_CONTAINER_DEAD" error with a custom Docker image

"We need to use a custom Docker image for our CodeBuild processes, so I created one on my M1 MacBook Pro and uploaded it to AWS ECR.  However, whenever I tried to use it in CodeBuild project I received the following error:SINGLE_BUILD_CONTAINER_DEAD: Build container found dead before completing the build. Build container died because it was out of memory, or the Docker image is not supportedI looked for more information on the error but wasn't able to find anything on-line.FollowComment"

Answer: "0Accepted AnswerI found out what the problem was and thought I would document it here to help others that might be in the same boat.  See, when we originally developed this process I was using an Intel MacBook Pro and everything worked fine.However, as I noted in the question, my current machine is an M1 (ARM) system.  So, when I built the Docker images locally and uploaded them to ECR, it caused CodeBuild to fail with that "SINGLE_BUILD_CONTAINER_DEAD" error.  I solved my "problem" by having CodeBuild create the Docker image for me and uploading that to ECR.NOTE: I'm sure that it's possible to get Docker on an M1 machine to create x86 images, but I'm not familiar enough with Docker to make that happen. If you know the magic incantations to make that happen, please let a comment below.CommentShareRNHurtanswered a year ago"


Question: "AWS Solutions Architect Exam_ I could not end test, my time expired. Will my answers be counted or will it fail me straightaway for not submitting ?"

"I just finished with my AWS Solutions Architect Associate exam. However, I ran out of time limit and could not press "End Test". So, will my answers be valid and scored or will I be failed for not submitting within time limit?FollowComment"

Answer: "0You will be scored on the answers submitted. So if you are above the passing threshold you should still pass. If not then you will fail.CommentShareEvananswered 3 months ago0Hi,I believe that your answers would still be valid and scored as progress is saved automatically during the exam.CommentShareEXPERTalatechanswered 3 months ago0Please submit a ticket to the AWS Training & Certification customer support team, and they will provide assistance. If you already submitted a case, please allow at least 48 hrs to get a response.CommentShareNelliT-AWSanswered 3 months ago"


Question: IoT Test Client Loosing Connection

"Hello everyone.I am trying to use Test Client in my account and it do not connect to the Gateway. Until last day it was working fine. Now, it connects only sometimes.thanks in advance.FollowComment"

Answer: "1There could be several reasons why the Test Client is not connecting to the Gateway. Some possible causes could include network connectivity issues, misconfigured security groups, or changes to the gateway configuration. It would be helpful to review the logs or error messages to get more information on the issue and troubleshoot accordingly. If the problem persists, contacting the support team or seeking assistance from a qualified AWS expert may be necessary.CommentShareAWS_Guyanswered 2 months ago"


Question: Private VIF and Transit VIF on the same Direct connect

Is it possible to have a private VIF and a Transit VIF on the same Direct connect circuit?FollowComment

Answer: "0You cannot associate DXGW (DirectConnect Gateway) with VGW if it has TGW/TVIF associated and vice-versa.CommentShareEXPERTTushar_Janswered 9 months ago0Hello,Absolutely, it is possible to have both Private & Transit VIF on the same Direct Connect Connection, provided it is a dedicated connection.However, please note that this design will not work if a DX-GW is involved since you can only have either VGW/TGW attached to the DX-GW, but not both.CommentShareSUPPORT ENGINEERAWS-User-Chiraganswered 9 months ago0Can you please guide me to some documentation that shows a sample configuration of a private and transit VIF on a networking device (Cisco/Juniper),etc?CommentShareTarunanswered 9 months ago"


Question: Chinese font install Amazon LInux ( EC2)

"we need to install Chinese fonts on one of our EC2 amazon Linux servers, anybody luck with that ?FollowComment"

Answer: "0Hi there,I found a couple of articles that provide the commands to install Chinese fonts on several Linux flavours:Localization/Simplified Chinese: https://wiki.archlinux.org/title/Localization/Simplified_ChineseInstalling Asian Fonts on Ubuntu & Debian: https://help.accusoft.com/PrizmDoc/v12.2/HTML/Installing_Asian_Fonts_on_Ubuntu_and_Debian.htmlCommentShareAhmad Tariqanswered 2 months agorePost-User-8408119 2 months agoUnfortunately we have Amazon LinuxLinux version 4.14.285-147.501.amzn1.x86_64 (mockbuild@koji-pdx-corp-builder-60004) (gcc version 7.2.1 20170915 (Red Hat 7.2.1-2) (GCC)) #1 SMP Mon Jun 27 23:55:26 UTC 2022Share"


Question: Scheduled Task in ECS

"Documentation say. To edit a scheduled task (Amazon ECS console)Open the Amazon ECS console at https://console.aws.amazon.com/ecs/.Choose the cluster in which to edit your scheduled task.On the Cluster: cluster-name page, choose Scheduled Tasks.Select the box to the left of the schedule rule to edit, and choose Edit.Edit the fields to update and choose Update.But I cannot see the "Scheduled Tasks" option. it was there before but ever since the new interface i cannot see it. Is there anyway that i can edit the scheduled task? I tried rules in eventbridge but it is not letting me edit the contraineroverrides.FollowComment"

Answer: 0The so-called "scheduled task" is task after using event bridge rules to run tasks on a schedule.  The document may need update.Refer to the snapshot of creating the scheduled task.  Hope it helps.For details. you can refer to below links.https://docs.aws.amazon.com/AmazonECS/latest/developerguide/scheduled_tasks.htmlCommentSharecharliezhanganswered 4 months ago


Question: Migration from Aurora PostgreSQL back to regular RDS

"Is there an easy way to migrate from Aurora Postgres to RDS Postgres?My customer has several Aurora instances overprovisioned (the smallest available aurora instance type is way bigger than what they need), and wants to migrate them to regular RDS.I can think only of pg_dump or Database Migration Service.Are there any other ways that I'm missing?FollowComment"

Answer: 1Accepted AnswerThose are the 2 options (pg_dump or DMS) we have.CommentShareVijayKanswered 4 years ago0DMS is much more easier to use and less learning curveCommentShareCalypsoanswered a month ago


Question: What classifier is used in SageMakers BlazingText algorithm?

"I would like to use the BlazingText algorithm in SageMaker for text classification: As I understand it we first represent the text with a word2vec algorithm to get the word embeddings, and then use these embeddings as input to a classifier. But is it known what classifier is being used and is it possible to modify it?Thanks!FollowComment"

Answer: 0The BlazingText algorithm uses fasttext classifiers under the file model.bin and thus I believe by modifying/replacing that file with your own fasttext classifier you should be able to modify the classifier used by BlazingText.Regards NNCommentShareNtiyiso Ngonyamaanswered 7 months ago


Question: "Connection pool is full, discarding connection"

"I've got a lambda that is giving me the warning from the subject line in my logs. Specifically, I'm getting this message over and over:[WARNING]2022-09-26T20:27:57.948Z7994926c-f98a-4501-8aca-76c9d5b8aa34Connection pool is full, discarding connection: canvas.instructure.com. Connection pool size: 10[WARNING]2022-09-26T20:27:57.958Z7994926c-f98a-4501-8aca-76c9d5b8aa34Connection pool is full, discarding connection: canvas.instructure.com. Connection pool size: 10.....I'm trying to collect grade data for students in a class. Say there are 24 students in a class. I'll get this warning 14 times, since the pool size is capped at 10.Seems like it should be simple enough to increase the pool size, but I've tried consulting this post to no avail. i.e. I've set:client_config = botocore.config.Config(    max_pool_connections=50,)and passed that in for all my clients. Hasn't fixed anything.What can be done if setting the config for all my clients isn't dealing with the warnings? Could the fact that in my concurrent calls, I'm calling a function residing in a separate lambda layer be to blame?FollowComment"

Answer: "0That error originates from the urllib3.  The goal of client_config strategy is to find a way to get the desired configuration passed through the code down to the urllib3 level.  We would need to know more about what you're doing in the Python to provide any additional help.As mentioned in many of the comments of the github issue you cited...are you using any concurrency techniques in Python that might "blow out the pool"?do you have any global variables that could be persistent across sessions?which AWS service clients are you using?how often is your Lambda being triggered?how long does your Lambda run for?Subsequent Lambda runs can retain references to global object in memory from the previous run if you're not careful to re-initialize your variables at the start of each run.  I have been bitten by that this in the past. This could be happening here.If you have concurrent Python in your Lambda (threading, multiprocessing, concurrent.futures, etc) you might try removing that and using Step Functions to manage the concurrency for you.It is difficult to make any solid suggestions without more understanding of your current process.CommentSharedave-learning-awsanswered 8 months ago"


Question: Can not access global table from inside the coroutine

"I tested with Lumberyard 1.8.0.1 and 1.9.0.1When I comment out the --System.Log in coroutine, I always get the following error.[Warning] [Script Error] Wrong parameter type. Function System.Log() expect parameter 1 of type String (Provided type String)It seems, I cannot access any global table for both system provided or custom made in my Gem.Is there any workaround for this matter?Thank you in advance.    -- Scripts/main.luafunction OnInit()local i = 0System.Log("main.lua:OnInit before " .. i)local co = coroutine.create(function(f)i = i + 1-- System.Log("main.lua:OnInit in co " .. i) -- Error if comment outend)coroutine.resume( co, co )System.Log("main.lua:OnInit after " .. i)endFollow"

Answer: "0Accepted AnswerHi @REDACTEDUSERSorry for the delay. Are you using the component entity system or the legacy entity system? It looks like legacy, but I want to make sure. We're looking into the issue and will get back to you.SharerePost-User-5841084answered 6 years ago0Hi @REDACTEDUSERThank you for the reply.Yes, I'm porting legacy system that built with CE2 and my main point of this issue is timing.I would like to call the initialization process in my custom global table which implemented in C++ right after the system launched and before load the level.In my old system, I used "Scripts/main.lua" for the initialization.Please correct me if I was wrong, but my understanding of component system is that only working after level loaded and entity spawned.And, I could not find the way to access the component system from the "Scripts/main.lua".Please address me right method in Lumberyad to access the lua component before load the level.Regards.SharerePost-User-3469496answered 6 years ago0Hi @REDACTEDUSERSharerePost-User-5841084answered 6 years ago0Hi @REDACTEDUSERHere's an Gem that has an example of instantiating a dynamic slice that has a Lua file with a coroutine and loads a UI canvas before any level is loaded. Hopefully this will help you see what was not working.4963-loadleveluigem.zip|attachment (23.4 KB)loadleveluigem.zipBy default it loads the auto_load.dynamic slice file in the dev/gems/LoadLevelUI/assets/slices folder, but you can change that in code or through the advanced properties for your project.REMOVEDUPLOADSharerePost-User-5841084answered 6 years ago0Hi @REDACTEDUSERI updated my code to use the AssetDatabase and AssetCatalogRequestBus then working fine now.Thank you very much.        AZStd::string m_dynamicSlicePath = "slices/slicetest.dynamicslice";AZ::Data::AssetId m_dynamicSliceAssetId;void instantiateSlice(){AZ::Data::AssetCatalogRequestBus::BroadcastResult(m_dynamicSliceAssetId, &AZ::Data::AssetCatalogRequestBus::Events::GetAssetIdByPath, m_dynamicSlicePath.c_str(), azrtti_typeid<AZ::DynamicPrefabAsset>(), true);if (!m_dynamicSliceAssetId.IsValid()){return;}AZ::Data::Asset<AZ::Data::AssetData> asset = AZ::Data::AssetDatabase::Instance().GetAsset<AZ::DynamicPrefabAsset>(m_dynamicSliceAssetId);AzFramework::SliceInstantiationTicket ticket;AZ::Transform transform = AZ::Transform::Identity();AzFramework::GameEntityContextRequestBus::BroadcastResult(ticket, &AzFramework::GameEntityContextRequestBus::Events::InstantiateDynamicSlice, asset, transform, nullptr);AzFramework::SliceInstantiationResultBus::Handler::BusConnect(ticket);}SharerePost-User-3469496answered 6 years ago0Hi @Soeda,When I tested this in a component entity Lua script it ran OK, though I had to change System.Log to Debug.Log. Here is the full component entity script I tested:local test_coroutine = {Properties = {Debug = true}}function test_coroutine:OnActivate()local i = 0Debug.Log("test_coroutine.lua:OnInit before " .. i)local co = coroutine.create(function(f)i = i + 1Debug.Log("test_coroutine.lua:OnInit in co " .. i)end)coroutine.resume( co, co )Debug.Log("test_coroutine.lua:OnInit after " .. i)endreturn test_coroutineThis printed outtest_coroutine.lua:OnInit before 0test_coroutine.lua:OnInit in co 1test_coroutine.lua:OnInit after 1SharerePost-User-5841084answered 6 years ago0Hi @Soeda,The legacy Lua uses a different Lua context from the component entity Lua system so they can't talk to each other. The Lua script system is created and initialized before a level is loaded so you should be able to use it early on.If you want to run Lua before a level is loaded then you will need to write some C++ to either create an entity with a Lua component, or spawn a dynamic slice that has an entity with a Lua component on it (recommended). Here's a link to the doc page that talks about creating and spawning dynamic slices in the editor and C++ http://docs.aws.amazon.com/lumberyard/latest/developerguide/dynamic-slices.htmlI recommend creating a Gem using the Project Configurator (http://docs.aws.amazon.com/lumberyard/latest/userguide/gems-system-gems.html) that has a system component that does this in it's Activate method or make your system component an ISystemEventListener so you can listen for the ESYSTEM_EVENT_GAME_POST_INIT_DONE system event if your Lua logic needs the legacy game framework to be finished setting up.SharerePost-User-5841084answered 6 years ago0Hi @petrocketor spawn a dynamic slice that has an entity with a Lua component on it (recommended).Could you elaborate more on this?As you suggested above, I tried to load the dynamicslice from Gem but so far no luck.So, what is the correct way to load the dynamicslice from C++?Do you have any example besides SpawnerComponent.cpp ?Here is a part of my code.        void OnSystemEvent(ESystemEvent event, UINT_PTR wparam, UINT_PTR lparam) override{switch (event){case ESYSTEM_EVENT_GAME_POST_INIT_DONE:instantiateSlice();break;}}AZ::PrefabAssetHandler ph;AZ::Data::Asset<AZ::DynamicPrefabAsset> dynamicSlice;const AZ::Data::AssetFilterCB assetLoadFilterCB;void instantiateSlice(){dynamicSlice.Create(AZ::Data::AssetId(AZ::Uuid::CreateRandom()));ph.LoadAssetData(dynamicSlice, "slices/slicetest.dynamicslice", assetLoadFilterCB);AzFramework::SliceInstantiationTicket ticket;AZ::Transform transform = AZ::Transform::Identity();EBUS_EVENT_RESULT(ticket, AzFramework::GameEntityContextRequestBus, InstantiateDynamicSlice, dynamicSlice, transform, nullptr);}I also share the zip file that contains all of my test data includes level, Gem, slice file and lua script for your reference.https://www.dropbox.com/s/9g4n17l7yb95exn/dev.zip?dl=0The slice file with Lua script working fine with SpawnerComponent from the editor or launcher, but failed to instantiate from my Gem.Thank you in advance.SharerePost-User-3469496answered 6 years ago"


Question: bad request in authorization code flow

"All, I am about to build some web app and am trying to secure it using cognito. I am about to exchange authorization code for access token but get bad request/400 error: "invalid_request" all the time in browser although it works in postman...both localhost as well as using it on the actual webserver fail.My request in Angular looks like this:myFunctionB(){let url_paras = new URLSearchParams(window.location.search);  let code = url_paras.get("code");  console.log(code);  let url = "https://XXXX_mydomain_XXXX.auth.eu-central-1.amazoncognito.com/oauth2/token"  let headers = {    "Content-Type": "application/x-www-form-urlencoded"  }  let body = {    "client_id": "XXXX_myclientid_XXXX",    "grant_type": "authorization_code",    "code": code,    "redirect_uri": "https://XXXX_mywebsite_XXXX/"  };  const promise = this.httpClient.post<any>(url, body, { headers }).toPromise();  promise.then((data: any)=>{    console.log(data);  }).catch((error)=>{    console.log(error);  });  }the client is setup without client secret, I am using the very same redirect url in client setup as I did for redirect_uri parameter.Both end with a / but i also tried to have everythingg without the ending /.Is there any way to futher troubleshoot what might cause the problem???Edited by: siebenstein on Dec 27, 2020 2:26 AMFollowComment"

Answer: "0I found out by myself. Looks like http client is handling the requests slightly different. Rather than pasing paramters in body u need to append to the url using ?para1=value1&para2=value2...Seems to me like postman somehow handles differently when pasing the  "application/x-www-form-urlencoded" header.CommentSharesiebensteinanswered 2 years ago0glad you found it but i believe you should make this request through an AWS resource. lets say a web-server contained in a ec2. I'll reference the docs about retrieving your tokens: "The /oauth2/token endpoint only supports HTTPS POST. Your app makes requests to this endpoint directly, not through the user's browser."CommentSharerePost-User-3653299answered 5 months ago"


Question: pcluster version3 start

"I am new to AWS and following the tutorials to create a cluster. I made a cluster successfully and then closed the system down.  I want to re-start the cluster.how do I start an existing cluster?  There does not seem to be a pcluster start command in version 3.FollowCommentNathaniel Ng a year agoI'm not sure what you mean when you say you closed the system down. If you stopped the HeadNode, in the EC2 console, you can just start it again. However, this wouldn't work if you terminated the instance, or deleted the Cloudformation stack.SharerePost-Owlu 5 months agoWhat you are looking for would be pcluster ssh --cluster <>...The headnode shuts down and may need to be restarted again with aws ec2 start-instances --instance-ids <>Share"

Answer: 1pcluster is the primary AWS ParallelCluster CLI command [https://docs.aws.amazon.com/parallelcluster/latest/ug/commands-v3.html]In the AWS Documentation You can find the CLI commands to start the pcluster.`pcluster [ -h ] ( list-clusters | create-cluster | delete-cluster | describe-cluster |                   update-cluster | describe-compute-fleet | update-compute-fleet |                   delete-cluster-instances | describe-cluster-instances |                   list-cluster-log-streams | get-cluster-log-events | get-cluster-stack-events |                   list-images | build-image | delete-image | describe-image |                   list-image-log-streams | get-image-log-events | get-image-stack-events |                   list-official-images | configure | dcv-connect | export-cluster-logs |                   export-image-logs | ssh | version ) ...pcluster3-config-converter [-h] [-c CONFIG_FILE] [-t CLUSTER_TEMPLATE]                                  [-o OUTPUT_FILE] [--force-convert]`CommentShareGanesh Kudikalaanswered a year agoAWS-User-0768570 a year agoWhich one of these commands starts an existing clusterShare


Question: Admin Security Private Link

I am following the link:-https://docs.snowflake.com/en/user-guide/admin-security-privatelinkThis is to set up the private link between AWS and Snowflake.The first command is aws sts get-federation-token --name samHere i am replacing the name Sam with Root user and executing in Cloudshell.error occurred (AccessDenied) when calling the GetFederationToken operation: Cannot call GetFederationToken with session credentialsNot sure if it has to do with permissions. Please adviseFollowComment

Answer: "1I assume you've logged into the AWS Console with a Role? Roles, federation and temporary credentials are considered session credentials and thus cannot be used to obtain a new session token via a GetSessionToken call.You'll have to using an IAM User to call that operation.CommentShareEXPERTRaphaelanswered 2 months agorePost-User-8954003 2 months agoI logged in using root user and then executing the command on cloudshell. Am I missing something here?Share0The error message you're encountering indicates that you're using session credentials (temporary security credentials) to call the GetFederationToken operation, which is not allowed. The GetFederationToken action must be called using long-term AWS security credentials, such as those associated with an IAM user.# 1. Configure the AWS CLI to use the IAM user's access key and secret keyaws configure# Enter IAM user's access key, secret key, and desired region when prompted# 2. Run the aws sts get-federation-token commandaws sts get-federation-token --name YOUR_IAM_USER_NAME# Replace YOUR_IAM_USER_NAME with the appropriate IAM user nameCommentShareEXPERTsdtslmnanswered 2 months ago"


Question: Google DNS to Route 53 - DNS not propagating

"I purchased a domain thru Google and was using Google DNS perfectly for a year. Three days ago, we decided to switch to Route 53 because the apps and backend are going to be hosted there. Even after 72 hours DNS propagation is sporadic - different results at different times in different regions. Whois table is pointing to correct AWS nameservers. Hosted Zone ID is Z006192126BBCMWSL9RLW.I have a Cloudfront distribution for the website. A record (ALIAS - Yes) and CNAME for www (ALIAS - No) record are both pointing to this Cloudfront distribution. Only the website is not working properly. Other services like GSuite are just fine.Never experienced a single issue when I was with Google DNS. Very frustrating. Any helpful pointers please? I really appreciate it.FollowComment"

Answer: "0Hi,When I try to access your website, I get an "Access denied" error, which isn't a DNS error. Here's an AWS document from Premium Support about diagnosing those errors:https://aws.amazon.com/premiumsupport/knowledge-center/s3-website-cloudfront-error-403/ScottCommentShareEXPERTAWS-User-6179575answered 3 years ago0Thanks Scott. It turns out that the issue was on the CloudFront side. We had to add the top level domain (domainname.com) to Alternate Domain Names (CNAME) in the distribution settings. Previously we only had *.domainname.com in there bc Google DNS was just pointing directly to the top level domain. Problem solved. Thanks again.CommentShareGSP2020answered 3 years ago"


Question: Can't find my S3 bucket

"Newbie here :)I created an S3 bucket and then wrote a basic PHP script that uploads a file into the bucket.The script successfully connects to the bucket and uploads the file. But, when I log into my AWS console as a Root user, I am unable to see the bucket when I go to the S3 service and click on buckets. If I try to create a new bucket with the same name used for the original bucket, it won't let me... saying that the bucket already exists with that name.Halllllp please :(FollowComment"

Answer: "1Hi mw,Could be that you are trying to access s3 from a different region than the one where the bucket is.Can you make sure you are in the region of choice?Let me knowCommentShareEXPERTalatechanswered 2 months ago0CommentSharemwanswered 2 months agomw 2 months agoThanks so much for your reply!This is what I see. I am on "Global" view. Can't pick "us-west-1" which is where the bucket was set up.Sharealatech EXPERT2 months agoThat is expected because s3 must be created at a specific region, but its name must be unique globally, hence why you get the “bucket already exists” error.Check the following:are you in same account as the one the script uses to create and upload the bucket?have you created the bucket manually or not?read this to list buckets filtered for specific region: https://repost.aws/questions/QUFFgl8uV9Q82DszsPNT5y1A/how-to-list-buckets-only-from-a-certain-region-using-the-cliShare0So when I visit the S3 bucket screen - it defaults to the "Global" region. I am not able to choose the N. California region that I created the bucket in.When I use CloudShell to see if I can list out the buckets using (aws s3api get-bucket-acl --bucket YOUR_BUCKET_NAME), I am not able to switch my region to N. California before running that command.When I run the following PHP script, it successfully lists the name of the bucket I created. So it does exist, I just can't for the life of me reach it :(require 'vendor/autoload.php';use Aws\S3\S3Client;use Aws\S3\Exception\S3Exception;$client = new S3Client([    'version' => 'latest',    'region'  => $region,    'credentials' => [        'key'    => $key,        'secret' => $secret,    ],]);try {    $buckets = $client->listBuckets();    foreach ($buckets['Buckets'] as $bucket) {        echo $bucket['Name'] . "\n";    }} catch (S3Exception $e) {    echo "Error listing buckets: {$e->getMessage()}\n";}CommentSharemwanswered 2 months agoalatech EXPERT2 months agoCan you try to list buckets filtered for specific region with this approach and share output: https://repost.aws/questions/QUFFgl8uV9Q82DszsPNT5y1A/how-to-list-buckets-only-from-a-certain-region-using-the-cliShare0I am more than happy to bin it if I can't find it... but I just don't want to end up in a situation where I have a bucket with a 10kb file in it that ends up causing me financial pain (bills for stuff I can't see).CommentSharemwanswered 2 months ago0@alatech - So I used the command: aws s3api list-buckets --region "us-west-1"Got this:{    "Buckets": [],    "Owner": {        "DisplayName": "michael",        "ID": "LONG_STRING_OF_TEXT"    }}Then when I try this command: aws s3api get-bucket-location --bucket NAME_OF_BUCKETI get this response:  An error occurred (AccessDenied) when calling the GetBucketLocation operation: Access DeniedCommentSharemwanswered 2 months ago0In  addition to above, please go to the Cloudtrail console and check to see if there was a DeleteBucket call. Make sure you’re in the right account, such as IAM user.Please one more thing, did you click the refresh button?CommentSharerePost-User-7136343answered 2 months ago"


Question: ERROR: $ref Invalid model specified: [Model reference must be in canonical form] [API Gateway: Models]

"A 2018 tutorial shows this as working (I'm new to AWS), but I get the following error when using $ref in API Gateway > Models:**ERROR: Invalid model specified: [Model reference must be in canonical form]  **{    "type": "array",    "items":{      "$ref":"https://api.gateway.amazonaws.com/restapis/evwngv01/models/MusicItem"     }  }From the  2018 Tutorial:I  checked these docs, tried using ""Ref" instead, but that didnt work.https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.htmlhttps://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-reference.htmlThanky ou.FollowComment"

Answer: "1It appears the URL is not in the correct format in your ref. The format is:"$ref": "https://apigateway.amazonaws.com/restapis/{restapi_id}/models/{model_name}"Note, that there is a '.' between api and gateway that shouldn't be there. Also check that the ID of your REST API is correct,  is 'evwngv01' the ID of the REST API you have created."$ref":"https://api.gateway.amazonaws.com/restapis/evwngv01/models/MusicItem"CommentShareSteveanswered 9 months ago"


Question: Lambda deploy from Eclipse not working: AWS ResourceConflictException

"Hello,Please see below the steps that return an AWS error in local Eclipse:I installed AWS Toolkit for Eclipse, on Eclipse Jee 2018-12When I installed it 2 years ago, it worked fine and the lambda project was deployed in the Lambda Service directly from Eclipse without any configuration from my side; congratulations for this clean deploy configuration !An year ago this deploy started not to complete successfully: it worked only until the transfer of the eclipse archive in S3, without installation in Lambda Service. I have to do the installation of the S3 archive from the Management Console -> Lambda console, manually.The Error Cause:An update is in progress for resource: arn:aws:lambda:us-east-2:<removed>:function:RekonAddUser(Service: AWSLambda; Status Code: 409; Error Code: ResourceConflictException; Request ID: 408040a5-f1fe-4ba0-b251-df0c2fc8fe9c)This cause was thrown wile I did not have any other interaction with that resource !The message was:Failed to upload project to LambdaThe error was:com.amazonaws.eclipse.core.exceptions.AwsActionException: The operation cannot be performed at this time. An update is in progress for resource: arn:aws:lambda:us-east-2:<removed>:function:RekonAddUser (Service: AWSLambda; Status Code: 409; Error Code: ResourceConflictException; Request ID: 408040a5-f1fe-4ba0-b251-df0c2fc8fe9c)at com.amazonaws.eclipse.lambda.upload.wizard.UploadFunctionWizard.doFinish(UploadFunctionWizard.java:115)at com.amazonaws.eclipse.core.plugin.AbstractAwsJobWizard$1.run(AbstractAwsJobWizard.java:35)at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)Caused by: com.amazonaws.services.lambda.model.ResourceConflictException: The operation cannot be performed at this time. An update is in progress for resource: arn:aws:lambda:us-east-2:<removed>:function:RekonAddUser (Service: AWSLambda; Status Code: 409; Error Code: ResourceConflictException; Request ID: 408040a5-f1fe-4ba0-b251-df0c2fc8fe9c)at com.amazonaws.http.AmazonHttpClient$RequestExecutor.handleErrorResponse(AmazonHttpClient.java:1639)at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeOneRequest(AmazonHttpClient.java:1304)at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeHelper(AmazonHttpClient.java:1056)at com.amazonaws.http.AmazonHttpClient$RequestExecutor.doExecute(AmazonHttpClient.java:743)at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeWithTimer(AmazonHttpClient.java:717)at com.amazonaws.http.AmazonHttpClient$RequestExecutor.execute(AmazonHttpClient.java:699)at com.amazonaws.http.AmazonHttpClient$RequestExecutor.access$500(AmazonHttpClient.java:667)at com.amazonaws.http.AmazonHttpClient$RequestExecutionBuilderImpl.execute(AmazonHttpClient.java:649)at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:513)at com.amazonaws.services.lambda.AWSLambdaClient.doInvoke(AWSLambdaClient.java:2654)at com.amazonaws.services.lambda.AWSLambdaClient.invoke(AWSLambdaClient.java:2630)at com.amazonaws.services.lambda.AWSLambdaClient.executeUpdateFunctionCode(AWSLambdaClient.java:2514)at com.amazonaws.services.lambda.AWSLambdaClient.updateFunctionCode(AWSLambdaClient.java:2490)at com.amazonaws.eclipse.lambda.upload.wizard.util.UploadFunctionUtil.performFunctionUpload(UploadFunctionUtil.java:134)at com.amazonaws.eclipse.lambda.upload.wizard.UploadFunctionWizard.doFinish(UploadFunctionWizard.java:111)... 2 moreThe Session Data:eclipse.buildId=4.10.0.I20181206-0815java.version=1.8.0_60java.vendor=Oracle CorporationBootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_GBFramework arguments:  -product org.eclipse.epp.package.jee.productCommand-line arguments:  -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.jee.productThank you,FollowCommentAdam MODERATOR6 months agoPer guidelines, I've removed the account IDs from the ARNs in this comment.Share"

Answer: "0Hello,I understand that you are having issue when trying to deploy lambda function, using AWS Toolkit for Eclipse. You mentioned that it was working before, and about a year ago the process was incomplete, when deploying lambda via aws toolkit. Currently the process is incomplete and only working until the transfer of eclipse archive to S3. The error message is as follows:“The operation cannot be performed at this time. An update is in progress for resource… Error Code: ResourceConflictException...”We already have an issue open with AWS Toolkit Eclipse SDK team, regarding this issue:https://github.com/aws/aws-toolkit-eclipse/issues/242 At this time, we do not have an ETA on when or if this issue will be fixed. Please use above official Github repository issue to track progress and provide any feedback.You are already using proper workaround to deploy lambda function, by manually accessing zip file uploaded in S3 bucket. Alternately, you can also build Lambda deployment package using Eclipse (without toolkit), and manually upload the JAR file to deploy Lambda function code.CommentShareSUPPORT ENGINEERIsha_Kanswered 6 months agorePost-User-1318468 6 months agoHello,Thanks a lot for the answer. I will follow that github issue.Because you are just update the AWS Toolkit, please consider also another issue that I just added: Lambda deploy from Eclipse not working: JAXBException. The effect of this issue is that the archive does not leave the local drive anymore. I have to upload to Lambda directly from local drive.Thank you,MihaiShare"


Question: Sagemaker Notebook Kernel Dying During Training

"I created a machine learning pipeline in a Sagemaker notebook instance (ml.m4.10xlarge, volume size: 16384GB EBS) where the kernel keeps restarting around 20% of the way through the process.  I want to upgrade my notebook instances to meet the requirements for my workflow but am a bit confused as to what instance type would be sufficient to complete the task and also where I can purchase notebook instances.Any help is appreciated and I am happy to provide further commentary as needed.FollowComment"

Answer: "0You should probably be using SageMaker training jobs for this, rather than trying to scale up your notebook instance.SageMaker is more than a managed Jupyter service. By running your model training through the training job APIs (for e.g. as discussed here, using the high-level SageMaker Python SDK, you get benefits of:Automatic tracking of runs (e.g. input parameters and code, output artifacts, logs, resource usage metrics, custom algorithm metrics, container image, etc.)Reproducible containerized environments (pre-built containers with requirements.txt support, in case you don't want to build customized containers yourself)Right-sizing your infrastructure usage to optimize cost - keep your notebook instance small, request bigger instance(s) for your training job, and only pay for the time the training job is actually running.Integration with SageMaker options for model deployment / batch inference, etc.Training runs separate from the notebook, so you can e.g. restart your notebook kernel, kill the notebook instance, struggle with connectivity, etc... during training with no impact.So I would suggest to set up your training job referring to the Using XYZ with the SageMaker Python SDK sections of the developer guide, and the Amazon SageMaker Examples. This likely won't immediately fix your scaling challenge, but it should put you in a better position for scaling further (e.g. distributed training) and tracking your work. For most of my work, I just use e.g. t3.medium notebooks and interact with the SageMaker APIs to run jobs with on-demand infrastructure.With that being said, your instance already sounds very large (160GB RAM, 16TB disk). The most common causes I've seen of kernel dying are failure to allocate memory - so if you're using in-memory libraries like Scikit-Learn/etc, perhaps it could be that one of them is not able to handle a single massive data structure, even though there is physical memory available? E.g. due to something assuming 32 bit indexing, or some other aspect of the script/libraries being used. It's interesting that you manage to get 20% of the way through training, since often ML training is usually pretty homogeneous (e.g. for gradient descent, often if you can complete one epoch, you can run 'em all). Perhaps you have a memory leak somewhere? Giving more details about what framework & model type you're using might help guide suggestions, but ultimately I think it might require debugging your code to see where exactly things are going wrong.CommentShareEXPERTAlex_Tanswered 10 months ago"


Question: Amazon CodeWhisperer Free / Individual Tier

Is Amazon CodeWhisperer Free / Individual Tier eligible to be used for creating a commercial product?FollowComment

Answer: "1There are no restrictions on using Individual (free) Tier to write commercial code as an individual or within organizations.CommentShareKrisanswered 8 days ago0You are responsible for the code provided by CodeWhisperer as described in the following CodeWhisperer documentation.So I think it is possible to use that code for commercial use.https://aws.amazon.com/codewhisperer/faqs/?nc1=h_lsJust like with your IDE, you own the code that you write, including any code suggestions provided by CodeWhisperer. You are responsible for the code that you write, including the CodeWhisperer suggestions that you accept. Always review the code suggestions before accepting them, and you may need to make edits to ensure that the code does exactly what you intended.CommentShareEXPERTRiku_Kobayashianswered 11 days ago"


Question: EMR : cron: A yarn command is skipped

On EMR trying to add yarn command to cron.I tested directly calling yarn command in cron. But it seems to be skipping that command.This is the command added to cron*/1 * * * *  hadoop date;yarnNo matter where I put even script skips it. If I execute a script manually it works. Just via cron yarn is not even attemptedFollowComment

Answer: "0Accepted AnswerThanks for you response.Yes the intention is to run multiple commands. It does not need to be in inside ( ). I have verified this.  It inly needs to be separated out with semi-colon.And I was able to find the problem. The command was failing with some environment variable settings and it is good now. It wasn't a issue with yarn command or cron.Thanks again for responding.CommentSharerePost-User-2319878answered 8 months ago0The command mentioned above hadoop date;yarn looks incomplete. Can you please  share an example of what you are trying to do?If the intention is to run multiple commands in a cron you can surround the semicolon separate commands inside a ( ), for example */1 * * * * (hadoop version;yarn version). I hope this answers your question, if not please share more details on the use case and I'll be happy to assist you.CommentShareSUPPORT ENGINEERKrishnadas Manswered 8 months ago"


Question: PartiQL select always return ValidationException: Unexpected from source

"I have a working setup using Amplify, a lambda and dynamodb querying dynamodb the classic way with no issues.Since yesterday I am trying to use PartiQL instead but no success, I always just get "ValidationException: Unexpected from source"I have also downloaded the NoSqlWorkbench and I can connect to my database without any problems, list the items for the indices etc but when I try a basic PartiQL question, the error returned is the same as when using the lambdaIn NoSQLWorkbench I have tried a few different queries, this being the simplest one I could think of:select * from habits_sensors-playgroundand I also tried what I think should get the data using the index such as:select * from habits_sensors-playground.userId-gsi where userId='user1'where habits_sensors-playground is the name of the table.but like calling from the lambda, it returns the same "Unexpected from source" error.I do see all my items listed in the NoSQLWorkbench so everything is working fine but I must be missing something with how to use PartiQL?Crossposting from https://stackoverflow.com/questions/65888399/dynamodb-partiql-select-query-returns-validationexception-unexpected-from-sourc since I did not get any suggestions there.All suggestions welcome, I must be missing something very basic.Edited by: hubbobubbo on Jan 26, 2021 2:55 AMEdited by: hubbobubbo on Jan 26, 2021 2:58 AMEdited by: hubbobubbo on Jan 26, 2021 2:59 AMFollowComment"

Answer: "0In testing, I've found that table names which include a dash must be quoted.  For example:SELECT * FROM "habits_sensors-playground";SELECT * FROM "habits_sensors-playground"."userId-gsi" WHERE userId='user1';Thank you for raising the question - I had not encountered this exception before.CommentShareAWS-User-9190687answered 2 years ago0Thank you Pete, that did the trick. Not easy to spot, I did try single quotes but not the double ones.The dash comes from amplify appending the env name to the table so I guess it can happen to others as well.CommentSharehubbobubboanswered 2 years ago"


Question: Can a DMS task have single source with multiple targets.

"We have an RDS instance and want to replicate the data of the tables in that RDS to multiple targets. Below are the requirements.Migrate data from source (RDS) to target (RDS).Migrate data from source (RDS) to target (Kinesis).Migrate data from source (RDS) to target (S3).Migrate data from source (RDS) to target (Open Search).Migrate data from source (RDS) to target (Redshift).For all the migration tasks, the source is same but the targets are different. Can we do the above mentioned migration with single DMS task or do we have to create multiple DMS tasks by taking a hit on the RDS instance performance?FollowComment"

Answer: "0Accepted AnswerAt this moment, you may have to create multiple tasks.Reference : https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.ReplicationTasks.MultipleTasks.htmlCommentShareEXPERTAWS-User-Nitinanswered 7 months ago"


Question: --interactive impl fails

"Hello,I see there is a new feature in xocc to synthesize and implement and RTL kernel in Vivado and feed the result back into to the xocc flow (at least, that is how I understand it).When I try to do this in the F1 development AMI I get an error that the kernel.xml file is not present. It looks like there is a directory tree in _x/link/int that is not yet populated by the makefiles in the rtl_vadd example.Is this flow expected to work?Thanks!FollowComment"

Answer: "0Hi simonSN, the --interactive switch is a method of opening the Vivado project as part of an XOCC compile. One of the requirements is that a previous run exists before using this switch. If you run XOCC without this switch to completion, and then without cleaning the project run it again with the switch, it should open the Vivado project.CommentSharekmorrisXilinxanswered 4 years ago0Got it, great, I'll give that a try.Once in Vivado do I need to take the design through just synthesis, both synthesis and implementation, or can I choose how far to go?Thanks!CommentSharesimonSNanswered 4 years ago0You can choose how far to go. Depending on the changes you make, you can either re-save the .dcp file in the state it was in (synth or impl), or re-run Synthesis or Implementation to get a new DCP checkpoint. If you want to then use the modified DCP you can use --reuse_impl <dcp_file> or --reuse_synth <dcp_file> depending on the state it was saved in.CommentSharekmorrisXilinxanswered 4 years ago0As far as I can tell this flow doesn't seem to allow me to re-synthesize my own IP (the RTL kernel).Is there a way to do that so I can change the synthesis options?ThanksCommentSharesimonSNanswered 4 years ago0With the --interactive switch, at the earliest you are already examining a Synthesized netlist. You are able to edit the netlist and re-save the .dcp, but you can only move forward in the flow to implementing the design. If you are trying to add Synthesis options, this should be done before getting to this stage. You may want to look at the Out of Context Synthesis section of the RTL Kernels documentation if you are looking to do this with your RTL kernel. https://www.xilinx.com/html_docs/xilinx2018_3/sdaccel_doc/creating-rtl-kernels-qnk1504034323350.htmlCommentSharekmorrisXilinxanswered 4 years ago0Ok, thanks that helps.CommentSharesimonSNanswered 4 years ago0Just to note on my previous reply, as the current AMI supports 2018.2, you can refer to the 2018.2 version of the documentation for RTL Kernels: https://www.xilinx.com/html_docs/xilinx2018_2/sdaccel_doc/creating-rtl-kernels-qnk1504034323350.html however this feature is still the same in 2018.2.CommentSharekmorrisXilinxanswered 4 years ago"


Question: What is the sizekey parameter in AWS Glue Catalog Data properties?

What is the sizekey parameter in AWS Glue Catalog Data properties?FollowComment

Answer: "0Accepted AnswersizeKey represents the size of table in bytes.For example: if you have Glue table pointing to S3 location which has 3 files of 1 MB each , then sizeKey will show a value of 3145728.CommentShareAWS-User-4429230answered 3 years agoEXPERTFabrizio@AWSreviewed a year ago"


Question: We can't receive SMS when use Vietnam Phone Number

"We used the SNS to send messages to customers. We can receive an SMS when we try to send a text message from the sandbox. However, we can't receive SMS when using Vietnam Phone Number.I see that The message has been sent to the carrier but It isn't sent to Vietnamese users, please find the log in the link bellowhttps://drive.google.com/file/d/1bb_XY84voysd34j6AFxhceG9wPSvX5Xd/view?usp=sharing.Addition, I've another case that SMS display ??? when we sent the message. Example: 證券鵲喜: 您的開戶申請尚未通過審核，請查看電郵發送的詳細信息。你亦可透過xxxxxx xxxxx應用程序中的“線上客服”聯繫我們尋求幫助。FollowComment"


Question: SNS service SMS sending is failing sometimes.

We are trying to send SMS through our micro service and sometimes SNS delivers the SMS and sometimes we don't get the SMS. For short-length SMS it always sends it but the one in which we send url and length is longer it stops sending. I faced this issue from AWS Console as well.FollowComment

Answer: "0Hi,Please note that SMS delivery involves multiple downstream providers for the last leg of message delivery. Different destination country have different local laws and regulations to which SMS sender should comply to. For example, sending unregistered SMS to India using SenderID will fail, sending URLs as a part of SMS might fail for Nordic destinations.Hence it is recommended to follow the best practices mentioned hereAdditionally, SMS might also fail in case the destination mobile handset is having some issues. For example, being out of network coverage, mobile storage being full etc. Please do enable Delivery Status Logs following the steps mentioned here to understand why SMS is failing.However, if you require additional help, reach out to AWS Support with at least 3 latest delivery logs for further investigation.CommentSharejhrajuanswered a year ago"


Question: AWS AppSync gives Unauthorized Access

"session = requests.Session()session.auth = AWS4Auth(    # An AWS 'ACCESS KEY' associated with an IAM user.    AWS_ACCESS_KEY_ID,    # The 'secret' that goes with the above access key.                        AWS_SECRET,        # The region you want to access.    AWS_REGION_NAME,    # The service you want to access.    'appsync')# As found in AWS Appsync under Settings for your endpoint.APPSYNC_API_ENDPOINT_URL = APPSYNC_ENDPOINT# Use JSON format string for the query. It does not need reformatting.query = """query MyQuery {          getCustomer(id: "38c76f4f-c495-42e6-8599-647738a12692") {            first_name          }        }"""# Now we can simply post the request...response = session.request(    url=APPSYNC_API_ENDPOINT_URL,    method='POST',    json={'query': query})print(response.text)I want to be able to Read/Write data from AWS AppSync's dynamodb through python. I came across this solution online. But when I run it gives me the following error:{  "errors" : [ {    "errorType" : "UnauthorizedException",    "message" : "You are not authorized to make this call."  } ]}I have given Administrator Access to the IAM User. What am I doing wrong here?FollowComment"


Question: idt for greengrass v2 showing error The security token included in the request is invalid while environment has set the correct AWS_SECRET_ACCESS_KEY and AWS_ACCESS_KEY_ID

"Have check that the environment has set the AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY  and also has checked both of the key is not expiredUsing the same  AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY the greengrass.service can connect to awshowever the idt shows the errorthe log under logs/lambdadeployment/lambdaDeploymentTestshowsupdate the  log in below2023-03-15T10:03:37.995Z [INFO] (main) com.aws.greengrass.util.platforms.Platform: Getting platform instance com.aws.greengrass.util.platforms.unix.linux.LinuxPlatform.. {}2023-03-15T10:03:38.136Z [INFO] (main) com.aws.greengrass.lifecyclemanager.Kernel: No ongoing deployment detected. Proceed as default. {}2023-03-15T10:03:38.506Z [INFO] (main) com.aws.greengrass.config.Configuration: config-loading. Read configuration from a file path. {path=/test/greengrass/v2/config/config.tlog}2023-03-15T10:03:38.711Z [INFO] (main) com.aws.greengrass.lifecyclemanager.Kernel: effective-config-dump-complete. {file=/test/greengrass/v2/config/effectiveConfig.yaml}2023-03-15T10:03:39.243Z [INFO] (main) com.aws.greengrass.deployment.DeviceConfiguration: Copy Nucleus artifacts to component store. {destination=/test/greengrass/v2/packages/artifacts-unarchived/aws.greengrass.Nucleus/2.9.4/aws.greengrass.nucleus, source=/test/GreengrassInstaller}2023-03-15T10:03:45.808Z [ERROR] (main) com.aws.greengrass.easysetup.GreengrassSetup: Error while trying to setup Greengrass Nucleus. {}software.amazon.awssdk.services.iot.model.IotException: The security token included in the request is invalid. (Service: Iot, Status Code: 403, Request ID: 58a47128-daf5-4850-8b45-bdd4985dcd5b)here is my idts/config.json`{  "log": {    "location": "../logs/"  },  "configFiles": {    "root": "../configs",    "device": "../configs/device.json"  },  "testPath": "../tests/",  "reportPath": "../results/",  "certificatePath": "../certificates/",  "awsRegion": "us-west-2",  "auth": {    "method": "environment"  }}`update the lambdaDeplaymentTest log in belowtime="2023-03-25T09:32:14+08:00" level=info msg="Device architecture: aarch64"time="2023-03-25T09:32:15+08:00" level=info msg="Executing lambda deployment test setup"time="2023-03-25T09:32:15+08:00" level=info msg="Fetching installed Greengrass provisioning configuration"time="2023-03-25T09:32:15+08:00" level=warning msg="Encountered error fetching provisioned Thing: InvalidParameter: 1 validation error(s) found.\n- minimum field size of 1, DescribeThingInput.ThingName.\n"time="2023-03-25T09:32:15+08:00" level=error msg="Setting up device for testing failed with error Encountered error fetching provisioned Thing: InvalidParameter: 1 validation error(s) found.\n- minimum field size of 1, DescribeThingInput.ThingName.\n"time="2023-03-25T09:32:15+08:00" level=info msg="Cleaning up test resources..."time="2023-03-25T09:32:15+08:00" level=info msg="Executing lambda deployment test cleanup"time="2023-03-25T09:32:15+08:00" level=info msg="Pulled component logs to /home/user/test/devicetester_greengrass_v2_linux/results/20230325T093026/logs/lambdadeployment/lambdaDeploymentTest/.log"time="2023-03-25T09:32:15+08:00" level=warning msg="Copying lambda component log from DUT failed: Command '{sudo /test/greengrass/tmp/busybox cat /test/greengrass/v2/logs/.log map[] 0s}' exited with code 1. Error output: cat: can't open '/test/greengrass/v2/logs/.log': No such file or directory\n."time="2023-03-25T09:32:15+08:00" level=warning msg="Deleting lambda qualification component failed:  failed to get componentArn"time="2023-03-25T09:32:15+08:00" level=info msg="Skipping the cleanup of installed Greengrass"after days of research I found out that my effectiveConfig.yaml might be the reason why cause all of thisTell me if I was wrongI think the reason why it cause those error is because the effectiveConfig.yaml  is not correctly sethoweveras long as I know at the begining I just follow https://docs.aws.amazon.com/greengrass/v2/developerguide/quick-installation.htmlthe quick installation .  Without  correctly setting the effectiveConfig.yaml  how come can it connect to aws correctly ?what is the mainly diff between https://docs.aws.amazon.com/greengrass/v2/developerguide/manual-installation.html two of the guideWhat should I set if I want to correctly run pass IDTthe effectiveConfig.yaml below   is not the  one on my device just the clarify what I am sayingsystem:  certificateFilePath: ""  privateKeyPath: ""  rootCaPath: ""  rootpath: "/test/greengrass/v2"  thingName: ""services:  aws.greengrass.Nucleus:    componentType: "NUCLEUS"    configuration:      awsRegion: "ap-east-1"      componentStoreMaxSizeBytes: 10000000000      deploymentPollingFrequencySeconds: 15      httpClient: {}      iotCredEndpoint: ""      iotDataEndpoint: ""      jvmOptions: "-Dlog.store=FILE"      logging: {}      mqtt:        spooler: {}      networkProxy:        proxy: {}      platformOverride: {}      runWithDefault:        posixUser: "ggc_user:ggc_group"      telemetry: {}    dependencies: []    lifecycle:      bootstrap:        requiresPrivilege: true        script: "\nset -eu\nKERNEL_ROOT=\"/test/greengrass/v2\"\nUNPACK_DIR=\"/test/greengrass/v2/packages/artifacts-unarchived/aws.greengrass.Nucleus/2.9.4/aws.greengrass.nucleus\"\          \nrm -r \"$KERNEL_ROOT\"/alts/current/*\necho \"-Dlog.store=FILE\" > \"\          $KERNEL_ROOT/alts/current/launch.params\"\nln -sf \"$UNPACK_DIR\" \"$KERNEL_ROOT/alts/current/distro\"\          \nexit 100"    version: "2.9.4"  DeploymentService:    dependencies: []    version: "0.0.0"  FleetStatusService:    dependencies: []  main:    dependencies:    - "aws.greengrass.Nucleus"    - "aws.greengrass.Nucleus"    lifecycle: {}  TelemetryAgent:    dependencies: []    runtime:      lastPeriodicAggregationMetricsTime: 1679723443207      lastPeriodicPublishMetricsTime: 1679723443208    version: "0.0.0"  UpdateSystemPolicyService:    dependencies: []    version: "0.0.0"anyone know what happened?FollowCommentjrcarb-AWS 2 months agoHello @loordb,It looks like you are using the pre-installed use of IDT which allows for a pre-installed version of greengrass to be used with IDT. If you used the standard use of IDT, IDT would configure the effectiveConfig for you automatically.However, in your case, please see the section https://docs.aws.amazon.com/greengrass/v2/developerguide/set-config.html#userdata-config under the "PreInstalled" field description. This section should give you insight on how to properly configure greengrass to run with IDT.Regards.Share"

Answer: "0Accepted AnswerIt is not necessary to set the AWS_SESSION_TOKEN.Can you check the aws credentials file at ~/.aws/credentials too. Instructions on this issue are here. Let me know if this works.-SaiCommentShareAWS-User-8006754answered 2 months agoloordb 2 months agothx for helping After days on researching I have fix it for editting effectiveConfig.yaml in greengrass seems like that is why it cause the problem .Hope to get your help on my next problem https://repost.aws/questions/QUZNjtgenwSiK9yeh4DhM4Dg/idt-for-greengrass-v-2-shows-error-failed-at-the-greengrass-deplyment-is-completed-on-the-device-after-180-secondsShare0Hello,Please check for the 'AWS_SESSION_TOKEN' environment variable which may be set unintentionally. If its set, delete it and try again.Thanks,SaiCommentShareAWS-User-8006754answered 2 months agoloordb 2 months agothx for the early reply Sai,I have confirm that the AWS_SESSION_TOKEN is not been set, is it necessary to set? Becuse I did not see that coming on the official guideI update the log in the article hope if it can clarify the problemShare"


Question: AWS Amplify powered mobile app in offline mode

"I am creating a mobile app where users are possible to stay offline for days. I have started using the AWS Amplify stack and I would like to be as certain as possible about if I should rely on AppSync during the offline mode to make local queries, event after days of being offline.Another option would be to go with the REST API option and create local persistence.FollowComment"


Question: Unable to find newly made environment following guide

"I've been following the tutorial for setting up an AWS environment at https://aws.amazon.com/getting-started/guides/setup-environment/I had no trouble creating a user, setting up the CLI, using keys, or running aws ec2 describe-vpcs.aws configure is set to uw-west-2I try to create an environment with "aws cloud9 create-environment-ec2 --name getting-started-2 --description "Getting started with AWS Cloud9." --instance-type t2.micro" (If I try to run it a second time I get an error saying the name is already in use, so I assume up until this point everything is at least doing something).When I go to console.aws.amazon.com/cloud9 it says and set it to us-west-2 I have no environments.I've repeated these steps for every US region so I don't think it can be a region issue? Even if I'm sending them somewhere wrong, I'm checking all of them.I set the IAM Identity center region to us-west-2, no idea if that does anything.I have the same account ID present in the top right drop down menu.I only have one user, and I'm using its keys.I'm stumped.Is there maybe something I'm missing about switching to being that user in the Cloud9 web browser interface?I seem to be able to make an environment using the GUI on the website no problem. Is there any issue with simply doing that? If I can't make the CLI and website talk to each other, will I have trouble running apps from the CLI or something, later?FollowComment"

Answer: 0Under AWS Cloud9 -> Environments there is a dropdown menu with the default selection My environments Try to change the dropdown and look at Shared with me and All account environmentsThe problem might be happening because the role you are using to create the environments from the CLI and the role you are using to access the AWS console are different.CommentShareEgeAWSanswered 2 months ago


Question: Where are ECS Task logs being stored and for how long?

"I am running an ECS cluster service powered by EC2. When I log onto the server, which was created with the ECS optimised AMI (AMI ID: ami-040d909ea4e56f8f3) - I can look into the docker logs for the Tasks I have running.My log options in my Task Definition are: "logConfiguration": {    "logDriver": "awslogs",    "secretOptions": null,    "options": {      "awslogs-group": "logGroupName",      "awslogs-region": "us-east-1",      "awslogs-stream-prefix": "PrefixName"    }  }As the logs are being forwarded to CloudWatch, they should be deleted from the instance - am I right? It doesn't make sense that an ECS optimised instance was created without this in mind.My question simply is - where are these logs stored. Not the agent logs, as I can find the documentation for it, but the actual container logs. And when are they removed from the EC2 instance?FollowComment"

Answer: "0Accepted AnswerThe awslogs driver simply forwards your container STDOUT and STDERR log streams to CloudWatch Logs. It does not read from a specific location in your filesystem. Therefore, your application will need to be configured in such a way that the logs are emitted via the STDOUT and STDERR log streams.If your application is also writing the logs to a custom location, you will have to perform log rotation to clean up these logs to avoid file system exhaustion.CommentShareSUPPORT ENGINEERVenkat Penmetsaanswered 9 months agoSean 8 months agoThanks for getting back to me. Highly appreciated.Share"


Question: 5 Question about dedicated IP Address vs Shared IP address in Amazon SES

"HI,I have 5 question about Dedicated IP with Amazon SES:Why exactly they recommend 2 dedicated IP? What happens if I start only with 1 IP? Can you give me some examples of the differences?I understand that by default the warm-up is automatically, right? So, if I send to my list of 40,000 emails, 3 newsletters per week (120,000 emails per week), on each send of 40,000 the system automatically will send 1,000 emails from my new dedicate IP, and 39,000 from the shared IPs? That right? And it will increase the proportion on each send gradually.... but my main point here is... I don't have to do anything right?, I can continue with my normal sending, whole list, 3 times per week, and the system in the background will do the work to warm up gradually automatically? So, after this, we can continue with normal sending tactics.For my sending: 3 times per week, 40k email, and maybe upgrading to 5 times per week gradually, is the best to have Dedicate IP vs not having?My only problem that made me change shared IP to Dedicated Ip, it's that in Microsoft (Hotmail and Outlook), 100% of the email go to SPAM, and I don't know why... because same email sending from Active Campaing work perfect... This change to dedicate IP, will solve this? Or there is another way to solve this huge problem without change to dedicated IP?If for any reaseon, the dedicated IP doesn't result well to my business, I can back to shared IP like now, and that change from Dedicated IP to Shared IP again, doesn't affect the deliverabily on any bad way?Looking forward your replies,Thanks in advance,Best regards,SebastianFollowComment"


Question: DNS Error after IP address reset

"HelloWe use a single EC2 Instance on AWS that hosts our ESRI ArcGIS Server. On this server we provide a number of REST endpoints (map layers) that are accessible in web-mapping applications by the public via the internet. Our EC2 instance was restarted yesterday. Once the instance was restarted the rest services can no longer be accessed. The ArcGIS Server and the rest services are still running and I can see them on the instance, however I am unable to access these via the internet. It would appear that our public IP address has changed after the restart - I receive an HTTP ERROR 503 when I try to access the site. As far as I understand this, the DNS server is unable to resolve the name, possibly because the IP address it is looking for has changed.I am at a bit of a loss as to how to fix this on AWS and can't find any guidance. Can anyone advise what steps are required to correct this?Thanks,PeterFollowComment"

Answer: "0To keep a particular static IP address, what you will need to do is Assign an Elastic IP Address to the EC2 instance.This is a fixed IPv4 address that you can reassign from one EC2 instance to another. This address stays persistent through instance stops and starts.https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.htmlCommentSharetedtrentanswered 5 months agoSneakyPete 5 months agoThank you @tedtrent. I appreciate you taking the time to respond.Share0Since you mentioned,the DNS server is unable to resolve the name, possibly because the IP address it is looking for has changed.I would recommend checking the Record entry for the DNS name in the hosted zone, if it's still using the old Public IP address then this could be the reason why the DNS resolution is failing.If you are making use of Amazon Route 53, I would recommend checking the record details in Route 53 console and if outdated edit the A record to the new Public IP address [1].Another recommendation would be to make use of of Elastic IP address to retain the Public IP address [2] which was assigned to the EC2 Instance. By doing so you would not be required to edit the record every time the EC2 reboots.Reference:Elastic IPs: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.htmlEditing Records R53: https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resource-record-sets-editing.htmlCommentShareAWS TAManswered 5 months agoSneakyPete 5 months agoThank you @AWS_TAM. I appreciate you taking the time to respond.Share0This issue has now been resolved. In the end it wasn't an issue with a changed IP address, but an outdated version of AVG antivirus that was blocking various processes from occuring. Thanks.CommentShareSneakyPeteanswered 5 months ago"


Question: Running a "proxy" process on gamelift

"Hello !I am trying to run a "proxy" process alongside my game servers. The idea is that all the game servers will communicate with this process over localhost and the proxy will forward this information to our backend services. This process is built using java and I have tried the following without much successRunning the process as a part of the Fleet's RuntimeConfiguration however the process is restarted with a SERVER_PROCESS_SDK_INITIALIZATION_TIMEOUT every few minutes. Given its java and there is no Gamelift Server SDK for java, this option seems like a dead end with a lot of event spam.Running the process as part of install.sh. However when I try to nohup command & the process the fleet is stuck  at FLEET_CREATION_RUNNING_INSTALLER for about 90 minutes before its moved to an ERROR state. I am unable to ssh into the instance entirely.Why does the fleet installation get stuck despite the process running in the background ?Is there anything else I can do to run this process ?Thanks !FollowComment"

Answer: "0Accepted AnswerThanks all for your suggestions. I managed to get it running as a systemd service. Here's the template in case anyone is looking for the sameecho 'Installing JDK 11'sudo amazon-linux-extras install java-openjdk11 -yecho 'Setting up proxy as a service'sudo tee -a /etc/systemd/system/{{proxy_name}}.service > /dev/null <<EOT[Unit]Description=proxy for game serversAfter=network.target[Service]User=rootWorkingDirectory={{gamelift_working_dir}}/ExecStart=/usr/lib/jvm/jre-11/bin/java -Dlogging.file.name={{gamelift_working_dir}}/{{proxy_name}}.log -jar {{proxy_name}}-{{proxy_version}}-all.jarSuccessExitStatus=143Restart=always[Install]WantedBy=multi-user.targetEOTsudo chmod 0644 /etc/systemd/system/{{proxy_name}}.servicesudo systemctl daemon-reloadsudo systemctl start {{proxy_name}}.servicesudo systemctl enable {{proxy_name}}.servicesudo systemctl status {{proxy_name}}.serviceCommentSharerePost-User-4651918answered 2 years ago0Hi, did you tried to install the proxy as a linux service  (assuming is linux OS)?This may be a good approach to ensure it's always running (depending on the init system): for systemd: https://singlebrook.com/2017/10/23/auto-restart-crashed-service-systemd/Not sure this helps but for sure it will not hang the install scriptCommentSharerePost-User-9537167answered 2 years ago0"FLEET_CREATION_RUNNING_INSTALLER – The game server build files were successfully extracted, and the Amazon GameLift is now running the build's install script (if one is included). Failure in this stage prevents a fleet from moving to ACTIVE status. Logs for this stage list the installation steps and whether or not the install completed successfully. Access the logs by using the URL in PreSignedLogUrl."Indicates your install.sh is bad as the fleet never moved out of this stage (next step should be FLEET_CREATION_VALIDATING_RUNTIME_CONFIG I believe.Things to bear in mind:The process that GameLift launches has to be the process that checks in with OnProcessReady etc. Otherwise you can't complete registration and GameLift recycles the process. So your proxy can't be the thing that is launched as part of the runtime config.GameLift runs on Amazon Linux 2 which is fairly barebones, so you can use docker and the AL2 image to test and tune your install.sh scriptFleet events page should have the logs for running your install.sh script. You should be able to get the logs here from your script. It does sound like the script does not complete/hangs though.Not sure if you can access to the instance during the install part of fleet creation, but when debugging new fleets always open the debug ports as part of fleet creation (they can only be changed for fleets in ERROR or ACTIVE).This may have some further useful information: https://forums.awsgametech.com/t/install-node-exporter-on-gamelift-instances/9857If you are still having problems then if you provide a fleet id and region, I can get the GameLift service team to take a look and maybe they will have some advice for you.CommentSharerePost-User-5332620answered 2 years ago0Good to know, I was expecting that would work.CommentSharerePost-User-9537167answered 2 years ago"


Question: EBS gp3 volumes in Severely Degraded state

"Hello,We are running 3 i3.xlarge EC2 instances for a database cluster. We also attach a 750 GB gp3 EBS volume to each instance. We have a process that copies our backup snapshots from the i3.xlarge's instance store volume to the attached EBS volume for backup purposes.We've noticed that when initially attached, our EBS volumes are getting expected throughput and backups are completing quickly. After a few hours, the EBS volumes start going into the warning state and say that they are either getting degraded or severely degraded I/O performance. As such, throughput is very low and backups take a long time to complete.We are wondering why the volumes start out with expected performance and seemingly degrade over time. Here is how the bandwidth looks once the volumes enter the severely degraded state: https://imgur.com/a/uDmPfnlFollowComment"


Question: Kafka for single packet IoT cluster

"I have some IoT devices that send raw data which I am planning to store in Kafka and then process it with the consumer and save it to a database.Scenario:IoT devices send sensor data in form of packets (1 packet per sec) and you need 10 raw packets to decode its value (I have a C binary that takes 10 packets, I can enforce in IoT to send 10 packets combined as a single packet but I want IoT to focus on single packet only so that in future I can modify the algorithm to work for 20, 30 packets on the cloud). If I use the same topic for all IoT then consumers have to wait until it has received 10 packets to start processing, which I am thinking can cause some problems. (Problem of filtering packet of IoT, as single packets, can mix up in single topic)Issues:Initially, I thought of creating a single topic with partitions for each IoT device, but Kafka doesn't support dynamic partitions. (More IoT devices can be added or removed during runtime.)Another solution can be to create a topic for each IoT device with 1 partition.Also, the above approach of 1 topic for each IoT device may enforce to use of one consumer for each IoT device added (can this be improved?)I am looking for a better and more efficient implementation if possible for this problem.The number of IoT devices is dynamic and can go up to 100+.FollowComment"

Answer: "0Hi there,Sorry I know a little about IoT knowledges, I'm thinking about of if you could add identifer about device(i.e. deviceId),  and one topis will suit them all. First, you can send the sensor data to AWS IoT Core, and then route the sensor data to Kafka based on certain rules configured on the IoT Core side.For the analysis part, you might could partation the data based on the deviceId or rackId etc.https://aws.amazon.com/iot-core/CommentShareCloudMananswered a year agoAWS-User-6663831 a year agoThanks for the reply, Yes you are correct I can use IoT Core, but what I am most confused about is consumers in Kafka.Confusion 1: If I use a single partition and each IoT sends a single packet, then there will be packet mix-up in that single partition (This has to be handled by consumers).Confusion 2: Let's say a consumer read 20 packets from the partition now and you only got 5 packets of IoT1, 5 packets of IoT2, 5 packets of IoT3, and 5 packets of IoT4, and I can't run my algorithm here as I need 10 packets from 1 IoT, how can I ensure a consumer read 10 packets from one IoT and so on.ShareAWS-User-6663831 a year agoI think the problem is that since "Each packet can't be handled independently" (you need 10 packets available). How to build a solution for such a problem?Share"


Question: "PLACING" was kept for 4 minutes

"HelloYesterday something interesting in GameLift happened to me. Enough players were in a matchmaking queue and they were matched by FlexMatch because of ticket status but they waited for 4 minutes to join a lobby in a dedicated server although I assume they were in "PLACING" status. Unfortunately, I'm sure that one of players was in "PLACING" because I found the ticket status from a client log that I created but I couldn't find the ticket status of the others.Could you tell me why the player waited for 4 minutes to join a lobby?In addition, A scalable policy was turned on. That's why instances on a fleet were enough.These are the player's informationPlayerSessionId : psess-be6a80cd-51e6-431e-989a-c4a6ad947c86MatchmakingTicketId : 5f74bd8137901077501eaedb-17-17-54-1TicketStatus : PLACING for 4 minutesThe time when the status of the ticket was changed to PLACING : 09/30/2020 17:17(UTC) 09/30/2020 10:17 AM(PST)FollowComment"

Answer: "0I've asked the service team to take a look. If you have technical support on your AWS account and this is urgent, I would suggest opening an issue there for a faster response.While we wait for the service team, you could check:What your matchmaking timeouts areIf you had actual spare capacity on your fleet, did you have an idle processes at the time which could have taken the game session. If GameLift had to bring up a new instance then that takes minutes.Look at how you are managing spare capacity, if its exhausted (because your incoming match rate spiked  dramatically) then players will be left waiting for new instances.Check your fleet for server instabilities, if your servers start receiving new game sessions and then fail, the match may be left in limbo for a while waiting for the server to be marked as unhealthy so it can be replaced.CommentSharerePost-User-5332620answered 3 years ago0Hi!To further help debug your issue, which region was the queue placing this ticket in and what was the name of that queue?Thanks!CommentSharerePost-User-1112179answered 3 years ago0Region : Oregon(us-west-2)The name of that queue : THEEND-42258-Shp-PlayTest-GuaranteedThanks youCommentSharerePost-User-7829175answered 3 years ago0Hi there,At the beginning, the fleet had 1 instance and there are matches formed and submitted to this queue THEEND-42283-Shp-PlayTest-Guaranteed. So the queueDepth metric was high and waitTime metric of this queue is 249 seconds. The scaling policy needs some time to react and the fleet was set to 3 instance at 2020-09-30 17:23:03, which is after this ticket has been in PLACING for 4 minutes. You can check the queue metrics in CloudWatch to see the details.Best regardsCommentSharerePost-User-5046723answered 3 years ago"


Question: "Route53 batch of changes succeeding, but only making one of the changes"

"When sending a batch of changes to Route53 like the following which is added "." (period) on to the ends of all the Values the request returns success, but only one of the changes has been made:{'batch': {'Changes': [{'Action': 'UPSERT','ResourceRecordSet': {'Name': 'cname-1.exxampled.com.','ResourceRecords': [{'Value': 'www-1.exxampled.com.'}],'TTL': 3600,'Type': 'CNAME'}},{'Action': 'UPSERT','ResourceRecordSet': {'Name': 'cname-2.exxampled.com.','ResourceRecords': [{'Value': 'www-2.exxampled.com.'}],'TTL': 3600,'Type': 'CNAME'}},{'Action': 'UPSERT','ResourceRecordSet': {'Name': 'cname-3.exxampled.com.','ResourceRecords': [{'Value': 'www-3.exxampled.com.'}],'TTL': 3600,'Type': 'CNAME'}},{'Action': 'UPSERT','ResourceRecordSet': {'Name': 'cname-4.exxampled.com.','ResourceRecords': [{'Value': 'www-4.exxampled.com.'}],'TTL': 3600,'Type': 'CNAME'}},{'Action': 'UPSERT','ResourceRecordSet': {'Name': 'cname-5.exxampled.com.','ResourceRecords': [{'Value': 'www-5.exxampled.com.'}],'TTL': 3600,'Type': 'CNAME'}}],'Comment': 'Change: 97b8313b5b93444d977567488e5ff81e'}}Making any other changes (that I've thought to try) works as expected so it's something specific about adding the "." on the end.There's lots more debugging and testing in https://github.com/octodns/octodns-route53/issues/45 which was filed by a while back when an octoDNS user ran into problems. I have not been able to find a work-around for the problem. In that case each time things are synced one more record is updated and the rest of the batch is unchanged. It requires making the request N times to get all N records updated and consistent with best practices.I've verified the behavior with manual/standalone calls to boto3.FollowComment"