Question: Post Call Survey using Salesforce Service Cloud Voice with Amazon Connect Telephony

"Has anyone successfully created a post call survey using Service Cloud Voice and Amazon Connect and got the survey data to sync to Salesforce? The AWS documentation has been removed and I'm stuck.Goal State:Callers are automatically routed to a 1 question post call survey (rate from 1 to 5) when an agent ends the call. We store the customer input to the CTR and sync it to a custom field on the Voice Call Record (VCR) in Salesforce.ContextWe implemented Service Cloud Voice (SCV) with Amazon Connect telephony and calls are answered via Omni-Channel.VCRs are auto created.We use Connect contact flows and do not use Omni-Channel routing flows.The post call survey is in a disconnect flow.We cannot use the 'opt in' option for surveys.I've TriedPutting both the Store Customer Input and Set Contact Attributes blocks within the disconnect flow.Adding the attribute to the Set Contact Attribute block before the InvokeTelephony Lambda. Pass Data From IVR DocumentationUpdating the CTRDataSyncFunction to add custom fields. Customize Synced CTR Fields DocumentationGiven Stored Customer Input is not listed in the CTR Data Models Documentation, I'm not sure I'm updating the lambda correctly or if it's necessary?FollowComment"

Answer: "0Hi Laura,A complete solution to deploy post-call survey was recently released on aws-samples.Please see: https://github.com/aws-samples/amazon-connect-contact-surveys. Follow the documentation to deploy it.This should be an excellent starting point to achieve this. Feel free to reach out if you need assistance, I happen to have created this solution ^_^.CommentShareAurelienanswered 4 months ago0Hi Aurelien, thanks for the reply and documentation. Unfortunately, it does not meet my needs as we want to pull the stored customer input from AWS/Connect into Salesforce, which is the CRM we use for cases. We do not want a separate survey set up in AWS.Really, what I'm trying to figure out is:Which blocks do I set in my Connect contact flow(s)?Where do I set them in the flow?How are they configured?Do I link to existing lambda? Use another?How do I reference Stored Customer Input?The goal is to get that stored customer input into Salesforce and onto the Voice Call Record that gets created.I haven't had any luck customizing the CTR lambda code as I'm not sure how to reference the input within it.CommentShareLauraanswered 4 months ago0I understand. In that case, you will need to use a combination of Store Customer Input and Invoke AWS Lambda Function to achieve your outcome.Store Customer Input will prompt your users with a given question and collect the answer. Once a customer has entered an input, you can access the last stored input through the system contact attribute "Stored customer input", which you can pass to you Lambda for processing.It might be worth reaching out to your AWS Account Manager, they might be able to assist you in getting the help you would require.CommentShareAurelienanswered 4 months ago"


Question: Unknown reason for API Gateway WebSocket LimitExceededException

"We have several API Gateway WebSocket APIs, all regional. As their usage has gone up, the most used one has started getting LimitExceededException when we send data from Lambda, through the socket, to the connected browsers. We are using the javascript sdk's postToConnection function. The usual behavior is we will not get this error at all, then we will get several hundred spread out over 2-4 minutes.The only documentation we've been able to find that may be related to this limit is the account level quota of 10,000 per second (and we're not sure if that's the actual limit we should be looking at).  If that is the limit, the problem then is that we are nowhere near it. For a single deployed API we're hitting a maximum of 3000 messages sent through the socket per minute with an overall account total of about 5000 per minute. So nowhere near the 10,000 per second.The only thing we think may be causing it is we have a "large" number messages going through the socket relative to the number of connected clients. For the api that's maxing at about 3000 messages per minute, we usually have 2-8 connected clients. Our only guess is there may be a lower limit to number of messages per second we can send to a specific socket connection, however we cannot find any docs on this.Thanks for any help anyone can provideFollowComment"

Answer: 0LimitExceededException - The client is sending more than the allowed number of requests per unit of time or the WebSocket client side buffer is full.In your case the client refers to the Lambda that is calling postToConnection API.... there is a limit at which this API can be invoked per second... once we go beyond the limit thats when it results in the LimitExceededException.https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/apigatewaymanagementapi/AmazonApiGatewayManagementApi.html#postToConnection-com.amazonaws.services.apigatewaymanagementapi.model.PostToConnectionRequest-Note: Request rate limit of postToConnection is unknown as we couldn't find related documentation.Possible Solution: Check the response from postToConnection if it results in LimitExceededException then retry by waiting for few hundred milliseconds. Best practice is to apply exponential backoff with jitter https://aws.amazon.com/blogs/architecture/exponential-backoff-and-jitter/CommentShareprabuanswered a year ago


Question: AWS Managed Elastic-search 7.10 has override_main_response_version enabled

I have created Elasticsearch 6.8 version initially and recently updated with es 7.10 version. It shown override_main_response_version = true. But i have not enabled it. just wanted to know whether this is default setting from AWS managed Elasticsearch.I tried to get the cluster setting with dev tool by using below request it's not listing belowGET _cluster/settings?include_defaults=trueFollowComment

Answer: 0Are you sure it shows override_main_response_version = true in ES 7.10? Since this was introduced in Opensearch 1.0 to provide backward compatibiity for clients that look up the elasticsearch version. Setting compatibilty mode in ES7.10 fails for me in Dev Tools and there is no option to enable compatibility mode in ES7.10 cluster during creation. I tried the upgrade path you followed as well. It's actually irrevant for Elasticsearch version and is only required for Opensearch. Also it's not a setting enabled by default in Opensearch 1.x onwards--SydCommentShareSydanswered 5 months ago


Question: Object metadata x-amz-website-redirect-location not working via API

"I have an object that has been added to a hosted bucket and has the correct x-amz-website-redirect-location metadata key added with a correct value.  Cloudfront is not involved.When I go to the console and look at the object properties I can verify everything looks good.  When I request the object using the correct syntax <bucketname>.amazonaws.com/key the redirect does not fire.  No error just blank page.If I go to the console and add the key interactively it adds a slightly different metadata key called Website-Redirect-Location (not x-amz-website-redirect-location) and this works once added.This is the first time I have attempted to do an object redirect.  It seems to me these methods should be equivalent, but they are not yielding the same results. I tried adding the Website-Redirect-Location via API but it gets translated to x-amz-website-redirect-location during the call and doesn't work.I need to be able to handle all of the from the .net api instead of console.  Is there something else I may be missing here? I have searched on this topic and have verified the syntax for the keys and the urls are correct as well as bucket addressing. Thanks in advance.Thanks.DaveFollowComment"

Answer: "0So to hopefully assist someone else who runs into this. It turns out that when using the .Net API to add a redirect, you DO NOT add the metadata manually via a putRequest2.Metadata.Add("Website-Redirect-Location", URL) call as the documentation would lead you to believe.Instead, add the WebsiteRedirectLocation = URL option to the PutObjectRequest.  This works just fine.Hope this saves the next person some time.CommentSharedsutton_awsanswered 4 years ago"


Question: Unable can't create Certificate using AWS Cert Manager for .ir domain

"Hello guys,I'm not able to create a certificate using AWS Cert Manager for .ir domain.Please let me know how can I further proceed in this situation.FollowComment"

Answer: "1Hi, what part is it failing at?  What error are you seeing?  As long as you can validate ownership, there should not be an issue.If you are seeing the error "Additional Verification..."  see the documentation here. You might need to open a support ticket.https://docs.aws.amazon.com/acm/latest/userguide/troubleshooting-failed.html#failed-additional-verification-requiredCommentShareEXPERTMatt-Banswered a year agoajay-acceleratorapp a year agoHello @mthwbarbYes, I see an "Additional Verification Required" and as suggested I open this thread here.I would like to know what I can do as my next steps to get it verified.ThanksShare"


Question: Redshift Data API not recognized by Boto3

"When creating boto3 client for Redshift Data API, I am getting the below error. "redshift-data" is not there in the list of services that boto recognizes. Any insights on why redshift data api is not yet recognized by boto3? My Runtime is Python 3.8"errorMessage": "Unknown service: 'redshift-data'. Valid service names are: accessanalyzer, acm, acm-pca, alexaforbusiness, amplify, apigateway, apigatewaymanagementapi, <<and so on...>>..., quicksight, ram, rds, rds-data, redshift, rekognition, resource-groups, resourcegroupstaggingapi, robomaker, route53, route53domains, route53resolver, <<and so on>>Below is my lambda code:import boto3client = boto3.client('redshift-data')I also triedimport botocore.session as bcimport boto3session = bc.get_session()s = boto3.Session(botocore_session = session, region_name = 'us-east-1')client = s.client('redshift-data')FollowComment"

Answer: 0Accepted AnswerThe lambda function is not using the boto3 version that supports Redshift Data API. Check out this link for different options to upgrade boto3 version.Edit:Now the boto3 version in Lambda (Python 3.8) supports Redshift Data API. You can check the runtime details from the docCommentShareSamanswered 3 years ago


Question: How to build components which are missing from amplify ui library ?

"Does the amplify ui components planning for any updates ? I observe multiple key components are missing like slider, multi select text field, autocomplete text box, calendar.If these components are missing in amplify ui components, how do we use the components from different library like ant/mui to design the page in figma and use it to generate code ? what is the recommendation for developing using amplify ui library in amplify studio with components from other design ?for example in the form of 6 fields, 5 components are from amplify ui components, but 1 will not be from amplify ui components. Now when i use the code generation, that one component code alone is not coming out as proper code, which leads us to go and make change inside the autogenerated code.It will be super helpful if anyone give solve for this ?FollowComment"


Question: Lightsail/wordpress cron job not working

"I recently migrated a wordpress site to lightsail.  This site requires a cron job that runs on an hourly basis to send email reminders.  The site works great but when the cron job runs it doesn't send the notifications, the job never finishes, and seems hang the site after some time.  I've tried running both as bitnami (crontab -e) and as root (sudo crontab -e) neither work and both exhibit the same behavior.  Following is the command line I am using for the cron job:0 * * * * /opt/bitnami/php/bin/php -q /bitnami/wordpress/wp-content/plugins/modern-events-calendar/app/crons/booking-reminder.phpI suspect I am doing something wrong or missing something.  The same site and job ran fine on bluehost before moving to lightsail.FollowCommentAlex 10 months agoHave you tried running the script directly to make sure there aren't any problems with it?Share"

Answer: "0Is the job directly sending emails through SMTP on port 25?  If so, have you followed the steps to allow port 25 use on your instance?https://aws.amazon.com/premiumsupport/knowledge-center/lightsail-port-25-throttle/CommentShareAWS-Andyanswered 9 months ago"


Question: Websocket API server side Ping/Pong

"Hi,Does Websocket API do Ping/Pong on the server side to detect if a client is still connected? I find when the network on the client is switched off, Websocket API Gateway still thinks the connection is open until the idle timeout.LuFollowComment"

Answer: "0API Gateway WebSocket API does not perform server-side ping but it does respond with pong for the client side ping.CommentShareAWS-User-3921561answered 4 years agorePost-User-3866394 a year agoStill no server-side ping? It would be great if you can implement it and trigger the disconnect route when the server-side ping fails.Share0I do not see any documentation where the RFC-compliant ping/pong mechanism of Websocket is supported. Can you point to this? In my experimentation, there is no "pong" response to a websocket "ping" without explicitly coding the integration back-end to respond. Your post suggests that API Gateway will handle client pings without requiring a user-defined integration handle this.CommentShareMqttDudeanswered 3 years ago0I'm not sure how you experimented it, but I tested with wscat successfully.wscat -c wss://***.execute-api.***.amazonaws.com/*** --slashconnected (press CTRL+C to quit)'> /ping< Received pong'> ⏎Edited by: jwaataws on Oct 31, 2020 10:13 AMCommentShareAWS-User-3921561answered 3 years ago0I use wscat 4.0.1 to connect to API GW for Websocket but nothing happens (in wscat) when sending "/ping"~ wscat -c wss://***.execute-api.eu-west-1.amazonaws.com/ --slashConnected (press CTRL+C to quit)~ /ping~What works:Typing /close closes the connection.Sending a message that does not start with "/" triggers the default route in API GW as expected.But /ping ... nothing?Edited by: andreasi77 on Jan 11, 2021 5:02 AMEdited by: andreasi77 on Jan 11, 2021 7:37 AMEdited by: andreasi77 on Jan 11, 2021 7:39 AMCommentShareandreasi77answered 2 years ago0Answering myself since I (with help from AWS) found the solution.API Gateway Websocket support clients sending ping control frame that defined in RFC doc. The client can send a ping frame to check the connection without any cost.While API Gateway doesn't perform periodic server-side pings to connected clients, it does respond with pongs for the client-side pings. This is because that RFC dictates that servers MAY send out periodic pings, but that servers MUST respond with the appropriate control frames if pinged.The reason for "< Received pong" not being printed when using wscat to send "/ping" to server was caused by a missing flag"-P, --show-ping-pong                print a notification when a ping or pong is received"So the correct command to use is:~ wscat -c wss://***.execute-api.eu-west-1.amazonaws.com/ --slash -PCommentShareandreasi77answered 2 years ago0Thanks andreasi77!Just tried it out on the command line with wscat and got a pong reply from the established connection. But still - I wonder how that would be used in my frontend javascript / VueJS app. I'm confused when trying to get an idea on how that would be sent and received. Is this being done in the background by the browser on intervals ( but not visible in the developer console network message panel? - I use the Chrome DevTools to monitor stuff in the console). Any insights is much appreciated!CommentSharekrisberganswered 2 years ago0I am stuck at the same point - this is closest I have seen as it seems the browsers implementations of WS do not support ping control frames nativelyhttps://stackoverflow.com/questions/26971026/handling-connection-loss-with-websockets/39765960#39765960CommentSharekevinMcGanswered 2 years ago"


Question: SSM patching - no internet instances - who will download patches

"Simple doubts  :if my private linix instances have no internet and i use ssm endpoints for patching, who will download the patches, SSM ?FollowCommentkurokomk3 a year agoThe instance must be able to connect to the source patch repositories when patching through SSM.https://docs.aws.amazon.com/systems-manager/latest/userguide/patch-manager-prerequisites.htmlShare"

Answer: "0Good question!From AWS's Patch Manager Documentation: https://docs.aws.amazon.com/systems-manager/latest/userguide/patch-manager-prerequisites.htmlThe managed nodes must have access to the source patch repositories.  On Linux, these are typically from the remote repos confirmed on the node unless a alternative patch source repo is specified.As for who kicks off the patches, patch baselines include rules for auto-approving patches.  Otherwise, you could either schedule patches in a maintenance window or use tags.CommentSharejsoncanswered a year agoFrancisco_L SUPPORT ENGINEERa year agoAdditionally, the instance needs access to S3 buckets that SSM uses. More information here https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-agent-minimum-s3-permissions.htmlShare0In this case, the private instances must have access to your private Repos (ex: private WSUS server or internal RedHat Satellite server).SSM patching in the end will call the "Windows Update" or "yum update" commands as usual - and they should be working.CommentShareAWS-User-NVanswered a year ago"


Question: Help for implementing GameLift in Unity

"Hello,I have attempted to implement Game Lift into Unity projects a few times but have been unsuccessful. I usually start off quite well, and then end up down a rabbit hole of downloading different SDK's and clicking different links in documentation that lead to another page that link to another page etc.I also find the example battle royale tutorial quite difficult to follow. I am wondering if someone could help me in explaining how to set up a simple Unity project with Game Lift, allowing users to join and create rooms if possible.Thanks in advance.FollowComment"

Answer: "0Accepted AnswerIf you are using Unity you actual have two choices with GameLift:Dedicated Servers - Here you build and upload your server binaries and GameLift handles autoscaling. You need to integrate the GameLift Server SDK into your server binary and the standard AWS SDK for clients (for whatever services you require) into your game client.GameLift Realtime - You only provide simple server scripts (in NodeJs) and GameLift provides the servers etc.  See https://aws.amazon.com/blogs/gametech/creating-a-battle-royale-game-using-unity-and-amazon-gamelift/ - you just integrate the GameLift realtime client into your code.Someone even has a youtube series on this: https://www.youtube.com/watch?v=WaAZyqgkXDYCommentSharerePost-User-5332620answered 3 years ago0Hi @REDACTEDUSERCommentSharerePost-User-3095128answered 3 years ago0Thank you for your help, I now have a small game where players can join a Game Lift game session.CommentSharerePost-User-7957458answered 3 years ago"


Question: Structure of Repositories for Resource creation and lambdas

"I have a few team members want to work on different parts of a solution architecture. They should be able to create the following resources in their accounts, consume any updates from other team members updates to the whole solution architecture and test.These are the resources:EventBridge (1 ESB)C# Lambdas (6 Lambdas)Cron Jobs (4 Cron Jobs)On-Prem client applications (1 JavaScript applicaiton)This is our SDLC process:We will use the AWS C# CDK to create the resources and roles.On-Prem Jenkins to create a CI/CDTo accomplish smooth development and deployment of the projects, what is the recommended way to split the projects into GitHub repositories?Should the CDK (Infrastructure as Code) to create all the resources be a separate repository? Can this help the developer to deploy the resources in a single execution?Should the CDK (Infrastructure as Code) to create the resource be part of the lambda or cron job itself?Any suggestions appreciated.FollowComment"

Answer: "1Perhaps you should consider if all of the lambda functions belong to the same solution/workload, if the answer is yes then the infrastructure (CDK) and lambda functions should be deployed together, if on the other hand you can your code to different individual workloads which can be deployed individually than you should consider multiple repositories.In my opinion all resources that are used to trigger or used by a lambda functions should be deployed along with that function, so that if you make a change to your infrastructure that would also effect your lambda code (for example replacing SNS with SQS) than the code of the lambda should be "synchronized" and deployed with the right version of your infrastrucutreCommentShareDror Helperanswered a year ago"


Question: Using AWS Global Accelerator service to distribute traffic across multiple regions

"Hi Team,I have a requirement to support Webhook (http notification requests) consumption and the applications/micro services which consumes these requests will be hosted on multiple regions in clusters.  When http notification requests comes we want all these micro services running in different regions should get the requests equally so that proper load balancing will happen. Can we achieve this kind of functionality using AWS global accelerator service? If So, How? and is there any service along with AGA is needed ? Please let us know.  Thank you so much in advance.Also, We are looking to have one URL exposed which boils down to one Fqdn/static IP address listening on port 80.FollowComment"

Answer: "3Accepted AnswerYes, AWS Global Accelerator (AGA) can help you achieve the functionality you described for load balancing HTTP notification requests across multiple regions.To set this up using AGA, you can follow these steps:Create a listener on AGA for the HTTP port (port 80) and assign a static IP address to it.Create endpoints for each of the microservices running in different regions, and associate them with the listener.Configure endpoint groups for each region and associate the relevant endpoints with the corresponding endpoint groups.Create a traffic dial for each endpoint group to control the amount of traffic that is routed to each region.Update the DNS record for your FQDN to point to the static IP address assigned to the AGA listener.By following these steps, you can have one URL (FQDN) exposed that maps to one static IP address listening on port 80. When an HTTP notification request is received, AGA will route the request to the appropriate endpoint group based on the configured traffic dials. This ensures that the load is balanced across all microservices running in different regions.Note that AGA alone can provide the load balancing and traffic routing functionality you require, and no additional services are needed. However, you may need to ensure that your microservices are designed to handle traffic from different regions and that they are deployed in a highly available and fault-tolerant configuration to ensure maximum uptime and performance.CommentShareEXPERTsedat_salmananswered 2 months agoJaroslav-AWS 2 months agoAGA will not send traffic to all Regions as requirement states, it will route traffic to closest Region. There for this requires a closer look at the architecture.SharerePost-User-7795558 2 months agoHi sdtslmn, Thank you so much for your answer.  So in case if endpoint is down or or not reachable and could not handle the request. Does AGA provides failover mechanism? to send the request to another endpoint running in another region? Also,  I am reading everywhere that AGA always route the traffic to closest region. But Please confirm me if by using traffic dial i should be able to achieve load balancing. Thank you in AdvanceShareJaroslav-AWS 2 months agoEndpoints will have healthchecks associated with them, so if healthcheck fails traffic will not be sent to that endpoint. But again to emphasize, traffic will only be sent to a particular region and particular endpoint, it will not be mirrored to all Regions/Endpoints.Share"


Question: AWS Quicksight Q's why question help

"Hi,I am using AWS Quicksight Q to analyze a dataset. When a why question is employed with average aggregation function (e.g., "Why did value drop in 2020?"), the highlight of the result is wrong (e.g., %DIFF -75% drop when values are 61650.19 vs. 53150.14. Please see the attached image). If the same question is asked with SUM aggregation function, the highlight of result is correct! Could you please help me to address the issue? If there is an opened bug in AWS Quicksight Q, could you please send a link to track when it is resolved.Best,FollowComment"


Question: ACM certificate has resources in use arn:aws:elasticloadbalancing:us-east-1 even after deleting domains in API gateway.

"There are about 12 load balancing resources in use tied to my certificate. When I try to delete the certificate it gives me an error that it is in use.This stems from me removing a service from lambda & api gateway. I used the serverless framework. Now when I am trying to recreate the domain to tie to a lambda service in api gateway and select edge optimized endpoint it throws an error"One or more aliases specified for the distribution includes an incorrectly configured DNS record that points to another CloudFront distribution. You must update the DNS record to correct the problem. For more information, see https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/CNAMEs.html#alternate-domain-names-restrictions (Service: AmazonCloudFront; Status Code: 409; Error Code: CNAMEAlreadyExists; Request ID: cdfeacf9-7ced-47a2-bbcc-8e9d537776af; Proxy: null)"After doing some research it appears those load balance resources come from having maybe in the past used a regional endpoint instead of edge optimized.I am looking for a solution on how to delete these resources so that I can create a new edge optimized endpoint configuration in api gateway so I can host my lambda service on a human readable domain.FollowCommentAWS-User-1169997 a year agoPlease raise a support case with ACM team on this. They will help you resolve this issue.Share"

Answer: "0For the inability to delete the ACM record used with API Gateway, see this article:https://repost.aws/questions/QU63csgGNEQl2M--xCdy-oxw/cant-delete-certificate-because-there-are-dangling-load-balancer-resourcesFor the attempt to reuse the domain, most likely, it is not a load balancer that is causing this. When you setup an ELB, you use a CNAME or alias record to point the traffic to the ELB: https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-to-elb-load-balancer.html#routing-to-elb-load-balancer-configuringThe DNS record would be the problem, not the ELB itself. Check the DNS server setup for the domain in question or query any DNS server via a tool like dig or nslookup.dig your_domainAny response that resolves to an IP means the hostname is in use for something else. If it is CNAME'd or aliased to an ELB as you suspect, you would need to delete the CNAME/alias DNS record.If you remove a CNAME/alias but still get the error, another CloudFront distribution could be using the domain. To fix that, Disable the CloudFront distribution currently using the domain name. Follow this doc to Disable it: https://aws.amazon.com/premiumsupport/knowledge-center/resolve-cnamealreadyexists-error/If still not fixed, check if API Gateway has the domain setup as a custom domain. If yes, delete the custom domain. Look at this document on creating regional domains, delete the existing alias for your domain instead of creating a new one. https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-regional-api-custom-domain-create.htmlCommentShareGeary_Sanswered a year ago"


Question: Latest mqtt.Bridge (2.2.3) not compatible with latest clientdevices.Auth (3.3.0)

"I am attempting to deploy the latest versions of the following AWS components:"aws.greengrass.Nucleus": {      "componentVersion": "2.9.1"    },    "aws.greengrass.Cli": {      "componentVersion": "2.9.1"    },    "aws.greengrass.LocalDebugConsole": {      "componentVersion": "2.2.7"    },    "aws.greengrass.LogManager": {      "componentVersion": "2.3.0"    },    "aws.greengrass.clientdevices.mqtt.Moquette": {      "componentVersion": "2.3.0"    },    "aws.greengrass.clientdevices.mqtt.Bridge": {      "componentVersion": "2.2.3"    },    "aws.greengrass.clientdevices.Auth": {      "componentVersion": "2.3.0"    },    "aws.greengrass.TokenExchangeService": {      "componentVersion": "2.0.3"    },    "aws.greengrass.ShadowManager": {      "componentVersion": "2.2.3"    },    "aws.greengrass.telemetry.NucleusEmitter": {      "componentVersion": "1.0.5"    }And I am getting the following version exception:{componentName=aws.greengrass.clientdevices.Auth, versionRequirement={aws.greengrass.clientdevices.mqtt.Moquette=>=2.2.0 <2.4.0, thing/greengrassv2_greglaptop-253==2.3.0, aws.greengrass.clientdevices.mqtt.Bridge=>=2.2.0 <2.3.0, com.arthrex.s2p-GgLifecycle=>=2.0.3 <3.0.0}}2022-11-21T18:01:53.785Z [ERROR] (pool-2-thread-67) com.aws.greengrass.deployment.DeploymentService: Error occurred while processing deployment. {deploymentId=4d34f866-0174-4e1a-8842-aa614652690e, serviceName=DeploymentService, currentState=RUNNING}java.util.concurrent.ExecutionException: com.aws.greengrass.componentmanager.exceptions.NoAvailableComponentVersionException: No local or cloud component version satisfies the requirements Check whether the version constraints conflict and that the component exists in your AWS account with a version that matches the version constraints. If the version constraints conflict, revise deployments to resolve the conflict. Component aws.greengrass.clientdevices.Auth version constraints: aws.greengrass.clientdevices.mqtt.Moquette requires >=2.2.0 <2.4.0, thing/greengrassv2_greglaptop-253 requires =2.3.0, aws.greengrass.clientdevices.mqtt.Bridge requires >=2.2.0 <2.3.0aws.greengrass.clientdevices.mqtt.Bridge requires >=2.2.0 <2.3.0FollowComment"

Answer: "1Accepted AnswerHello, 2.2.3 isn't the latest version of bridge. Please use the latest version of bridge and it will work. The version is 2.2.4.You can always find the latest versions in the AWS console under "Public Components" within the Greengrass component page.Cheers,MichaelCommentShareEXPERTMichaelDombrowski-AWSanswered 6 months agoEXPERTAWS-User-Nitinreviewed 6 months agoEXPERTGreg_Breviewed 6 months agogstclair 6 months agoOK, the changelog in the docs probably needs to be updated: https://docs.aws.amazon.com/greengrass/v2/developerguide/mqtt-bridge-component.html#mqtt-bridge-component-changelogThank you!Share"


Question: sudo: amazon-linux-extras: command not found

I want to deploy wordpress website using RDS and ec2 and for that i'm taking help of aws hands on tutorial to deploy wordpress with RDS. one point came deploy wordpress and this command is given but when im suing its showing error command : sudo amazon-linux-extras install -y lamp-mariadb10.2-php7.2 php7.2error:sudo: amazon-linux-extras: command not foundFollowComment

Answer: 0Accepted AnswerCheck the Amazon image version of your EC2 instanceThat is because you must have picked amazon linux 2023 ami while launching the server the command "amazon-linux-extras" will work only in amazon-linux-2.CommentShareArsalananswered 12 days agoShree 12 days agook I got it but one more question if you don't mind why to use amazon-linux-2 rather then amazon linux 2023 and whats the difference  between them and how to know which ami to use.Share


Question: Glue PySpark saveAsTable vs write.parquet & crawl

Need advise on which approach is considered as best practice and correct while writing data to s3 and populating metadata to glue catalog.Is there any pros and cons?df.write.parquet("s3://path_to_my_database_and_table") and then run crawler on the same s3 path.df.write.mode("overwrite").saveAsTable("my_database.my_table")df.write.mode("overwrite").saveAsTable("my_database.my_table") and run crawler on already created tables.Would appreciate if you would share your experiance.Thank you.FollowComment

Answer: "0Hello Adas,As a data architect, I have worked on architecting data lakes for multiple customer and I would say the answer really depends. Both PySpark saveAsTable and writing to Parquet with write.parquet and crawling with a Glue Crawler are valid approaches for saving and cataloging data in Glue. The approach you choose depends on your specific requirements and the type of data you are working with.I see 1 and 2 as valid options based on your requirement. 3 does not seem necessary as saveAsTable takes care of adding partitions as well.I have been using df.write.parquet for large files (> 1GB) and for the smaller ones that need schema evolution.option 1: If you need to save your data as Parquet files, then writing the data with write.parquet and crawling it with a Glue Crawler is the way to go. This approach is best suited for larger datasets that need to be stored as files, and you can use the Glue Crawler to populate the Glue Data Catalog with metadata about your data.**option 2: **If you want to save the data as a managed table in the Glue Data Catalog, and you want to take advantage of the optimizations that come with a managed catalog, then using PySpark's saveAsTable method is a good option. This method creates a table in the Glue Data Catalog and automatically handles the partitioning, serialization, and compression of your data. Also prefer this method when there the data is a manageable size and the table schema is not expected to change.one variation to option 1:  I dont think there is a need to run crawlers after each and every run. Given the crawler runs are expensive on large files that accrue over time, I restrict the crawler execution only when I detect that the df.schema() is different from the schema in the Glue catalog. On the files that either dont need schema evolution or if the schema is the same, I add partitions by callingspark.sql(ALTER TABLE table_identifier ADD [IF NOT EXISTS]    ( partition_spec [ partition_spec ... ] ) ).If this helps, please upvote and accept answer to help everyone on this forum. Let me know if you need anything else.CommentShareAnanth Tirumanuranswered 4 months ago0I would always use option 2 if I can, meaning if I control the generation of the table data and control the schema changes.When you saveAsTable, it creates the table using the schema of the DataFrame, instead of the crawler having to figuring it out (this is more problematic with some formats).Also, when you write that way, the table is published after the data is generated, with a crawler you would have to coordinate the execution or if it runs regularly risk the table getting published while the job is still running.Once the job finishes successfully, you know the table is ready, otherwise you would need to monitor the crawler finishing before doing further steps.If you can do without a crawler, you have a simpler and leaner solution.The drawback is that currently if you have schema changes, you have to handle them yourself (compare the table with the DataFrame and do ALTER TABLE), in that case  a crawler can save you doing that work but if it doesn't do it correctly,  it's harder to detect and can cause a bigger disruption, compared to when you handle that in the code.I would avoid option 3, you have the downsides of both the previous options.CommentShareGonzalo Herrerosanswered 4 months ago"


Question: Elsatic Benstalk getting the environment variables from Parameter Store

"Hi all,this is my first post here after reading a lot of articles and the official AWS EB documentation.I spent a couple of days trying to find a solution, but I did not find it, for now :).I have an EB environment and due to the 4095Kb limitation (a shame), I have to get the environment variables from the Parameter Store . I've created two bash scripts, (thanks to a few articles I read), to get these parameters and "inject" them to the /opt/elasticbeanstalk/deployment/env file. These two scripts have the same code, and I added them to /hooks/postdeploy and to confighooks/postdeploy, everything seems to work fine, because the parameters from the Parameter Store are injected correctly to the env file, but... the variables are not accessible in my PHP code. The "funny" thing is that if I add the same variable to the Elastic Beanstalk configuration->software UI, the variable is duplicated in the env file and in the "cfn-metadata-cache.json", but if I remove it again from the EB UI ( configuration->software ) the variable disappears, voila! (it does not matter if it still exists in the parameter store) Is this an EB bug? I really would like to be able to add all my environment variables to the Parameter Store, any ideas?Thanks in advancenote: I added more details in this post I have created in StackOverflow https://stackoverflow.com/questions/74258162/elastic-benstalk-environment-variablesFollowComment"


Question: ALB - Nat Gateway

"Hello,Scenario: ALB public face + Private Instancesplease, could someone help me to understand why if i delete Nat Gateway Private Instances appear as Unhealthy and load balancing doesn´t work?Thank you!FollowComment"

Answer: "0Answered in VPC forumCommentShareIgnaanswered 4 years ago0Hi,AWS Support Engineer here. Looks like your query was answered on another thread. I'm linking it here so others can find it.https://forums.aws.amazon.com/message.jspa?messageID=919569Let us know if we can help you with anything else. Have a great day!CommentShareAWS-User-7252247answered 4 years ago"


Question: inserting data from MQTT into dynamodb

"I am trying to insert data from my mqtt topic into dynamodb, but the tutorial in the aws documentation does not refer to the new console. I can see the mqtt messages, and can extract the required message. I cannot however insert the data into a table. I have written rules, and given the correct roles the right permissions, but am getting nowhere. Please help!!FollowCommentiwasa EXPERTa year agoHi, @Mczakkphd.Do you want to insert the data into a table using the new console?I have written rules, and given the correct roles the right permissions, but am getting nowhere.Please tell me in detail what you set.Share"


Question: Configuring AWS FSx

"Still having issues with it Validating not sure why, the instance has full permissions so Im not sure where to go from here.FollowComment"

Answer: "1You can troubleshoot your network connectivity by installing the Amazon FSx Active Directory Validation tool which can be found in the link below.How to Validate AD prior to FSx Installation:REF: https://docs.aws.amazon.com/fsx/latest/WindowsGuide/validate-ad-config.htmlCommentShareDJFA_Cloudanswered 5 months agoAccelleraDMS 5 months agoGood morning! and thank you for replying, but we have already tried that and we get the following :# DNS root of ActiveDirectory domainDomainDNSRoot = 'dms.local'# IP v4 addresses of DNS serversDnsIpAddresses = @('192.168.1.100')# Subnet IDs for Amazon FSx file server(s)SubnetIds = @('subnet-00a2914a')Credential = $Credential}$Result = Test-FSxADConfiguration @FSxADValidationArgsName                           ValueDnsIpAddresses                 {192.168.1.100}DomainDNSRoot                  dms.localCredential                     System.Management.Automation.PSCredentialSubnetIds                      {subnet-00a2914a}Test-FSxADConfiguration : Cannot validate argument on parameter 'DomainDNSRoot'. The argument is null or empty.Provide an argument that is not null or empty, and then try the command again.At line:14 char:35$Result = Test-FSxADConfiguration @FSxADValidationArgs                              ~~~~~~~~~~~~~~~~~~~~CategoryInfo          : InvalidData: (:) [Test-FSxADConfiguration], ParameterBindingValidationExceptionFullyQualifiedErrorId : ParameterArgumentValidationError,Test-FSxADConfigurationThis seems to be the issue we are having.Share0When you say you've not had issues before, do you mean you have existing FSx instances working OK?  Are they in the same subnets and pointing to the same AD instance?CommentShareEXPERTskinsmananswered 5 months agoAccelleraDMS 5 months agoThank you for answering, and I mean in general. This is our first time using anything with FSx or AWS.Share"


Question: Setup alerts/notifications to Slack channel when a new Amazon Linux 2 AMI is available

How do I setup alerts/notifications when a new Amazon Linux 2 AMI is availableThere is a SSM parameter to query:aws ssm get-parameters --names /aws/service/ecs/optimized-ami/amazon-linux-2/recommendednotification for a new AMI to be sent to a slack channelI  would very much appreciate it if someone could give me the steps as I struggled online.Many thanks in advanceDelFollowComment

Answer: "1New AMI updates are published to the SNS topic arn:aws:sns:us-east-1:137112412989:amazon-linux-2022-ami-updatesFrom this article you can use the sample Lambda code (in the second example for Slack). Following the steps, under the last section, "Add an SNS topic trigger to your Lambda function", for step 4 use the above SNS topic instead.Steps cross-posted here:Example Python code snippet for SlackSlack Incoming Webhooks expect a JSON request with a message string corresponding to a "text" key. They also support message customization, such as adding a user name and icon, or overriding the webhook's default channel. For more information, see Sending messages using incoming webhooks on the Slack website.Note: In this example function code for Slack Incoming Webhooks, replace https://hooks.slack.com/services/xxxxxxx with the Incoming Webhook URL. Also replace #CHANNEL_NAME with the destination channel's name.#!/usr/bin/python3.6import urllib3import jsonhttp = urllib3.PoolManager()def lambda_handler(event, context):    url = "https://hooks.slack.com/services/xxxxxxx"    msg = {        "channel": "#CHANNEL_NAME",        "username": "WEBHOOK_USERNAME",        "text": event['Records'][0]['Sns']['Message'],        "icon_emoji": ""    }        encoded_msg = json.dumps(msg).encode('utf-8')    resp = http.request('POST',url, body=encoded_msg)    print({        "message": event['Records'][0]['Sns']['Message'],         "status_code": resp.status,         "response": resp.data    })Test the Lambda functionOn the Functions page of the Lambda console, choose your function.At the top right, choose Select a test event. Then, choose Configure test events.In the Configure test event dialog box, choose Create new test event.For Event template, choose Amazon SNS Topic Notification.For Event name, enter a name for the test event.Choose Create.Choose Test.Review the Execution result.If the test invocation succeeds with a 200 status code, then the Amazon SNS notification message is accepted by your webhook, which delivers it to the corresponding channel. If the invocation fails with a 4xx status code, then check the webhook URL and verify that the key-value pair is correct and accepted by your destination webhook.For more information about testing functions in the Lambda console, see Invoke the Lambda function.Add an SNS topic trigger to your Lambda functionAfter sending an SNS message to your webhook as a test in the Lambda console, subscribe your function to your SNS topic. To configure this from the Lambda console, add an SNS topic trigger by doing the following:On the Functions page of the Lambda console, choose your function.Under Designer, choose Add trigger. For more information, see Use the designer.Under Trigger configuration, choose Select a trigger, and then choose SNS.For SNS topic, choose the SNS topic that you created earlier arn:aws:sns:us-east-1:137112412989:amazon-linux-2022-ami-updatesSelect the Enable trigger check box.Choose Add.CommentShareAaron Doddanswered a year ago0You can set up notifications or trigger actions based on Parameter Store events using EventBridge and SNSSee https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-cwe.htmlYou can then integrate this with Slack using a Chatbot or WebhooksCommentShareEXPERTMatt-Banswered a year ago0Hi Aaron_DThanks very much for your time and for this valuable info.Lambda function test passed successfully and could send a message to a slack channel. However, I am having issues with SNS topic.From this link https://docs.aws.amazon.com/linux/al2022/ug/receive-update-notification.html we are here dealing with Lambda not email. I can add a subscription. However, I cannot directly add a topic by using this ARN:Arn:aws:sns:us-east-1:137112412989:amazon-linux-2022-ami-updatesBecause otherwise it will create an ARN specific to the topic.However I can only create a subscription by adding this ARN:Topic ARN: arn:aws:sns:us-east-1:137112412989:amazon-linux-2022-ami-updatesProtocol: AWS LambdaEndpoint:   Lambda ARN of the Lambda function I createdWhen adding a trigger to Lambda it does not allow me to add a topic even though I have full permissions. It does not show in the drop down list.Many thanksDelCommentShareAWS-User-6960343answered 10 months ago"


Question: RE :Lambda Memory exceeded

"Hai  ,Can we increase the memory size of lambda function to required size of memoryif yes how to increase that , if no how to clear memory issues for lambda function.Please suggest me your value able info ….Thanks & RegardsArun KumarFollowComment"

Answer: "1The memory usage for your function is determined per-invoke and can be viewed in Amazon CloudWatch, look for "Max Memory Used". You can alter/increase the memory assigned to your functions up to 10,240 MB. For more detail see: https://docs.aws.amazon.com/lambda/latest/operatorguide/computing-power.htmlCommentShareAlex_Kanswered a year agoArun a year agoif my function exceeds 10,240 MB. , can we increase .. or need to do any change activities on functionShareAlex_K a year ago10,240MB is currently the limit on a function and this can't currently be increased. How and whether the function can be changed to reduce its memory demands will depend on the function and workload. Alternatively you might consider a container based solution such as Amazon ECS Fargate which allows up to 30GB.Share"


Question: Instance EC2 Audio Input from Cloud Machine AWS to Remote PC.

"Hi, I am Eko.I need help with how the connection from Cloud Machine AWS to Remote PC [my PC]?I've researched the setup of Cloud Machine AWS. but only work on Output Audiostill not connected to the input Audio from Remote PC.I am very grateful for all the answers and responsesFollowComment"

Answer: "0Hello, Thank you for your question. I am not exactly sure which  service you are using and the method you are using for connecting. If I have misunderstood your question please provide additional clarification so that I can better assist you.If you are using RDP to connect to a Windows system you would need to:Enable remote audio settings over the rdp client of your local machine. In the rdp window:Click show options and go to Local resources tab.Click the button for audio settings and configure them accordingly.Another solution could be configuring instance as an rds session host.Here's the link to a third party doc with a similar issue and steps on how to configure instance as an rds session host: https://docs.microsoft.com/en-us/answers/questions/86750/remote-desktop-connection-not-pulling-in-audio-fro.html.CommentShareJosie_Kanswered 10 months agoSUPPORT ENGINEERAWS_SamMreviewed 10 months ago"


Question: ECS Capacity Provider Auto-Scaler Instance Selection

"Hello,I am working with AWS ECS capacity providers to scale out instances for jobs we run. Those jobs have a large variation in the amount of memory that is needed per ECS task. Those memory needs are set at the task and container level. We have a capacity provider that is connected to an EC2 auto scaling group (asg). The asg has the instance selection so that we specify instance attributes. Here we gave it a large range for memory and cpu, and it shows hundreds of possible instances.When we run a small job (1GB of memory) it scales up a m5.large and m6i.large instance and the job runs. This is great because our task runs but the instance it selected is much larger than our needs. We then let the asg scale back down to 0. We then run a large job (16GB) and it begins scaling up. But it starts the same instance types as before. The instance types have 8GB of memory when our task needs double that on a single instance.In the case of the small job I would have expected the capacity provider to scale up only 1 instance that was closer in size to the memory needs to the job (1GB). And for the larger job I would have expected the capacity provider to scale up only 1 instance that had more than 16GB of memory to accommodate the job (16GB).Questions:Is there a way to get capacity providers and autoscaling groups to be more responsive to the resource needs of the pending tasks?Are there any configs I might have wrong?Am I understanding something incorrectly? Are there any resources you would point me towards?Is there a better approach to accomplish what I want with ECS?Is the behavior I outlined actually to be expected?Thank youFollowComment"

Answer: "2Accepted AnswerI am going to assume in my answer that these tasks are in different definitions (i.e. you have a task definition for small jobs and another / several other one(s) for big jobs needing the 16GB of RAM).In which case, I would almost simply create a different ASG (used as different cluster capacity providers) and set the capacity provider "per service" (i.e. have one for tasks from 1 to 8GB of RAM, another one for 16GB of RAM and more, and if need be, one for in-between). Given the ASG is driven by ECS, you either only have to have 1 Launch Template per ASG or 1 Launch Template re-used with overrides (3 different ones is probably best).Now I get that, given you had the placement strategy, that this seems overkill, but certainly it would prevent ECS to deploy small instances in a race condition (i.e, get an instance type for small tasks first) and instead clearly isolate the ASG for the bigger jobs.This also could help future proofing configuration: if you needed bigger disks for the bigger jobs, or GPUs, then you only have the one LT/ASG to change (and reflect into the capacity provider) instead of changing it for all of them or paying GPU instances for tasks that do not need these.The good thing of capacity providers is that you can define these both into the cluster and "override" at the service level, so you could have 4 capacity providers in your cluster, default to one of them (base/weight assignment) and at the same time have some services specifically use their own configuration.Hope this helps :)For example, using x-ecs you can do the following.services:  small-jobs-service:      deploy:        resources:          limits:            memory: 2GB          reservations:            memory: 1GB    x-ecs:      CapacityProviderStrategy:        - CapacityProvider: SMALL-ASG          Base: 1          Weight: 2        - CapacityProvider: MEDIUM-ASG          Base: 4          Weight: 8  medium-jobs-service: # No override, use cluster defaults.      deploy:        resources:          reservations:            memory: 6GB  big-jobs-service:      deploy:        resources:          reservations:            memory: 12GB    x-ecs:      CapacityProviderStrategy:        - CapacityProvider: BIG-ASG          Base: 1          Weight: 2CommentShareJohnPrestonanswered a year agoShahad_C a year ago+1 to this suggestion.  The capacity provider doesn't tell the ASG anything about the instance requirements, it just increases the CapacityProviderReservation metric so that the ASG scales the correct amount of total capacity.  This means there's no way for ECS to influence which instances get picked (and in reality, the ASG doesn't actually control this either, it passes along the settings of the MixedInstancePolicy and EC2 picks the instance types)Shareacrookes-fe a year agoThis is very helpful. I think I was running with the assumption that the resources needs were being propagated from ECS tasks to the asg. This suggestions seems like a good way to achieve what I am looking for. Thank you!Share"


Question: private VPC connectivity to social medias

"Hi team,we are working in accelerator account AWS ASEA, that has no outbound connectivitywe can not connect to internet to download anything (libraries, ....)the VPC is private only.our task is to fetch data from twitter  and dotwitter data processingsentiment Analysis..we would like to know if there is a way to achieve this when our account doesn't have outbound(internet) connectivity?could you please advice best practices/architecture to do this scenarios (twitter data processing, sentiment Analysis) ?Thank youFollowComment"

Answer: "0If your AWS account has no outbound connectivity to the internet, one way to fetch data from external sources like Twitter and perform data processing is by setting up a proxy server in a different AWS account or VPC with internet access.Deploy a proxy server, like Squid or Nginx, in another AWS account or VPC that has internet access. Configure the security groups and network ACLs to allow inbound traffic from your private VPC and outbound traffic to the internet.Establish a VPC peering connection between your private VPC and the VPC where the proxy server is running.https://docs.aws.amazon.com/vpc/latest/peering/what-is-vpc-peering.htmlUpdate your applications running in the private VPC to use the proxy server for outbound traffic.CommentShareEXPERTsedat_salmananswered 2 months ago"


Question: CloudFormation API Gateway CORS issue - Please help

"I'm trying to use CloudFormation to create an API Gateway but I'm having CORS error.Error on the front-end:POST https://<>.execute-api.us-east-1.amazonaws.com/prod/<> 500new:1 Access to XMLHttpRequest at '<>' from origin 'http://localhost:3000' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.The API is created without any issue and I even double check every single page on the console against the working API and find no differences in their Method Request, Integration Request, Integration Response and Method Response for all the methods (including the OPTIONS).If I use the Console to Enable CORS for my resources, the API still doesn't work.If I remove the resources created by the template and create them manually using the Console in the same API gateway then my code works as expected. I've tested with the localhost, front-end code in S3 bucket and PostMan, so I can verify that my front-end code, lambda functions and database are working correctly.I understand that people have had this issue before but I haven't been able to find any answers that solve my issue.Here's my template:{    "AWSTemplateFormatVersion": "2010-09-09",    "Description": "This template creates API Gateway and Lambda function. Version: 1.0.4",    "Parameters" : {        "ApiGatewayName": {            "Description": "Name of the Cognito user pool as a parameter passed into this template.",            "Type": "String"        },        "CognitoUserPoolArn": {            "Description": "Cognito User Pool ARN passed into this template from root stack.",            "Type": "String"        },        "DynamoDBStack" : {            "Description": "Name of the stack that created the DynamoDB table for this app, passed as a parameter passed into this template.",            "Type": "String"        }    },    "Resources": {        "BaseLambdaExecutionPolicy": {            "Type": "AWS::IAM::ManagedPolicy",            "Properties": {                "Description": "Base permissions needed by all lambda functions.",                "PolicyDocument": {                    "Version": "2012-10-17",                    "Statement": [                        {                            "Effect": "Allow",                            "Action": [                                "logs:CreateLogGroup",                                "logs:CreateLogStream",                                "logs:PutLogEvents"                            ],                            "Resource": "*"                        }                    ]                }            }        },        "LambdaRole": {            "Type": "AWS::IAM::Role",            "Properties": {                "AssumeRolePolicyDocument": {                    "Version": "2012-10-17",                    "Statement": [                        {                            "Effect": "Allow",                            "Principal": {                                "Service": "lambda.amazonaws.com"                            },                            "Action": "sts:AssumeRole"                        }                    ]                },                "ManagedPolicyArns": [                    {                        "Ref": "BaseLambdaExecutionPolicy"                    }                ],                "Policies": [                    {                        "PolicyName": {                            "Fn::Join": ["-", [                                {"Ref": "ApiGatewayName"},                                 "lambda-policy"                            ]]                        },                        "PolicyDocument": {                            "Version": "2012-10-17",                            "Statement": [                                {                                    "Sid": "",                                    "Action": [                                        "dynamodb:DeleteItem",                                        "dynamodb:GetItem",                                        "dynamodb:PutItem",                                        "dynamodb:Query",                                        "dynamodb:Scan",                                        "dynamodb:UpdateItem"                                    ],                                    "Effect": "Allow",                                    "Resource": [                                        { "Fn::ImportValue": {"Fn::Sub": "${DynamoDBStack}-DDBTableARN"}}                                    ]                                }                            ]                        }                    }                ]            }        },        "LambdaFunction": {            "Type": "AWS::Lambda::Function",            "Properties": {                "Role": {                    "Fn::GetAtt": [                        "LambdaRole",                        "Arn"                    ]                },                "Handler": "index.handler",                "Runtime": "nodejs8.10",                "Environment": {                    "Variables": {                        "TABLE_NAME": {                            "Fn::ImportValue": {"Fn::Sub": "${DynamoDBStack}-DDBTableName"}                        }                    }                },                "Code": {                    "ZipFile": "exports.handler = function(event, context) {}\n"                }            }        },        "ApiGateway": {            "Type": "AWS::ApiGateway::RestApi",            "Properties": {                "Name": {                    "Ref": "ApiGatewayName"                },                "Description": "A description",                "FailOnWarnings": true            }        },        "ApiGatewayRole": {            "Type": "AWS::IAM::Role",            "Properties": {                "AssumeRolePolicyDocument": {                    "Version": "2012-10-17",                    "Statement": [                        {                            "Effect": "Allow",                            "Principal": {                                "Service": "apigateway.amazonaws.com"                            },                            "Action": "sts:AssumeRole"                        }                    ]                },                "Policies": [                    {                        "PolicyName": {                            "Fn::Join": ["-", [                                {"Ref": "ApiGatewayName"},                                 "api-gateway-policy"                            ]]                        },                        "PolicyDocument": {                            "Version": "2012-10-17",                            "Statement": [                                {                                    "Effect": "Allow",                                    "Action": [                                        "lambda:InvokeFunction"                                    ],                                    "Resource": [                                        {                                            "Fn::GetAtt": [                                                "LambdaFunction",                                                "Arn"                                            ]                                        }                                    ]                                }                            ]                        }                    }                ]            }        },        "GatewayAuthorizer": {            "Type" : "AWS::ApiGateway::Authorizer",            "Properties" : {                "AuthorizerCredentials" : {                    "Fn::GetAtt": ["ApiGatewayRole", "Arn"]                },                "IdentitySource" : "method.request.header.Authorization",                "Name" : {                    "Fn::Sub": "${ApiGatewayName}-authorizer"                },                "ProviderARNs" : [                    {                        "Ref": "CognitoUserPoolArn"                    }                ],                "RestApiId" : {                    "Ref": "ApiGateway"                },                "Type" : "COGNITO_USER_POOLS"            }        },        "resourceNotes": {            "Type" : "AWS::ApiGateway::Resource",            "Properties" : {                "ParentId" : {                    "Fn::GetAtt": ["ApiGateway", "RootResourceId"]                },                "PathPart" : "notes",                "RestApiId" : {"Ref": "ApiGateway"}            }        },        "resourceNoteId": {            "Type" : "AWS::ApiGateway::Resource",            "Properties" : {                "ParentId" : {                    "Ref": "resourceNotes"                },                "PathPart" : "{noteid}",                "RestApiId" : {"Ref": "ApiGateway"}            }        },        "methodNotesANY": {            "Type": "AWS::ApiGateway::Method",            "Properties": {                "AuthorizationType": "COGNITO_USER_POOLS",                "AuthorizerId": {"Ref": "GatewayAuthorizer"},                "RestApiId": {"Ref": "ApiGateway"},                "ResourceId": {                    "Ref": "resourceNotes"                },                "HttpMethod": "ANY",                "Integration": {                    "Type": "AWS_PROXY",                    "IntegrationHttpMethod": "ANY",                    "Uri": {"Fn::Sub": "arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${LambdaFunction.Arn}/invocations"},                    "IntegrationResponses": [{                        "StatusCode": "200"                    }]                },                "RequestParameters": {                    "method.request.header.Access-Control-Allow-Origin": "'*'"                },                "MethodResponses": [{                    "ResponseModels": {                    "application/json": "Empty"                    },                    "StatusCode": "200"                }]            }        },        "methodNotesOPTIONS": {            "Description": "Enable CORS for resource.",            "Type": "AWS::ApiGateway::Method",            "Properties": {                "AuthorizationType": "NONE",                "RestApiId": {"Ref": "ApiGateway"},                "ResourceId": {                    "Ref": "resourceNotes"                },                "HttpMethod": "OPTIONS",                "Integration": {                    "Type": "MOCK",                    "IntegrationResponses": [                        {                            "ResponseParameters": {                                "method.response.header.Access-Control-Allow-Headers": "'Content-Type,X-Amz-Date,Authorization,X-Api-Key,X-Amz-Security-Token'",                                "method.response.header.Access-Control-Allow-Methods": "'DELETE,GET,HEAD,OPTIONS,PATCH,POST,PUT'",                                "method.response.header.Access-Control-Allow-Origin": "'*'"                            },                            "ResponseTemplates": {                                "application/json": ""                            },                            "StatusCode": "200"                        }                    ],                    "PassthroughBehavior": "WHEN_NO_MATCH",                    "RequestTemplates": {                        "application/json": "{\"statusCode\": 200}"                    }                },                "MethodResponses": [                    {                        "ResponseModels": {                            "application/json": "Empty"                        },                        "ResponseParameters": {                            "method.response.header.Access-Control-Allow-Headers": false,                            "method.response.header.Access-Control-Allow-Methods": false,                            "method.response.header.Access-Control-Allow-Origin": false                        },                        "StatusCode": "200"                    }                ]            }        },        "methodNoteIdANY": {            "Type": "AWS::ApiGateway::Method",            "Properties": {                "AuthorizationType": "COGNITO_USER_POOLS",                "AuthorizerId": {"Ref": "GatewayAuthorizer"},                "RestApiId": {"Ref": "ApiGateway"},                "ResourceId": {                    "Ref": "resourceNoteId"                },                "HttpMethod": "ANY",                "Integration": {                    "Type": "AWS_PROXY",                    "IntegrationHttpMethod": "ANY",                    "Uri": {"Fn::Sub": "arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${LambdaFunction.Arn}/invocations"},                    "IntegrationResponses": [{                        "StatusCode": "200"                    }]                },                "RequestParameters": {                    "method.request.header.Access-Control-Allow-Origin": "'*'"                },                "MethodResponses": [{                    "ResponseModels": {                    "application/json": "Empty"                    },                    "StatusCode": "200"                }]            }        },        "methodNoteIdOPTIONS": {            "Description": "Enable CORS for resource.",            "Type": "AWS::ApiGateway::Method",            "Properties": {                "AuthorizationType": "NONE",                "RestApiId": {"Ref": "ApiGateway"},                "ResourceId": {                    "Ref": "resourceNoteId"                },                "HttpMethod": "OPTIONS",                "Integration": {                    "Type": "MOCK",                    "IntegrationResponses": [                        {                            "ResponseParameters": {                                "method.response.header.Access-Control-Allow-Headers": "'Content-Type,X-Amz-Date,Authorization,X-Api-Key,X-Amz-Security-Token'",                                "method.response.header.Access-Control-Allow-Methods": "'DELETE,GET,HEAD,OPTIONS,PATCH,POST,PUT'",                                "method.response.header.Access-Control-Allow-Origin": "'*'"                            },                            "ResponseTemplates": {                                "application/json": ""                            },                            "StatusCode": "200"                        }                    ],                    "PassthroughBehavior": "WHEN_NO_MATCH",                    "RequestTemplates": {                        "application/json": "{\"statusCode\": 200}"                    }                },                "MethodResponses": [                    {                        "ResponseModels": {                            "application/json": "Empty"                        },                        "ResponseParameters": {                            "method.response.header.Access-Control-Allow-Headers": false,                            "method.response.header.Access-Control-Allow-Methods": false,                            "method.response.header.Access-Control-Allow-Origin": false                        },                        "StatusCode": "200"                    }                ]            }        },        "ApiGatewayDeployment": {            "Type": "AWS::ApiGateway::Deployment",            "DependsOn": ["methodNotesANY", "methodNoteIdANY"],            "Properties": {                "RestApiId": {                    "Ref": "ApiGateway"                },                "StageName": "prod"            }        }    },    "Outputs": {        "ApiGatewayProdInvokeURL": {            "Value": {                "Fn::Sub": "https://${ApiGateway}.execute-api.${AWS::Region}.amazonaws.com/prod"            },            "Description": "API Gateway prod Invoke URL."        },        "ApiGatewayId": {            "Value": {"Ref": "ApiGateway"}        }    }}Please note that the "method.response.header.Access-Control-Allow-Origin": false actually creates the API with the same settings as the working one.I also use the code in the correct answer here: https://stackoverflow.com/questions/40292888/enable-cors-for-api-gateway-in-cloudformation-template .Yes, my OPTIONS request has the "Access-Control-Allow-Origin" header.I'm sorry for the long post but I really need help with this. I've looked everywhere and I don't have much luck (or love) on StackOverflow.Edited by: awsuser29 on Jun 24, 2019 1:25 PMEdited by: awsuser29 on Jun 24, 2019 1:25 PMEdited by: awsuser29 on Jun 26, 2019 8:22 AMFollowComment"

Answer: 0I've figured out the issue. You can read my answer here:https://stackoverflow.com/questions/56688796/cloudformation-api-gateway-cors-issue-access-to-xmlhttprequest-blocked/56811229#56811229CommentShareawsuser29answered 4 years ago


Question: integrate external shortcode with pinpoint infrastructure

"I already have my short code in Mexico, how can I integrate with the Amazon Pinpoint infrastructure?FollowComment"


Question: How to ensure replica is in sync between AWS RDS PSQL primary DB and Aurora RDS PSQL replica cluster?

I am migrating RDS PSQL 11.13 to Aurora PSQL 11.13 provisioned DB instance as a part of that I have created read replica of Auroa PSQL but I couldn't confirm replica status. Replica lag metric in Aurora doesn't show any data?  where do I check to confirm sync is up-to-date ?FollowComment

Answer: "0Please contact AWS Support in case you are not seeing replication lag in your CloudWatch metric. You can also use the query documented here to check replication lag."Check the amount of ReplicaLag between source DB instance and replicas. Replica lag is the amount of time, in milliseconds, that a read replica lags behind its source DB instance. This metric reports the result of the following query."SELECT extract(epoch from now() - pg_last_xact_replay_timestamp()) AS replica_lagCommentShareShivam_Ganswered a year ago"


Question: Stream data in real time from aws to other devices.

I am sending 100Samples/sec to IOT Core. I Want this data to be retrieved by a user in real time. What should i do?FollowCommentMassimilianoAWS EXPERT2 months agoAre 100 samples/sec coming from a single client or from multiple clients?Share

Answer: "1The closest to real time would be to have the user subscribe to the topic and process the received messages. This will induce the minimum delay. The delay will be measured in 100s of milliseconds.Note that 100 TPS is the maximum limit of messages being sent, and only for QoS 0. If the inbound message flow can exceed that (say from 2 or more devices), using another AWS service such as Kinesis Data Streams or Timestream+Grafana may be a better solution, but will increase the latency by 100s to 1,000s of milliseconds.CommentShareGavin_Aanswered 2 months ago"


Question: How to register a domain name with the least possible cost and without having EC2?

"I am new to AWS , I want to create my initial website and register a domain name to it ?How can I do that ?I am following this page but it said I need to associate it to running EC2 or network IPhttps://aws.amazon.com/getting-started/hands-on/get-a-domain/FollowComment"

Answer: 2Accepted AnswerHelloIf you would like to register a Domain you can use AWS route 53 to register a domain from the link https://us-east-1.console.aws.amazon.com/route53/home#DomainRegistration:Once your Domain is registered it will create a hosted zone automatically in your Route 53 console.If you do not want to host your application without Ec2 you can use S3 **Static Website hosting  **Follow the instructions here https://docs.aws.amazon.com/AmazonS3/latest/userguide/website-hosting-custom-domain-walkthrough.htmlPlease let me know if you have any questionsThank YouGKCommentShareGKanswered a year ago


Question: Issue regarding video not showing in Live Streaming

"We are trying to use your services AWS Elemental MediaLive, AWS Elemental Mediapackage and AWS CloudFront for live streaming through OBS Studio.After creating all the required configuration we are unable to watch the video content using Dash Player but can only listen audio in the player.Also, when giving origin endpoint in Mediapackage as Apple HLS, there is a error of " Cannot load https://abc.com/index.m3u8 HTTP  response code:404 | A network error occurred: manifestLoadError"Please brief us about what is causing this error?We have referred this document mentioned below-https://d2908q01vomqb2.cloudfront.net/fb644351560d8296fe6da332236b1f8d61b2828a/2020/04/14/Connecting-OBS-Studio-to-AWS-Media-Services-in-the-Cloud-v2.pdfThanks!FollowComment"

Answer: "0When creating a live streaming workflow with MediaLive, MediaPackage and CloudFront several configurations need to be considered. MediaLive will push HLS to MediaPackage.If both HLS and DASH outputs are required, then separate HLS and DASH endpoints need to be created on MediaPackage. If selecting auto gen of a CloudFront distribution by MediaPackage, there should be separate Origin Behaviors created in CloudFront for .m3u8 (HLS) streams and .mpd (DASH) streams. If your CloudFront distribution does not include both, they need to be added.Also, the MediaPackage endpoints (HLS & DASH) can be tested directly, by passing CloudFront. You will see in MediaPackage both the endpoint and the Cloudfront URL.NOTE: Reading directly from MediaPackage should not be provided to stream viewers. They must go through CloudFront.If you still have problems after the above recommendations, please submit a Support ticket for MediaPackage.Also, unless you are using a DNS to map 'abc.com' to the CloudFront URL, then a generic address like that wont work. With CloudFront distributions, the address for the stream would be something like <cf_distribution_url>/<name>.m3u8, where <cf_distribution_url> includes the CF distribution and the path in the origin, which would be MediaPackage for this.CommentShareMike-MEanswered 6 months ago0Hello,We have already tried using Cloudfront URL for DASH Packaging Type but when browsing the URL it is getting downloaded. And incase of Apple HLS Cloudfront URL,  it is showing error 404. Also, when using Mediapackage endpoint for DASH player only audio is getting played not video. And for Apple HLS player, it is throwing an error "Cannot load https://abc.com/index.m3u8 HTTP response code:404 | A network error occurred: manifestLoadError" Please brief me what is causing this error.Is there any compulsory requirements for playing a video in MediaLive Output Group?What needs to be added in manifests file/configuration?Do we have mention the base URL path for video content in Medialive Output Group or it will work if by default configurations were selected?CommentSharerePost-User-1651511answered 6 months ago0Nearly the same error is happening with me. mediapackage endpoint is not loading. The interesting point is that i am updating the medialive channel without any change and everything is working well. but this works when updated only on console. When i update it on the Node api is not working (Manifest load error).CommentShareApplranswered 4 months ago"


Question: AWS Personalize SDK - CreateSolutionVersion command: Callback hook for when status changes to 'Active'

"Is there a way that I can provide a callback function that executes when a solution version changes state to 'active' ?Currently, my system successfully creates a new solution version, but I want to automatically do additional processing elsewhere when the solution version is active.I have looked over the following documentation articles:https://docs.aws.amazon.com/personalize/latest/dg/creating-a-solution-version.htmlhttps://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Personalize.html#createSolutionVersion-propertyThe only way that I can currently think about solving this is using setTimeout (for let's say 15 minutes), calling DescribeSolutionVersion, if status is active -> doAdditionalProcessing() else -> setTimeout for another 15 minutes.Is there a better way of going about this? I am new to AWS I apologize if this is trivialFollowComment"

Answer: "1Accepted AnswerCurrently there is not a built-in way to register a callback with asynchronous Personalize APIs such as CreateSolutionVersion. The typical integration pattern to detect when a solution version becomes "active" is to poll the DescribeSolutionVersion API, as you mentioned. Wrapping this processing in AWS Step Functions is a common way of encapsulating this functionality.The Maintaining Personalized Experiences with Machine Learning solution provides the ability to trigger and schedule workflows around Personalize processes such as importing data, creating solutions versions, updating campaigns, running batch jobs, etc. It also fires events to Amazon EventBridge when asynchronous events complete (i.e. become "active") which you can subscribe to to trigger your own workflows.CommentShareJames_Janswered 10 months ago"


Question: Sync between publish and subscribe to iot topic in AWS Lambda

"Hi folks, Hope you are well and safe and also hope that this questions don't gonna be an already asked question.I'm here to ask a brief explanation on how can I write in AWS Lambda function a sync mechanism.I mean: I'm writing a .py script that, when is triggered, publish a message to a topic.When the IoT things receive the message on published on this topic, react publishingresponse on another topic.Well, at this point, I want to receive the published message from IoT thing in samelambda function that was firstly triggered from outside.Is it possible or I need to use AWS IoT rules in order to trigger a different AWS Lambda function?Best regards.FollowComment"

Answer: "1If by "same lambda function" you mean the same invokation of a function, then no.  But you could trigger a different invokation of the same function for this different purpose.  Usually though you would trigger a different function for better code structure and least-privilege security configuration.  Either way it sounds like you might want to share state between invokations - DynamoDB is a common way to do it.CommentShareEXPERTskinsmananswered a year agom_piffari a year agoThanks @skinsman.Yes, trigger different invokation of the same function seems the solution. The next problem, in this approach, could be: how can I hold the context that invoke firstly the Lambda function in order to give a response to it when I receive the second trigger?I mean, how can I keep the http connection alive, and reuse after second trigger?Share"


Question: Update Existing Cognito User Pool Group via CDK

"Hi,I have a Cognito User Pool with a user group. This simple configuration deploys fine the first time. Any subsequent attempts to run cdk deploy with or without changes errors out with group already exists in stack error. I'm using Java for my CDKHere's the code I'm using to create the user poll + group  public void generateStack() {    // Create User Pool    UserPool userPool = Builder.create(scope, "some-id")        .accountRecovery(AccountRecovery.EMAIL_ONLY)        .autoVerify(AutoVerifiedAttrs.builder()            .email(true)            .phone(false)            .build())        .email(UserPoolEmail.withCognito(REPLY_TO_EMAIL))        .enableSmsRole(false)        .mfa(Mfa.OFF)        .passwordPolicy(PasswordPolicy.builder()            .minLength(8)            .requireDigits(true)            .requireLowercase(true)            .requireUppercase(true)            .tempPasswordValidity(Duration.days(TEMP_PWD_VALIDITY_IN_DAYS))            .build())        .removalPolicy(RemovalPolicy.RETAIN)        .selfSignUpEnabled(true)        .signInAliases(SignInAliases.builder()            .email(true)            .phone(false)            .preferredUsername(false)            .username(false)            .build())        .signInCaseSensitive(false)        .standardAttributes(StandardAttributes.builder()            .email(StandardAttribute.builder()                .mutable(false)                .required(true)                .build())            .givenName(StandardAttribute.builder()                .mutable(true)                .required(true)                .build())            .familyName(StandardAttribute.builder()                .mutable(true)                .required(true)                .build())            .phoneNumber(StandardAttribute.builder()                .mutable(true)                .required(true)                .build())            .build())        .userPoolName("some-pool-name")        .build();    Role adminRole = Role.Builder.create(scope, "role-id")        .roleName("admin-role")        .assumedBy(new AccountRootPrincipal())        .description("This is a full access admin role for Ops Team")        .maxSessionDuration(Duration.hours(12))        .managedPolicies(List.of(ManagedPolicy.fromAwsManagedPolicyName("AdministratorAccess")))        .build();    // Add admin group    new CfnUserPoolGroup(scope, "admin-users", CfnUserPoolGroupProps.builder()        .description("Admin group for the  Ops team")        .groupName("admin-ops")        .precedence(0)        .roleArn(adminRole.getRoleArn())        .userPoolId(userPool.getUserPoolId())        .build());  }Is there a way to stop CDK from trying to create a group if it already exists in the stack?ThanksKunalFollowComment"


Question: "Greengrass, deploy component to specific directory"

"Hi all,In my case, our device has limited storage. I understand that if deploy component to device the artifacts and recipes are deploy to packages directory.component directory: /greengrass/v2/packagesIn our device, i want to configure partitions one for the greengrass & CLI install and the other for the components that we deployment.Is it possible to deploy component to specific directory?Best Regards,FollowComment"

Answer: "1Hello,Thank you for posting the question. Unfortunately Greengrass doesn't offer a way to customize the component locations as you specified. However you can set the Greengrass root directory to be on a different partition with Droot installer argument https://docs.aws.amazon.com/greengrass/v2/developerguide/configure-installer.htmlCan you tell us a little more about why you would like to deploy Greengrass Nucleus & CLI on one partition and other components on a different partition?Thanks,Navya.CommentShareNavyaKuchibhotla-AWSanswered 10 months ago"


Question: IAM role needed for EventBridge scheduled reboot of EC2 instances

Which IAM role(s) are needed for rebooting EC2 instances via EventBridge?FollowComment

Answer: "1Please use this linkhttps://docs.aws.amazon.com/eventbridge/latest/userguide/eb-iam.htmlPlease create a role with the following json!{    "Version": "2012-10-17",    "Statement": [        {            "Sid": "CloudWatchEventsBuiltInTargetExecutionAccess",            "Effect": "Allow",            "Action": [                "ec2:RebootInstances",                "ec2:StopInstances",                "ec2:TerminateInstances"            ],            "Resource": [                "arn:aws:ec2:ap-south-1:AWS_ACCOUNT_ID:instance/YOUR_INSTANCE_ID"            ]        }    ]}Please use this as a trust relationship{"Version": "2012-10-17","Statement": [{"Effect": "Allow","Principal": {"Service": "events.amazonaws.com"},"Action": "sts:AssumeRole"}]}CommentShareGovind Kumaranswered a month ago"


Question: "Trailing Zeros for decimal (12,2) on redshift query editor."

"I could not find any official AWS documentation that specifically addresses the display of trailing zeros for decimal values in the Redshift Query Editor. However, based on my testing and experience, it seems that the Query Editor does not display trailing zeros for decimal values by default.My reporting layer requires price based on columns with 2 point precision. However, the trailing zeros aren't available. Is there a way to save them as e.g. 21.00, 10.20?FollowComment"

Answer: "3Start with TO_CHAR function to formathttps://docs.aws.amazon.com/redshift/latest/dg/r_TO_CHAR.htmlandhttps://docs.aws.amazon.com/redshift/latest/dg/r_Numeric_formating.htmland the following example can help youSELECT TO_CHAR(your_decimal_column, 'FM9999999990.00') AS formatted_decimalFROM your_table;CommentShareEXPERTsedat_salmananswered a month agoHamza Ehsan Khan a month agoHi @sdtslmn thanks so much for responding!We need the data to be in decimal for calculations. Is that not possible?Share"


Question: "ERROR when transferring calls through Quick Connections, in Amazon Connect."

"I've been trying to figure out how my AWS Connect agents can transfer calls to each other via the quick connect feature in connect. Everything starts fine but after a few seconds the agent interface hangs and goes blank leaving the agent without the ability to control his CCP and leaving the customer on hold until he decides to hang up himself.We tried to see if it turned out to be an error in the transfer flow we have, but found nothing out of the ordinary.Other methods have been tried but none with good resultsFollowComment"

Answer: "1What do you see in Cloudwatch? How do you have your QCs configured and your transfer to agent flow?davidCommentSharedmaciasanswered 8 months agoFelix 8 months agoCloudWatch creates log when enabling logging on outBound, and it shows perfectly. But the transfer to agent contact flow dont generate any log.Share"


Question: Does Amazon CloudFront support HTTP 1.0 requests without the Host header?

"CloudFront fails for an HTTP 1.0 request without the Host header (optional for HTTP 1.0):POST / HTTP/1.0Content-Type: application/ocsp-requestContent-Length: 75HTTP/1.1 400 Bad RequestServer: CloudFrontDate: Wed, 16 Mar 2022 21:22:41 GMTContent-Type: text/htmlContent-Length: 915Connection: closeX-Cache: Error from cloudfrontVia: 1.1 edd67566d372ed79fbaa7f9cc3d7815e.cloudfront.net (CloudFront)X-Amz-Cf-Pop: ICN51-C1X-Amz-Cf-Id: KOUV_x5KqMc2f1CsGn1oXTrgaLFSSJn76dycoN97BqIdmgRYjySN3g==<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1"><TITLE>ERROR: The request could not be satisfied</TITLE>
400 ERROR

The request could not be satisfied.

Bad request.We can't connect to the server for this app or website at this time. There might be too much traffic or a configuration error. Try again later, or contact the app or website owner.
If you provide content to customers through CloudFront, you can find steps to troubleshoot and help prevent this error by reviewing the CloudFront documentation.

Generated by cloudfront (CloudFront)Request ID: KOUV_x5KqMc2f1CsGn1oXTrgaLFSSJn76dycoN97BqIdmgRYjySN3g==
<ADDRESS></ADDRESS>Now, I'm aware that a CDN edge server using shared public IPs (the default when using CloudFront) wouldn't be capable of identifying the correct distribution if it isn't provided with the Host header, so I enabled dedicated IP address for my distribution (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cnames-https-dedicated-ip-or-sni.html#cnames-https-dedicated-ip) hoping that it could help, but CloudFront still fails.Now, considering that (at least technically) using dedicated IP addresses would make CloudFront capable of identifying the correct distribution and send the requests to the expected origin even when the Host header is missing, is this something supported at all?.PS: I don’t even see the previous request through Standard logging, so I guess it is lost even before reaching my distribution.Same question asked in https://stackoverflow.com/questions/71505681/does-amazon-cloudfront-support-http-1-0-requests-without-the-host-header with a bounty.FollowComment"

Answer: "1It would be good to know why you need to not use the Host header and why using HTTP 1.0 is required. While the specification does say that the header is optional that doesn't mean it isn't required in particular situations.Here, as you point out, because CloudFront is multi-tentanted the Host header is required so that CloudFront can route the request appropriately by finding the correct distribution. The same behaviour exists on a decidated IP because using one is specifically to allow for browsers that don't support SNI (which has been around since 2010 at least).CommentShareEXPERTBrettski-AWSanswered a year agohablutzel1 a year agoSome OpenSSL versions (e.g. the current one for Amazon Linux 2) send OCSP HTTP POST requests using openssl ocsp with HTTP 1.0 and without the Host header by default. Now, I know that for multi-tenant CDN edge servers it wouldn't work, but for dedicated IP CDN edge servers it is technically possible and other CDN providers like Akamai or Edgecast support it.Share0Not sure Cloudfront support without proper incoming Host Header. Maybe try if lambda on edge / CloudFront function can add a Host header if possible?CommentSharewmzanswered a year ago"


Question: Public access downloading from bucket

"Hello,I have given public access to everyone in an S3 bucket (it's a temporal thing and the only object is a simple file). However, and when I try to download the file (using an external account for testing) with:$ aws s3 cp --no-sign-request s3://BUCKET/OBJECT /home/ubuntuI'm still getting the error:fatal error: An error occurred (403) when calling the HeadObject operation: ForbiddenIn the permissions tab (for the bucket), it has Access: Public, Block all public access: Off, ACL Everyone (public access): List (Objects) and Read (Bucket ACL). I can list the bucket content but not make a copy. What else do I need to do to enable downloading the objects? Thanks.FollowComment"

Answer: "1Accepted AnswerHave you checked the ACL on the object itself? This will also need to be set to allow public access to anonymously download the file.You can do this within the console using the Make Public option in the Object actions menu, or through the CLI like:aws s3api put-object-acl --bucket BUCKET --key OBJECT --acl public-readMore info here: https://aws.amazon.com/premiumsupport/knowledge-center/read-access-objects-s3-bucket/CommentShareEdanswered a year ago"


Question: Can I upgrade or change a savings plan?

If I contract a savings plan and after a while I need to increase resources. How to do it?Can the savings plan be updated or changed?FollowComment

Answer: "1Accepted AnswerIf you're purchasing Compute Savings Plans - the discount applies automatically to any EC2 usage, or Fargate, or Lambda. If you start launching more resources, you can't edit your existing Savings Plan commitment, however you can purchase another commitment (another Savings Plan) to cover any remaining usage.If you're purchasing EC2 Instance Savings Plans, because this one is a bit more restrictive, it will only apply to a specific instance family and generation within a specific AWS Region. But if you decide to launch more resources, you can again simply purchase additional Savings Plan to cover additional resources and still benefit from the discount.I suggest to check the recommendations and reporting that is available for Savings Plans or Reserved Instances in AWS Cost Explorer - you can see based on your current usage if you get any recommendations for any extra Savings Plans: https://docs.aws.amazon.com/cost-management/latest/userguide/manage-sp.htmlCommentShareEXPERTNataliya_Ganswered a month agoEXPERTBrettski-AWSreviewed a month ago"


Question: How to have colcon bundle the correct version of dependencies

"Intro: I'm able to do colcon build and bundle correctly on RoboMaker, and am able launch the simulation, but it fails when trying to find the correct armadillo library.error while loading shared libraries: libarmadillo.so.8: cannot open shared object file: No such file or directoryI found out that bundle included the v6.5 armadillo library, whereas for my simulation to work it needs the v8.5 version of armadillo.ROS version: KineticGazebo version: 9Question: Is there a way for me to guide colcon bundle to get the version of armadillo I need?My understanding of colcon bundle is that it looks into the package.xml of each ROS package and get their dependencies accordingly. With that in mind, I tried putting in my package.xml files:1.<depend version_eq="8.500.1">armadillo</depend>```2.<depend version_gt="6" version_lt="9">armadillo</depend<depend version_eq="1:8.500.1">armadillo</depend>```I also noticed this open issue https://github.com/colcon/colcon-bundle/issues/118 (that led me to https://github.com/colcon/colcon-bundle/pull/117), but wasn't sure how to apply them to solve my problem.   Edited by: khaiyichin on Jan 9, 2020 3:38 PM   Edited by: khaiyichin on Jan 9, 2020 4:21 PMFollowComment"

Answer: "0Thank you for your question. Please find the steps below:build colcon from the repo HEAD as the latest release doesn’t have the PR (e.g. pip3 install git+https://github.com/colcon/colcon-bundle@HEAD)Then create a local custom-rosdep.yaml file that overrides armadillo in the rosdep.yaml that specifies the version they need. See https://github.com/ros/rosdistro/blob/master/rosdep/base.yaml#L94-L99.armadillo:    ubuntu: [http://libarmadillo-dev=8.500.1]Point rosdep at this custom-rosdep.yaml file:/etc/ros/rosdep/sources.list.d$ cat 00-overrides.listyaml file:///.../custom-rosdep.yamlRun rosdep update to use the new dependencies.Edited by: pdaws on Jan 15, 2020 4:54 PMEdited by: pdaws on Jan 15, 2020 4:55 PMEdited by: pdaws on Jan 15, 2020 4:56 PMEdited by: pdaws on Jan 15, 2020 4:56 PMEdited by: pdaws on Jan 15, 2020 4:57 PMEdited by: pdaws on Jan 15, 2020 4:58 PMCommentShareAWS-User-5010218answered 3 years ago0Thanks for the reply. I haven't yet been able to test the solution you provided, as I was able to find a way around that.For anyone else interested:Basically what I do is first create a bundle (which creates the cache folder), copy over the libraries needed from my local machine to the locations in the bundle cache folder, removing the dependency_hash* JSON files and then do the bundle again.CommentSharekhaiyichinanswered 3 years ago"


Question: One of the Hyper-V component is not running

hi  AWSI have created a EC2 instance of windows server 2016I want to install hyper visor on the serverI have install all the component required for hyper visor. It is showing in server manager. when I am  adding image  in hypervisor  and click on connect.I am getting error  The application encountered an error while attempting to  change stateFailed  to start virtual machine because one of the  Hyper-V component  is not running.Virtual machine ID  75259FB5-0F26-4D22-9390-CA9AADC2AA91FollowComment

Answer: "0Are you using bare metal EC2 instances?If you want to run Hyper-V VM inside an EC2, you'll need to spin up a bare metal type EC2 instance.Here a blog post describing the process - https://aws.amazon.com/blogs/compute/running-hyper-v-on-amazon-ec2-bare-metal-instances/CommentShareAngel Marinovanswered 10 months ago"


Question: wordpress connection error in rds from ec2

"They are two EC2 virtual machines, which use wordpress, both connect to an RDS Database, which one of the virtual machines began to mark a connection error.Both have the same security group, the connection ports were verified.The machine that has the error can connect to other databases.The error only occurs when connecting to RDS.FollowCommentiwasa EXPERTa year agoHi.Please share the connection error message.Share"

Answer: "0What is the exact error code that you are getting?  There are different possible scenarios, have you checked:Are both EC2 on same subnet? If no, check routing.If software version differs? (php, mysql client)Have you compared wordpress configuration files?Is the connection user the same for both ec2 and mysql user permission is allowing connection from both/any ip?CommentShareromerogtanswered 8 months ago"


Question: Where can I get an AWS Jar file?

"Hi, I've been asked to update a project that is using an older version of AWS (1.11). I want to update it to the latest version, or at least, the latest 1.x version.The project does not use any kind of dependency manager. It has a 157mb Jar file, aws-java-sdk-1.11.731.jar, which I assume contains all of the AWS code and its dependencies.Where do I find an updated version of this Jar? I checked Maven, but all I could find were much smaller files containing individual services.Unfortunately the original developers of the project aren't available, so I can't ask them where they found it.Thanks,FrankFollowComment"

Answer: "0Take a look at this page - https://aws.amazon.com/sdk-for-java/It show you how you can get it from MavenAlso take a look at this - https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/migration.html, as it discusses Migrating from version 1.x to 2.x of the AWS SDK for JavaCommentShareEXPERTIndranil Banerjee AWSanswered a year agoFrank a year agoYes, I've seen this page. It does not have the jar file I'm looking for.Share0This page has multiple versions of the AWS SDK jar file - https://repo1.maven.org/maven2/com/amazonaws/aws-java-sdk/CommentShareEXPERTIndranil Banerjee AWSanswered a year agoFrank a year agoThese jar files do not have any of the dependencies. What I need is one jar file with everything, all the AWS code, everything it depends on, so I can just drop it into a project and start using it.Share"