从 AWS Educate 账户 Cloud9 控制台部署 SAM 脚本时出错

Error in deploying SAM script from AWS Educate account Cloud9 console

我不熟悉使用 AWS 和无服务器应用程序模型 (SAM)。在关注最近 AWS Virtual Workshop 之一的 GitHub 时,我在 SAM 部署中遇到问题。

特别是,在遵循 module 1 时,这些是它们提供的步骤(所有这些步骤都是从 Cloud9 终端执行的):

  1. 找到帐户 ID。
    accountId=$(curl -s http://169.254.169.254/latest/dynamic/instance-identity/document | jq -r .accountId)
  2. 命名 S3 存储桶附加帐户 ID
    s3_deploy_bucket="theme-park-sam-deploys-${accountId}"
  3. 使用该名称创建 s3 存储桶。
    aws s3 mb s3://$s3_deploy_bucket
  4. 使用 SAM YAML 文件转到适当的目录。
  5. 套餐
    sam package --output-template-file packaged.yaml --s3-bucket $s3_deploy_bucket
  6. 部署
    sam deploy --template-file packaged.yaml --stack-name theme-park-ride-times --capabilities CAPABILITY_IAM

在第 5 步之前,所有步骤都运行良好。在执行第 6 步时,在成功创建一些资源后,我在创建特定资源时遇到错误并且失败了。这会导致回滚,所有创建的资源也将被删除。

ResourceStatus: CREATE_FAILED

ResourceType: AWS::Events::Rule

LogicalResourceId': UpdateRidesUpdateRidesEvent

ResourceStatusReason:用户:arn:aws:sts::969009900039:assumed-role/vocstartsoft/user810955=ameya.181co205@nitk.edu.in 无权执行:events:PutRule resource:arn:aws:events:us-east-1:969009900039:rule/theme-park-ride-times-UpdateRidesUpdateRidesEvent-1C6BYBO984UL7 明确拒绝(服务:AmazonCloudWatchEvents;状态代码:400;错误代码:AccessDeniedException;请求 ID:c6d8162d-a3f1-405f-b6e8-2fd5437c4392)

请让我解决这个问题。提前致谢。

由于您使用的是 AWS Educate Starter Account,因此您在沙盒帐户中可以做什么和不能做什么有 很多限制

允许的一般列表是:

另请注意,这是并不详尽的列表

Some services may have additional restrictions as described in the table below.

您收到的错误消息是明确拒绝。这意味着由于初始帐户的限制,您不能执行您正在尝试的操作。

使用起始账户的替代方法是使用拥有您的账户(仅适用于 AWS Educate 上的教育工作者的选项)。这样,如果您是教育工作者,AWS Educate 可以为您的 类 提供 学分。但由于您使用自己的帐户,因此您可以完全控制它。

如果您遇到的错误是他们提供的课堂或教程的一部分,您可以联系他们的客户支持。如果此拒绝禁止您完成他们自己的教程或课堂,他们应该能够解决这个问题。