我正在构建一个放大反应应用程序并尝试将其连接到我的 CodeArtifact 存储库中的私有 npm 包。
在构建文件amplify.yml
中,我添加了
preBuild:
commands:
- aws codeartifact login --tool npm --repository myrepo --domain mydomain --namespace mynamespace --domain-owner myid
- yarn install
并为放大服务角色提供以下策略:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"codeartifact:GetAuthorizationToken",
"codeartifact:GetRepositoryEndpoint",
"codeartifact:ReadFromRepository"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": "sts:GetServiceBearerToken",
"Resource": "*",
"Condition": {
"StringEquals": {
"sts:AWSServiceName": "codeartifact.amazonaws.com"
}
}
}
]
}
此设置适用于 CodeBuild 构建 Lambda 函数,但在 Amplify 中,我得到
Successfully configured npm to use AWS CodeArtifact repository
在登录命令之后
error An unexpected error occurred: "<some-package-url>: Request failed \"401 Unauthorized\"".
安装依赖项时。
我在放大构建中调试了环境,没有找到任何 AWS 访问密钥 ID 或秘密,但也不知道为什么。