小编Sas*_*shi的帖子

从 S3 下载工件时代码构建访问被拒绝

我的 CodeBuild 配置了 CodePipeline。S3 是我的神器商店。尽管附加了具有足够访问权限的 IAM 角色,但我仍然收到拒绝访问的消息。

错误消息的屏幕截图

代码构建错误消息

我已经检查了与 Codebuild 关联的服务角色。它附有以下政策。

{
"Version": "2012-10-17",
"Statement": [
    {
        "Effect": "Allow",
        "Resource": [
            "arn:aws:logs:ap-southeast-1:682905754632:log-group:/aws/codebuild/Build",
            "arn:aws:logs:ap-southeast-1:682905754632:log-group:/aws/codebuild/Build:*"
        ],
        "Action": [
            "logs:CreateLogGroup",
            "logs:CreateLogStream",
            "logs:PutLogEvents"
        ]
    },
    {
        "Effect": "Allow",
        "Resource": [
            "arn:aws:s3:::codepipeline-ap-southeast-1-*"
        ],
        "Action": [
            "s3:PutObject",
            "s3:GetObject",
            "s3:GetObjectVersion"
        ]
    }
]
Run Code Online (Sandbox Code Playgroud)

}

但是当我使用 IAM 策略验证器对其进行测试时,我收到以下错误消息。

在此处输入图片说明

根据这个问题的公认答案,我目前拥有的策略应该允许我从 S3 获取工件而不会出现任何问题 - AWS Codebuild 在下载源时失败。消息:访问被拒绝

如何摆脱拒绝访问的消息?

amazon-web-services aws-codepipeline aws-codebuild

8
推荐指数
1
解决办法
6976
查看次数

无法选择 S3 文件夹作为 AWS 上 CodePipeline 的源

我正在尝试使用 CodePipeline 和以下设置在 AWS 上设置 CI/CD 管道

资料来源:S3

构建:代码构建

部署:CodeDeploy

发布:EC2 实例

我已经按照这个链接完成了配置

但是我的管道失败并显示错误消息

The object with key 'code-sashi/api' does not exist.
Run Code Online (Sandbox Code Playgroud)

我已经检查并确认存储桶名称正确,并且存储桶内有一个文件夹“api”。

设置此项的选项明确指出我可以输入 S3 对象键或 S3 文件夹。在这种情况下,我想使用 S3 文件夹,因为我的构建工件仅在 CodeBuild 运行后准备就绪。

但是 CodePipeline 继续查找对象键并忽略我的文件夹。

我还尝试将 S3 文件夹设置为“api”、“/api”、“api/”,但它们都不起作用。我尝试将我的文件直接复制到存储桶并将文件夹设置为“/”,但失败并显示“对象键不能以尾随 / 结尾”的不同错误消息

基于此链接,我应该能够通过 S3 文件夹将存储桶的所有内容作为“/”获取。

如果有帮助,我将使用 Bitbucket Pipelines 将文件从 Bitbucket 私有存储库上传到 S3。不幸的是 CodePipeline 无法直接连接 Bitbucket,因此 S3 解决方法。奇怪的是,CodeBuild 连接到 Bitbucket 存储库没有问题,但如果它是 CodePipeline 的一部分,则无法这样做。

如何正确配置 CodePipeline 以从“code-sashi”存储桶和“api”文件夹中获取我的文件?将来会有其他包含代码的文件夹,所以我想把它们都放在一个桶里。

amazon-s3 amazon-web-services aws-codepipeline aws-codebuild

7
推荐指数
1
解决办法
4657
查看次数

应用程序发布错误,即使在删除CALL_LOG和SMS权限之后

根据开发人员政策,建议不要使用与SMS和CALL_LOG相关的权限,除非该应用具有与之相关的核心功能。我以前使用READ_SMS权限来自动检测OTP,但后来从应用程序中将其删除并用SMS Retriever API替换了它。我于2019年1月3日在没有任何禁止播放商店的许可的情况下发布了该应用程序,在要求该应用程序在没有这些许可的情况下进行更新的截止日期为2019年1月9日之前。收到一个需要解决1个错误的应用发布错误。当我单击查看错误详细信息时,消息为“在创建声明敏感权限的新应用发布之前,您无法编辑此应用”。

目前,我的应用中使用的权限列表如下:-

<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.CAMERA" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.VIBRATE" /> 
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> <uses-permission android:name="android.permission.READ_CONTACTS" /> 
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> <uses-permission android:name="android.permission.RECORD_AUDIO" />
Run Code Online (Sandbox Code Playgroud)

我没有使用任何SMS或CALL_LOG权限,但在发布新版本时仍然遇到错误。请参考链接以查看错误。

在此处输入图片说明

发布新版本时出现应用错误

在此处输入图片说明

java permissions sms android release

7
推荐指数
2
解决办法
3335
查看次数

SNS 主题到 SQS 队列的 KMS 访问被拒绝异常

背景:我尝试使用 SQS 队列作为触发器来执行 lambda 函数。一旦 lambda 函数完成执行,我就会尝试通过 SNS 主题将响应发送到另一个 SQS 队列。

SQS 队列 -> Lambda -> SNS 主题 -> SQS 队列

我最初尝试使用目标将 Lambda 的响应发送到 SQS,但这仅适用于异步调用,而 SQS 被视为同步调用。美好的。现在我触发一个 SNS 主题,然后该主题负责将消息添加到 SQS 队列。这种集成效果很好。

问题: SNS 主题始终无法发布到 SQS 队列。我可以看到死信队列始终包含消息,而不是实际队列。这是我在 CloudWatch 上发现的错误消息

{
    "delivery": {
        "providerResponse": "{\"ErrorCode\":\"KMS.AccessDeniedException\",\"ErrorMessage\":\"null (Service: AWSKMS; Status Code: 400; Error Code: AccessDeniedException; Request ID: c)\",\"sqsRequestId\":\"Unrecoverable\"}",
        "dwellTimeMs": 51,
        "attempts": 1,
        "statusCode": 400
    },
    "status": "FAILURE"
}
Run Code Online (Sandbox Code Playgroud)

我可以看到 KMS 拒绝访问某些内容。但我不确定谁被 KMS 拒绝了。SNS 主题没有加密设置。它已被禁用。我最初启用了它,但在遇到问题后,我禁用了它。但问题仍然存在。

我尝试过什么:

  1. 我尝试过禁用和启用 SNS 主题设置上的加密。
  2. 我尝试查看与 SNS 主题和 SQS 队列关联的 …

amazon-sqs amazon-sns

7
推荐指数
1
解决办法
1万
查看次数

从一个 SQS 触发器触发多个 lambda 函数

我不确定我是否理解 AWS Lambda - SQS 正确触发。我是否可以将它配置为一个 SQS 队列可以根据消息正文或消息属性触发不同的 lambda 函数?

我的用例:我有三个不同的 lambda 函数(processCricket、processFootball、processTennis),每个函数执行一个独特的功能。我有一个接收消息的队列(processGame)。队列中的每条消息都有一个属性“type”,它可以是“Cricket”、“Football”或“Tennis”。我可以根据消息上的“类型”调用不同的 lambda 函数吗?

选项 1:根据类型配置 SQS 以触发不同的 lambda 函数(不确定我是否可以这样做)

选项 2:配置一个可以检查类型的 lambda 函数,然后根据其类型调用其他 lambda 函数

选项 3:为每个 lambda 创建单独的队列。通过将消息添加到适当的队列来控制哪个 lambda 处理消息。

amazon-sqs amazon-web-services aws-lambda

5
推荐指数
3
解决办法
3559
查看次数

是否可以更改 UITextView iOS 中的选择颜色?

默认

在此输入图像描述

期望的

在此输入图像描述

更改 UITextField 上的 twinColor 会更改选择颜色,但我找不到任何在 UITextView 中更改它的文档。

cocoa-touch uitextview ios swift

3
推荐指数
1
解决办法
3247
查看次数

使用express-handlebars找不到css文件

我正在使用express-handlebars 来渲染一些html 页面。浏览器找不到我链接到的 css 文件。这是我的服务器文件的样子:

const express = require('express');
const exphbs = require('express-handlebars');
const path = require('path');
const _ = require('lodash');
const bodyParser = require('body-parser');
const socketIO = require('socket.io');
const http = require('http');
var static = require('node-static');

var {mongoose} = require('./db/mongoose.js');

var {User} = require('./models/user');

const publicPath = path.join(__dirname, '../public');
var app = express();
app.engine('handlebars', exphbs({defaultLayout: 'main'}));
app.set('view engine', 'handlebars');
var server = http.createServer(app);
var io = socketIO(server);
const port = process.env.PORT || 3000;

app.use('/', express.static(publicPath));
app.use(bodyParser.json());

app.get('/', (req, res) …
Run Code Online (Sandbox Code Playgroud)

node.js express handlebars.js express-handlebars

2
推荐指数
1
解决办法
1万
查看次数

CodeBuild不会将Build Artifact上传到S3

我最近一直在使用CodeBuild和CodePipeline,遇到了这个问题。

CodeBuild成功完成后,应将构建工件上载到S3存储桶。但是我注意到,当我单击View Artifacts按钮时,它只是告诉我发生了错误,并且我的S3存储桶也没有构建工件。

代码构建成功完成

代码构建成功

但是,单击“查看工件”链接会将我带到此错误消息。

S3错误消息

似乎我的构建工件没有上传到S3

这是我的Buildspec.yaml

version: 0.2

phases:
  build:
    commands:
       - echo "Entering build"
       - npm install
       - echo "Finishing build"
Run Code Online (Sandbox Code Playgroud)

amazon-s3 amazon-web-services aws-codebuild

2
推荐指数
1
解决办法
1113
查看次数