Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 从Hyperledger模板创建CloudFormation堆栈时,创建\u失败_Amazon Web Services_Amazon Cloudformation_Hyperledger Fabric - Fatal编程技术网

Amazon web services 从Hyperledger模板创建CloudFormation堆栈时,创建\u失败

Amazon web services 从Hyperledger模板创建CloudFormation堆栈时,创建\u失败,amazon-web-services,amazon-cloudformation,hyperledger-fabric,Amazon Web Services,Amazon Cloudformation,Hyperledger Fabric,我正在使用此模板创建堆栈: 在关注AWS的这篇博文时,我发现了一个错误 博客-帖子链接: 地区:美国东部1 错误消息: 无法创建以下资源:[FabricEC2CommonStack]。用户请求的回滚。 创建失败AWS::CloudFormation::Stack FabricEC2CommonStack嵌入堆栈arn:AWS:CloudFormation:us-east-1:>:Stack/FabricStack-FabricEC2CommonStack-NNFUD6RJCZB1/未成功创建:以

我正在使用此模板创建堆栈:

在关注AWS的这篇博文时,我发现了一个错误

博客-帖子链接:

地区:美国东部1

错误消息:

无法创建以下资源:[FabricEC2CommonStack]。用户请求的回滚。 创建失败AWS::CloudFormation::Stack FabricEC2CommonStack嵌入堆栈arn:AWS:CloudFormation:us-east-1:>:Stack/FabricStack-FabricEC2CommonStack-NNFUD6RJCZB1/未成功创建:以下资源创建失败:[EC2InstanceForDev]

我满足了所有的先决条件

这一错误的原因是什么?如何纠正


在此之后,我将进行回滚并完成回滚。

您应该检查您的IAM角色,它解决了我的问题。

Hyperledger Fabric的官方AWS区块链云形成模板是一个嵌套模板,我们的基础模板调用另一个模板,该模板在自己创建的EC2实例上执行所有设置

但问题是,除了安装docker compose之外,它在EC2实例上执行所有操作&它抛出一个错误,即docker compose命令在末尾未找到,这导致CloudFormation模板中断EC2INSTANCEFORDEV并执行回滚。因此,我们可以在EC2实例上手动运行相同的脚本,而不必使用CloudFormation模板,只需稍作更改。改变是预先安装docker compose。Rest设置保持不变,即-1。创建一个VPC,2。创建公共子网,3。如果以后要附加EIP,请创建EIP,4。创建SSH的密钥对,5。创建IAM角色和策略,6。使用入站8080TCP和22SSH创建安全组,7。使用步骤1到6中创建的资源启动EC2实例

优先选择的AMI是-

ami-1853ac65适用于美国东部-1 美国东部2号ami-25615740 美国西部2号ami-dff017b8 Docker映像存储库-

354658284331适用于us-east-1 763976151875用于美国东部-2 712425161857适用于us-west-2 要在EC2上运行的脚本为脚本指定chmod 777和chmod+x-

#!/bin/bash -x
sudo curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
docker-compose --version
res=$?
echo $res
mkdir /tmp/fabric-install/
cd /tmp/fabric-install/
wget https://aws-blockchain-templates-us-east-1.s3.us-east-1.amazonaws.com/hyperledger/fabric/templates/simplenetwork/latest/HyperLedger-BasicNetwork.tgz -O /home/ec2-user/HyperLedger-BasicNetwork.tgz
cd /home/ec2-user
tar xzvf HyperLedger-BasicNetwork.tgz
rm /home/ec2-user/HyperLedger-BasicNetwork.tgz
chown -R ec2-user:ec2-user HyperLedger-BasicNetwork
chmod +x /home/ec2-user/HyperLedger-BasicNetwork/artifacts/first-run-standalone.sh
/home/ec2-user/HyperLedger-BasicNetwork/artifacts/first-run-standalone.sh us-east-1 example.com org1 org2 org3 mychannel 354658284331.dkr.ecr.us-east-1.amazonaws.com/ 354658284331
res=$?
echo $res
我附加到该角色的IAM策略-

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ecr:GetAuthorizationToken",
                "ecr:BatchCheckLayerAvailability",
                "ecr:GetDownloadUrlForLayer",
                "ecr:GetRepositoryPolicy",
                "ecr:DescribeRepositories",
                "ecr:ListImages",
                "ecr:DescribeImages",
                "ecr:BatchGetImage"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:Get*",
                "s3:List*"
            ],
            "Resource": "*"
        }
]
}
注- 请在上述脚本中为您所在的地区和相应的AWS地区替换相应的AWS ECR账号,并且脚本中有example.com org1 org2 org3 mychannel,请根据需要更改此账号。它与我们在CF模板中输入的根域、Org1SubDomain、Org2SubDomain、Org3SubDomain和ChannelName相同


整个过程在美国东部地区进行了测试。该脚本可以直接部署在us-east-1地区。访问Hyperledger web监视器界面的步骤http://EC2-DNS 或者EIP:8080

您应该能够在CloudFormation控制台中查看事件部分中的错误输出。我检查了事件…只有在那里我发布了错误消息。谢谢Vallu。我的用户拥有管理员访问策略,允许一切。还有我正在使用的角色是否EC2ToECRandS3具有以下JSON:Effect:Allow,Action:[ecr:GetAuthorizationToken,ecr:BatchCheckLayerAvailability,ecr:GetDownloadUrlForLayer,ecr:GetRepositoryPolicy,ecr:DescribePositories,ecr:ListImages,ecr:DescribeImages,ecr:BatchGetImage,s3:Get*,s3:List*],参考资料:*这个问题得到深入解决了吗?我得到了相同的错误-不确定为什么?