[英]Terraform AWS iam role AlreadyExists error
我对将 aws 与 terraform 一起使用几乎没有疑问。
我正在使用 milliHQ/next.js/aws ( https://registry.terraform.io/modules/dealmore/next.js/aws/latest ) 将 nextjs 项目部署到 aws。
我已经在我的本地 mac 中成功应用了 terraform 项目,我想在我的 github 项目上构建持续集成以进行部署。
我引用了这个存储库( https://github.com/milliHQ/terraform-aws-next.js/tree/main/examples/with-custom-domain )
github 操作代码如下
name: Develop Branch Build and Deploy
on:
push:
branches:
- develop
jobs:
deployment:
runs-on: ubuntu-latest
steps:
- name: Checkout source code
uses: actions/checkout@master
with:
ref: develop
- name: Install dependencies
run: yarn install --frozen-lockfile
- name: Build for Terraform
run: yarn tf-next
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: ap-northeast-2
- name: Setup Terraform
uses: hashicorp/setup-terraform@v1
with:
terraform_version: latest
- name: Terraform Initialize
run: terraform init
- name: Terraform Plan
run: terraform plan -no-color
- name: Terraform Apply
run: terraform apply -auto-approve
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
我在下面收到错误
此错误来自 Terraform 代码本身。
Terraform会在你第一次创建资源的时候创建一个tfstate文件,Terraform会用它来检测哪些资源需要再创建、修改或删除。 我没有在 repo 中看到后端配置,所以每次运行 terraform apply 时,Terraform 都会知道它正在创建新资源,这就是错误出现的方式。
您可以在 main.tf 文件中添加此块
provider "aws" {
region = "us-west-1"
}
terraform {
backend "s3" {
encrypt = true
region = "us-west-1"
bucket = "Bucket-to-store-state"
key = "location-of-state-file"
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.