有没有办法在Terraform中进行base64编码的md5哈希?据我所知,terraform只对原始字符串进行md5和base64编码。
用例是,我有一个正在以terraform创建的google云存储对象,但是它说“ detectmd5hash”属性每次都已更改,即使它没有。
public View onCreateView(@NonNull LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState) {
notificationsViewModel =
ViewModelProviders.of(this).get(NotificationsViewModel.class);
View root = inflater.inflate(R.layout.fragment_notifications, container, false);
final TextView textView = root.findViewById(R.id.text_notifications);
notificationsViewModel.getText().observe(this, new Observer<String>() {
@Override
public void onChanged(@Nullable String s) {
textView.setText(s);
}
});
bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
MY_UUID = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");
final View rootView = inflater.inflate(R.layout.fragment_notifications, container);
outputText = (TextView) rootView.findViewById(R.id.outputTextView);
inputEditText = (EditText) rootView.findViewById(R.id.inputEditText);
sendBtn = (Button) rootView.findViewById(R.id.sendBtn);
final Button searchBtn = (Button) rootView.findViewById(R.id.searchBtn);
searchBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
outputText.setText("pressed");
inputEditText.setText("pressed");
findDevice();
}
});
我希望我可以做类似的事情:
resource "google_storage_bucket_object" "things" {
name = "my-things"
bucket = "my-google-cloud-storage-bucket"
content = "${local.thing_two}\n${local.thing_one}"
}
但这采用的是实际十六进制字符串的base64编码,而不是十六进制表示的字节-因此它与google存储的对象的实际md5不匹配(以十六进制返回md5)。>
有没有解决方法或聪明的解决方案?
答案 0 :(得分:1)
我们在AWS S3
上遇到了类似的问题,我们通过以下方法解决了这个问题:
设置用于计算文件哈希值的gulp管道
将该哈希存储在.txt文件中(使用与原始文件相同的名称)
上传文件和哈希.txt文件
然后在.txt文件上使用base64encode
进行版本控制
这工作了一段时间,但是最终我们选择使用S3内置对象版本控制,因为它很容易。
我没有在Google上使用terraform
,所以不确定是否有帮助,但是随时问我更多的问题。